1. 前言
一般在调试或录制脚本时才会在界面操作执行jmeter,而在实际压测过程中是用非界面操作的,所以界面操作启动jmeter.bat时会有如下提示:
C:\Users\ThinkPad>jmeter
=============================================================================
Don't use GUI mode for load testing !, only for Test creation and Test debugging.
For load testing, use CLI Mode (was NON GUI):
jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]
& increase Java Heap to meet your test requirements:
Modify current env variable HEAP="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m" in the jmeter batch file
Check : https://jmeter.apache.org/usermanual/best-practices.html
=============================================================================
翻译下就是:
不要将GUI模式用于负载测试,只用于测试创建和测试调试。负载测试,使用CLI模式(非GUI): jmeter - n - t (jmx文件)- l(结果文件)- e - o (web报告文件夹路径)
并且增加Java堆,以满足您的测试要求:修改当前env变量堆=“-Xms1g -Xmx1g - xx: MaxMetaspaceSize = 256 " jmeter批处理文件
更多说明参看官方网站: https://jmeter.apache.org/usermanual/best-practices.html
2. 操作
所以命令行执行时:
jmeter -n -t file.jmx -l file.jtl 【-e -o ReportPath】
注:一般情况下不生成html文件,只生成中间文件file.jtl,这样在执行完成后可用命令
jmeter -g file.jtl -o ReportPath
生成ReportPath下的html报告形式的文件
如果是在命令执行时传递参数,就在设置参数时设置为全局变量${__P(ParametersName,deafulValue)}
则在命令行执行时:
jmeter -n -t file.jmx -l file.jtl -e -o ReportPath -J[G]ParametersName=value
# -J是jmeter本扫执行,-G是jmeter远程代理执行
3. 具体实例参考图:
jmeter脚本
执行命令: