Jmeter除了是一款常用的接口测试工具,它其实更强大的功能是实现性能测试,今天用jmeter实现一个简单的性能测试案例,本次只涉及性能测试的执行,前期的测试需求分析,测试数据准备,以及测试结果的分析调优后续会更新相关文章。
首先,基本环境如下:
jdk:java环境
Jmeter:直接解压使用,本文使用apache-jmeter-5.1.1
运行:进入 apache-jmeter-5.1.1bin
目录,双击 jmeter.bat
需求:为了便于大家理解实践,采用访问百度首页的一个HTTP请求,并发20个用户,运行1分钟,查看TPS和响应时间变化。
第一步:添加线程组
启动软件之后,右击“测试计划”——“添加”——线程——线程组”,这样就建好了一个线程组了。
这是常规的添加线程组,缺点是线程数不能分批执行,怎么样可以实现像roadrunner那样梯度加压呢。
幸好Jmeter有着丰富的开源插件,百度搜索下载JMeterPlugins-Standard.jar,放入目录apache-jmeter-5.1.1libext下,就可以实现如下的梯度加压。
启动参数说明:
- This group will start 20 threads:设置线程组启动的线程总数为20个;
- First,wait for N seconds:启动第一个线程之前,需要等待N秒;(此次案例中可设置为0秒)
- Then start N threads:设置最开始时启动2个线程;
- Next,add 2 threads every 2 seconds, using ramp-up 0 seconds:每隔2秒,启动2个线程;
- Then hold load for 60 seconds:启动的线程总数达到最大值之后,再持续运行60秒;
- Finally,stop 5 threads every 1 seconds:每秒停止5个线程;
第二步:添加请求
按照如下顺序添加HTTP请求,线程组——添加——取样器Sampler——HTTP请求。
填写百度访问请求协议、URL、请求方法GET。
还可以对请求的响应进行断言,添加断言-响应断言,响应文本。
第三步:添加监听器
常规使用的监听器有察看结果树和聚合报告
添加顺序如下:
- 选择“添加”→“监听器”→察看结果树
- 选择“添加”→“监听器”→聚合报告
我们的目标是观察TPS和响应时间的变化,有没有什么图形化的工具呢。
开源插件很丰富,将插件jmeter-plugins-manager-1.3.jar放入目录apache-jmeter-5.1.1libext下。
添加如下两个监听器。
第四步:运行查看
点击工具栏运行按钮,开始执行测试,同时观察察看结果树是否有错误请求。
运行前需要保存脚本,并且需要将聚合报告的结果保存在一个.jtl文件中,如下:
运行完成:
聚合报告
TPS曲线
响应时间曲线
第五步:生成报告
JMeter3.0以后提供一个用于生成HTML页面格式图形化报告的扩展模块。该模块支持通过两种方式生成多维度图形化测试报告。
基本命令格式: jmeter-g<log file>-o<Pathto output folder>
如:jmeter-g C:UsersAdministratorDesktop访问百度.jtl-o D:JmeterReport
-g :specifies the existing result file 指定已存在的结果文件
-o:保存html报告的路径, 此文件夹必须为空或者不存在
代码语言:javascript复制`cmd`
`d:`
`cd:D:jmeterapache-jmeter-5.1.1apache-jmeter-5.1.1bin`
`jmeter -g C:UsersAdministratorDesktop访问百度.jtl -o D:JmeterReport
生成如下测试报告:
使用浏览器打开html文件:
报告中有丰富的图表数据,便于直观分析测试结果,大家可以自行探索下这个报告都有哪些功能吧。