Skip to content

记录了测试工具的使用,比如 Jmeter, ab

ab

安装

linux

shell
# 安装
yum install httpd-tools

# 启动
service httpd start

mac

使用

命令集

shell
-n	即requests,用于指定压力测试总共的执行次数。
-c	即concurrency,用于指定的并发数。
-t	即timelimit,等待响应的最大时间(单位:秒)
-b	即windowsize,TCP发送/接收的缓冲大小(单位:字节)
-p	即postfile,发送POST请求时需要上传的文件,此外还必须设置-T参数。
-u	即putfile,发送PUT请求时需要上传的文件,此外还必须设置-T参数。
-T	即content-type,用于设置Content-Type请求头信息,例如:application/x-www-form-urlencoded,默认值为text/plain。
-v	即verbosity,指定打印帮助信息的冗余级别。
-w	以HTML表格形式打印结果。
-i	使用HEAD请求代替GET请求。
-x	插入字符串作为table标签的属性。
-y	插入字符串作为tr标签的属性。
-z	插入字符串作为td标签的属性。
-C	添加cookie信息,例如:"Apache=1234"(可以重复该参数选项以添加多个)
-H	添加任意的请求头,例如:"Accept-Encoding: gzip",请求头将会添加在现有的多个请求头之后(可以重复该参数选项以添加多个)
-A	添加一个基本的网络认证信息,用户名和密码之间用英文冒号隔开。
-P	添加一个基本的代理认证信息,用户名和密码之间用英文冒号隔开。
-X	指定使用的和端口号,例如:"126.10.10.3:88"。
-V	打印版本号并退出。
-k	使用HTTP的KeepAlive特性。
-d	不显示百分比。
-S	不显示预估和警告信息。
-g	输出结果信息到gnuplot格式的文件中。
-e	输出结果信息到CSV格式的文件中。
-r	指定接收到错误信息时不退出程序。
-h	显示用法信息,其实就是ab -help。

例子:

shell
/# 并发 500,总共请求 10000
ab -c 500 -n 10000 https://baidu.com/

报告

shell
ab -c 10 -n 200 https://baidu.com/ 

Benchmarking baidu.com (be patient)
Completed 100 requests
Completed 200 requests
Finished 200 requests


Server Software:        bfe/1.0.8.18
Server Hostname:        baidu.com
Server Port:            443
SSL/TLS Protocol:       TLSv1.2,ECDHE-RSA-AES128-GCM-SHA256,2048,128
Server Temp Key:        ECDH P-256 256 bits
TLS Server Name:        baidu.com

Document Path:          /
Document Length:        161 bytes

Concurrency Level:      10
Time taken for tests:   4.934 seconds
Complete requests:      200
Failed requests:        0
Non-2xx responses:      200
Total transferred:      70400 bytes
HTML transferred:       32200 bytes
Requests per second:    40.53 [#/sec] (mean)
Time per request:       246.721 [ms] (mean)
Time per request:       24.672 [ms] (mean, across all concurrent requests)
Transfer rate:          13.93 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:      134  179  24.7    174     254
Processing:    40   55  14.4     51     107
Waiting:       40   53  13.0     49      95
Total:        186  235  27.8    234     322

Percentage of the requests served within a certain time (ms)
  50%    234
  66%    245
  75%    252
  80%    259
  90%    272
  95%    284
  98%    318
  99%    319

重要的指标:

  1. Requests per second:评价每条的请求数,既服务器的吞吐量
  2. Time per request(mean):所有并发用户一次请求的平均时间
  3. Time per request(mean, across all concurrent requests):单个用户请求一次的平均时间
  4. Percentage of the requests served within a certain time (ms):多少请求,是在某个时间段内完成的

优缺点

优点:

  1. 安装简单
  2. 容易使用

缺点:

  1. 功能简单,比如每次测试只能针对单个请求
  2. 没有详细的报告信息

Jmeter

安装

安装教程

mac

mac 自带 Java,所以直接按照 Jmeter 即可

下载地址

选择 Binaries 版本即可,下载完后,解压压缩包到指定目录:tar zxvf apache-jmeter-5.2.1.tgz

设置环境变量:

shell
export JMETER_HOME=/Applications/apache-jmeter-5.2 # 要匹配好安装的路径
export PATH=$JAVA_HOME/bin:$PATH:.:$JMETER_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$JMETER_HOME/lib/logkit-2.0.jar

或者到 Jmeter 的根目录,执行: sh jmeter ,就会启动

使用