1. 下载
- 官网下载:https://jmeter.apache.org/download_jmeter.cgi
- 本人云存储下载:https://linta0.lanzout.com/imMvp05q3ing 密码:cyp1
下载完后,直接解压
2. 修改配置
因为JMeter默认是英文的界面,本人英文水平不好,所以将其修改为中文界面
找到图片中的文件:jmeter.properties
修改下面两个地方:
language=zh_CN
sampleresult.default.encoding=UTF-8
3. 启动
找到 bin 目录下的 ApacheJMeter.jar
再此目录下进入 cmd 模式
输入:
java -jar ApacheJMeter.jar
此时会先出现一个小黑屏,然后再出现可视化界面,可视化界面如下:
在没有修改主题的情况下,首次启动时,界面应该是黑色背景的。大家可以通过修改下图的地方来选择自己喜欢的主题
注意:启动时,小黑屏会出现“Don’t use GUI mode for load testing !, only for Test creation and Test debugging”的提示,无需理会,文章下面会进行说明。能看到上述的可视化界面即为启动成功
4. 可视化界面 - 使用教程
4.1 添加线程组
对上述添加的线程组进行配置:
- 如果后续不进行保存的话,名称和注释可以不用管
- 线程数:1000,表示在启动时会开启1000个线程,分别向每一个接口进行请求
- Ramp-Up时间(秒):表示每一个线程启动之间的间隔时间,设置为0意味着并发请求
- 循环次数:表示将上述的1000次并发请求循环3次
4.2 新建HTTP请求
配置上述新添加的HTTP请求:
根据个人的项目,配置本次HTTP请求的:
- 服务器名称或IP
- 端口号
- 请求类型
- 请求路径
- 参数的名称和相对应的值
4.3 添加结果树
结果树用于查看发出请求后,响应的数据和结果
4.4 添加汇总报告
汇总报告和结果树的添加在同一处,此处不在以图片的形式说明
在每一个HTTP请求中添加汇总报告,此时汇总的是这一个HTTP请求的统计数据
在线程组中添加汇总报告,则是查看线程组下所有HTTP请求中的统计数据
此处展示单个HHTP请求的汇总报告
5. 命令行模式 - 使用教程
5.1 介绍
在启动JMeter时,出现”Don’t use GUI mode for load testing !, only for Test creation and Test debugging“提示。是提示我们不要在在可视化界面下进行压力测试
因为压力测试时,会消耗大量的内存,而可视化界面本身就需要占用较多的内存。所以在启动时,JMeter会提示我们不要在可视化模式下进行压力测试
真正的压力测试,应该是在可视化模式下添加好相关的线程组和所需测试的HTTP请求。然后转到命令行模式进行测试
5.2 使用
当添加好线程组和对应的HTTP请求后,将其另存为**.jmx**文件
进入bin目录,打开cmd窗口,输入如下命令:
jmeter -n -t A -l B -e -o C
解释:
- A:.jmx 文件所在路径
- B:生成 .jtl 测试报告文件所存放的路径
- C:生成HTML测试报告文件所存放的路径
注意:**.jtl 报告和HTML报告的存放路径必须为空**
5.3 HTML报告简要分析
下面以本人一个项目中的测试报告来举例分析
在本次测试中,以并发的方式(Ramp-Up为0),给项目的57个接口分别发送了1000个请求,并循环了3次
生成后的HTML报告,目录如下:
打开上图中的index.html,首页如下:
Apdex:性能指标;取值范围为0~1;0.8表示在并发请求下,有80%的请求响应时间是满足JMeter中所设置的用户需求
Requests Summary:请求总结;表示成功与失败请求之间的占比。PASS表示请求成功,FAIL表示请求失败。图中显示在压力测试下,有99.76%的请求是成功的,只有0.24%的请求是失败的
Statistics:数据分析
- Samples:总共发送的请求数在循环3次后为171000次
- FAIL:失败的请求次数为413
- Error:请求失败率为0.24%
- Average:平均响应时间为460.72ms
- Min:最小响应时间为3ms
- Max:最大响应时间为6740ms
- Median:每次请求的平均响应时间为173ms
- 90th pct:90%用户响应不超过527ms
- 95th pct:95%用户响应不超过700.95ms
- 99th pct:99%用户响应不超过1251.99ms
- Throughput:吞吐量;每秒完成请求数为1935.88次
- Received:每秒接收到的数据量为1090.62KB
- Sent:每秒发送的请求数为342.8
注意:在测试前,设置给每个接口1秒内发送1000个请求。但是由于服务器的资源有限,无法同时向所有的接口同时发出这么多次的请求。所以在上述测试报告的分析中,Sent的值才是每秒实际的请求量
在报告中,还存在许多图表,大家可以去该网站详细了解每个图表的意思:
版权归原作者 LF3_ 所有, 如有侵权,请联系我们删除。