JMeter命令行模式 / Non-GUI模式:生成测试报告
一、背景
For load testing, you must run JMeter in this mode (Without the GUI) to get the optimal results from it.
对于负载测试,为了获得最佳测试结果,最好是在Non-GUI模式下运行JMeter进行测试。
- GUI模式:创建测试计划、配置参数、录制or添加jmx脚本、执行基本的Http/Https接口测试、测试脚本的调试(如:并发测试脚本)...
- Non-GUI模式:常用于负载测试;测试报告生成
GUI模式启动JMeter本身也会占用一定的计算机内存,对于资源有限的情况下,执行大量并发测试时,GUI模式可能会降低性能测试发挥的最大潜能
二、Non-GUI Mode (Command Line mode)
-n 指定JMeter以非GUI模式运行
-t 包含测试计划的jmx文件的名称(.jmx测试脚本)
-l 记录样本结果日志的jtl文件名称
-j JMeter运行日志文件名称
-r 在JMeter属性"remote_hosts"所指定的服务器中运行测试
-R [远程服务器列表]在指定的远程服务器上运行测试
-g [CSV文件路径]只生成报表
-e 负载测试后生成报表
-o 负载测试完成后,用于存放所生成报表的文件夹(文件夹必须不存在or文件夹内为空)
e.g.
jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]
jmeter -n -t [jmx file] -l [results file] -R host1,host2 -e -o [Path to web report folder]
脚本还允许指定可选的防火墙/代理服务器信息:
-H 代理服务器主机名或ip地址
-P 代理服务器端口
e.g.
jmeter -n -t my_test.jmx -l log.jtl -H my.proxy.server -P 8000
三、以命令行模式执行JMeter测试
1.预先准备
在测试项目目录下,新建3个文件夹:
JM_LogResult:跟于-l
之后,用来存放测试生成的.jtl日志文件(初始为空)
JM_Report:跟于-e -o
之后,用于存放负载测试所生成的报表(初始为空)
JM_Script:跟于-t
之后,指定被测的.jmx脚本文件
JM_Script文件夹中存放有预先录制配置好的脚本:ecs_Login_Concurrent.jmx
【-----Important!-----】
- 对于JMeter4.0,若要保证命令行执行测试ok,若脚本中添加有监控服务器资源的监听项 [
jp@gc-PerfMon Metrics Collector
],则以命令行执行之前,需要先在JMeter的GUI界面中该监听项的【Filename】中配置路径,与命令中.jtl文件的存放目录一致(如:E:\CI_Env\JM_LogResult)
PS:若不需要监听服务器资源,则可在测试脚本中对 [jp@gc-PerfMon Metrics Collector
]设置为暂停状态(Disable),然后再执行脚本的测试
- 若在GUI界面执行,则可启用监听项 [
jp@gc-PerfMon Metrics Collector
]设置为正常启用状态(Enable),并在【Write results to file/Read from file】选项中选择某个.jtl文件的绝对路径(如:E:\CI_Env\JM_LogResult\123.jtl
),然后再执行测试,即可在GUI界面展示出服务器资源监控的图表变化曲线
2.执行测试
操作命令:
jmeter -n -t E:\CI_Env\JM_Scripts\ecs_Login_Concurrent.jmx -l E:\CI_Env\JM_LogResult\123.jtl -e -o E:\CI_Env\JM_Report
PS:以上JM_LogResult目录下的123.jtl,为自定义命名,非固定名称
1)若初始的JM_LogResult、JM_Report 文件夹为非空时,执行测试的效果如下:不能正常执行测试
2)将JM_LogResult、JM_Report 文件夹清空里面的文件,保持为空,再次执行测试:此时已可正常执行成功
3.测试报告查看
执行完成之后自动生成的文件:
在浏览器中打开JM_Report目录下的 index.html,即可查看测试报告的具体内容:
还可以在Charts导航栏中查看子栏目下某个测试指标的图表曲线走势,如:Response Times
PS:
1)以上在 JM_Report 文件夹下生成的测试报告文件(通过index.html
打开),报表中包含测试脚本编写的每个步骤对应的响应时间、吞吐量等(与聚合报告中的数据相对应),以及响应时间、吞吐量的统计图
2)若要查看服务器资源监控的数据记录,可将另外一个文件夹 JM_LogResult 下生成的xxx.jtl
文件(记录有执行返回的数据日志),添加到JMeter的GUI界面中监听项 [jp@gc-PerfMon Metrics Collector
]设置【Write results to file/Read from file】-Filename位置,添加完成后,界面中自动会读取数据并形成趋势图