Jmeter进行性能测试基本包含如下基本过程:
1)新增线程组
创建测试线程组,并设置线程数量及线程初始化启动方式。
2)新增 JMeter 元组
创建各种默认元组及测试元组,填入目标测试静态资源请求和动态资源请求参数及数据。
3)新增监听器
创建各种形式的结果搜集元组,以便在运行过程及运行结束后搜集监控指标数据。
4)查看结果
调试运行,分析指标数据,挖掘性能瓶颈、评估系统性能状态;
以下用打开菜鸟网站为例演示上述基本过程。
在 jmeter 的 bin 目录下双击 jmeter.bat或ApacheJMeter.jar 启动 jmeter,如下图:
1)新增线程组:
打开jmeter页面,左侧操作栏中选择“测试计划”,右击新增一个线程组,如图所示:
配置线程组相关信息
线程数:20,指模拟20个用户
Ramp-Up时间(秒):5,指5秒内启动上方设置的20个线程数,相当于每秒启动20/5个线程
循环次数:10,指循环10次,总计循环次数为10X20=200次
循环次数后方的永远勾选框,若勾选永远,则请求一直运行下去,直到人工中断测试
2)新增Jmeter元组:
添加如下默认配置,且进行配置:
3)添加 HTTP请求:
在线程组上右击新增 HTTP 请求,如图:
HTTP 请求设置如图:
HTTP中未进行设置的参数均取自HTTP请求默认值中的设置参数值。
4)新增监听器:
我们添加4种监听器,后续对比查看效果。
5)查看运行结果:
启动运行 jmeter,运行结束后查看运行结果。
a)察看结果树:
Text显示发送请求列表,右侧包含取样器结果、请求和响应数据,其中取样器结果包含请求过程参数,请求为请求的内容,响应数据为接口响应结果。
b)聚合报告:
具体参数说明如下:
Label:就是请求名称
#样本:总线程数,值 = 线程数 * 循环次数=20*10=200
平均值:单个请求的平均响应时间,值 = 总运行时间 / 发送到服务器的总请求数
中位数、90%百分位、95%百分位、99%百分位分别代表50%的用户响应时间、90%的用户响应时间、95%的用户响应时间、99%的用户响应时间,也就是有百分之多少的请求小于这个值。其中,90%百分位是性能测试中比较重要的一个衡量指标。
最小值:最小响应时间
最大值:最大响应时间
异常%:错误率,发生错误的请求 / 总请求数,上面示例中错误率为0
吞吐量:表示每秒完成的请求数。
接收KB/sec或发送KB/sec:以每秒接收或发送的千字节为单位测量的吞吐量
c)图形结果:
具体参数说明如下:
样本数目:总的请求数
最新样本:最后一次请求的响应时间
平均:所有请求的平均响应时间
偏离:响应时间变化、离散程度测量值的大小,也就是数据的分布偏差,值越小越好
吞吐量:服务器每分钟处理的请求数,相当于TPS,注意单位是分钟
中值:响应时间的50%百分位的值,也就是有50%的请求响应时间小于该值
d)用表格察看结果:
具体参数说明如下:
Sample#:每个请求的序号。
Start Time:每个请求开始时间。(时:分:秒.毫秒)
Thread Name:每个线程的名称(线程序号-第N次循环次数)。
Label:每个请求的自定义名称(无修改时默认显示请求类型,如Http,FTP等请求)。
Sample Time(ms):每个请求的响应时间。(单位:毫秒)
Status:请求状态,如果为勾则表示成功,如果为叉表示失败。
Bytes:响应的字节数,请求的字节数。
Sent Bytes:发送的字节数。
Latency:延迟的时间,等待时长。(单位:毫秒)
Connect Time(ms):连接服务器的时间。(单位:毫秒)
样本数目:所有请求个数,样本数目 = 线程数(请求用户数)* 请求次数 。(单位:个)
平均:所有请求的平均响应时间。(单位:毫秒)
最新样本:最新样本响应时间,表示服务器响应最后一个请求的时间。(单位:毫秒)
偏离:服务器响应时间变化、离散程度测量值的大小,或者,换句话说,就是数据的分布。