什么是 CLI 模式
CLI = Common Line,命令行模式,我们常说的 NON GUI 模式,无界面模式
真正做负载测试时,应该使用 CLI 模式运行,而不是 GUI;而我们通常使用bat或者jar包打开来运行脚本的方式叫做GUI的方式
启动 Jmeter GUI 时的提示
使用 jmeter.bat 运行时会有一个 cmd 窗口
负载测试不要用 GUI 模式,GUI模式仅用于创建测试计划和调试脚本;这是因为在做性能测试的时候,如果使用GUI模式,它本身会占用一部分系统资源,可能会影响性能测试结果。
CLI命令示例:
首先进入命令行/powershell ,进入JMETER 安装目录 bin目录下,输入命令:
jmeter -n -t ./…/script/test.jmx -l ./…/jtl_result/20210301_001.jtl -e -o ./…/html_result/ -r(-R 127.0.0.1:8881)
参数说明:
-n 指定 JMeter 将在 cli 模式下运行
-t 包含测试计划的 jmx 文件名称
-l 记录测试结果的 jtl 文件名称
-j 记录 Jmeter 运行日志的文件名称
-g 输出报告文件( .csv 文件)
-e 生成 html 格式的测试报表
-o 生成测试报表的文件夹 / 文件夹不存在或为空
-H 代理服务器的 host 或 ip
-P 代理服务器的 port
-r 指定所有远程服务器中运行测试
-R 在指定的远程服务器中运行测试
-X 服务器运行完脚本后自动停止 jmeter-server
Java 和JMeter 属性可以通过以下命令进行覆盖修改,而不用手动修改 jmeter.properties
-D[prop_name]=[value] 定义一个 Java 系统属性值
-J[prop_name]=[value] 定义本地 JMeter 属性
-G[prop_name]=[value] 定义要发送到所有远程服务器的 JMeter 属性
-G[propertyfile] 定义一个包含 JMeter 属性的文件,该文件将发送到所有远程服务器
-L[category]=[priority] 覆盖日志记录设置,将特定类别设置为给定的优先级 /设置根日志记录级别
示例1:
jmeter -n -t ./…/script/test.jmx -l ./…/jtl_result/20210301_001.jtl
在本机(master机器)运行test.jmx 文件,并在上次目录下面的jtl_result目录下生成文件:20210301_001.jtl
示例2:
jmeter -n -t ./…/script/test.jmx -l ./…/jtl_result/20210301_001.jtl -e -o ./…/result/
在本机(master机器)运行test.jmx 文件,并在上次目录下面的jtl_result目录下生成文件:20210301_001.jtl ;然后在jmx文件所在目录的上次目录下的result目录下生成html 测试报告
特别说明:
report.jtl 必须不存在, report 目录必须不存在或者为空
示例3:
jmeter -n -t ./…/script/test.jmx -l ./…/jtl_result/20210301_001.jtl -e -o ./…/html_result/ -r
在所有从机(slave机器)运行test.jmx 文件,并在上次目录下面的jtl_result目录下生成文件:20210301_001.jtl ;然后在jmx文件所在目录的上次目录下的result目录下生成html 测试报告
启动slave机器jmeter-server
运行:
示例4:
jmeter -n -t ./…/script/test.jmx -l ./…/jtl_result/20210301_001.jtl -e -o ./…/html_result/ -R 127.0.0.1:8881
在指定从机(slave机器:127.0.0.1:8881)运行test.jmx 文件,并在上次目录下面的jtl_result目录下生成文件:20210301_001.jtl ;然后在jmx文件所在目录的上次目录下的result目录下生成html 测试报告
特别说明:
使用-R 指定远程从机时,会覆盖原有jmeter配置文件中的remote_hosts 中的配置
示例5:
jmeter -n -t ./…/script/test.jmx -l ./…/jtl_result/20210301_001.jtl -e -o ./…/html_result/ -X
在主机(master机器)运行test.jmx 文件,并在上次目录下面的jtl_result目录下生成文件:20210301_001.jtl ;然后在jmx文件所在目录的上次目录下的result目录下生成html 测试报告,运行结束后,退出远程服务器