Jmeter CLI 无界面运行模式 与分布式运行使用(见栗子456)--Lph
什么是 CLI 模式
核心提示:简介CLI = Common Line,命令行模式,无界面模式,真正做负载测试时,应该使用 CLI 模式运行,而不是 GUI,而且在服务器上运行脚本都是CLI模式,无界面模式运行方式可以大大减少资源的开支,也就是说压力或负载测试更准确。运行命令介绍当我们运行jmeter时候,界面显示了运行命令jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]下面介绍相关参数字段 含义-n
简介
CLI = Common Line,命令行模式,无界面模式,真正做负载测试时,应该使用 CLI 模式运行,而不是 GUI,而且在服务器上运行脚本都是CLI模式,无界面模式运行方式可以大大减少资源的开支,也就是说压力或负载测试更准确。
启动 Jmeter GUI 时的提示
使用 jmeter.bat 运行时会有一个 cmd 窗口

官方也说了
负载测试不要用 GUI 模式,GUI模式仅用于创建测试计划和调试脚本
增加 Java 堆空间来满足你的测试环境(后面再讲解)
CLI 模式可选参数
字段 含义
-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]
覆盖日志记录设置,将特定类别设置为给定的优先级
设置根日志记录级别
栗子一 (直接生成jtl报告,该报告可在jmeter界面打开)
jmeter -n -t FlaskDemo.jmx -l result/report.jtl --》cmd需要进入到脚本存放的所在文件夹
执行 FlaskDemo.jmx 脚本,并在 result 目录下直接生成 report.jtl 报告
report.jtl 存在也没关系,可以自动覆盖

栗子二 (生成jtl报告,与html报告)
jmeter -n -t FlaskDemo.jmx -l result/report.jtl -e -o report --》cmd需要进入到脚本存放的所在文件夹
执行 FlaskDemo.jmx 脚本
在 result 目录下生成 report.jtl 报告
最后在 report 目录下生成html测试报表文件夹
切记: report.jtl 必须不存在, report 目录必须不存在或者为空

栗子三(将 .jtl报告 文件转换为 .html报告文件)
jmeter -g report.jtl -o report --》cmd需要进入到脚本存放的所在文件夹
将 .jtl 文件转换为 .html 文件,并保存到 report 文件夹中
类似栗子二,只不过跳过了执行 .jmx 文件的步骤,直接将 .jtl 文件转换为 .html 文件

和栗子二的结果一样
在 Jmeter GUI 中有一个类似的功能
点击 Tools

选好 jtl 文件,properties 配置文件,存放 HTML 报告的文件夹

栗子四 (远程所有执行机,包括本地的控制机)
jmeter -n -t FlaskDemo.jmx -r -l result/report.jtl --》cmd需要进入到脚本存放的所在文件夹
启动所有远程 slave 机执行 FlaskDemo.jmx ,并在 result 目录下生成 report.jtl
重点

会执行 jmeter.properties 的 remote_hosts 填的所有远程 slave 机,这里有两台:一台是虚拟机,另一台是本机也充当 slave 机(执行机)
master 机(控制机)

虚拟 slave 机

本地 slave 机

栗子五 (远程指定执行机)
jmeter -n -t FlaskDemo.jmx -l result/report.jtl -R 172.20.72:38:1234,127.0.0.1:1234 --》cmd需要进入到脚本存放的所在文件夹
启动指定的远程 slave 机执行 FlaskDemo.jmx ,并在 result 目录下生成 report.jtl
和 -r 不一样, -R 是指定slave机的,并不是所有 slave 机
master 机

slave 机

栗子六 (远程指定执行机,执行完脚本后自动退出 jmeter-server)
jmeter -n -t FlaskDemo.jmx -l result/report.jtl -R 172.20.72:38:1234 -X --》cmd需要进入到脚本存放的所在文件夹
跟栗子五的基本一样,只不过加了 -X,让远程服务器在执行完脚本后自动退出 jmeter-server
master 机

跑了两次,第一次没有 -X,第二次加了 -X
slave 机

当然想一劳永逸的话
可以将属性 jmeterengine.remote.system.exit 设置为 true(默认值为 false ),则 JMeter 将在测试结束后停止 RMI 之后调用 System.exit(0),但不建议这样
————————————————
版权声明:本文为CSDN博主「小菠萝测试笔记」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_33801641/article/details/107219305
浙公网安备 33010602011771号