转载:https://www.cnblogs.com/poloyy/p/13227149.html

 

 

 

 

什么是 CLI 模式

  • CLI = Command Line,命令行模式,我们常说的 NON GUI 模式,无界面模式
  • 真正做负载测试时,应该使用 CLI 模式运行,而不是 GUI

 

启动 Jmeter GUI 时的提示

使用 jmeter.bat 运行时会有一个 cmd 窗口

性能测试——jmeter性能测试——详解 Jmeter CLI 模式——转载_java

 

官方也说了

负载测试不要用 GUI 模式,GUI模式仅用于创建测试计划和调试脚本

增加 Java 堆空间来满足你的测试环境(后面再讲解)

 

用 CLI 模式的好处

将系统大部分资

 

CLI 模式可选参数

 

服务器相关参数

 

属性参数

Java 系统属性和 JMeter 属性可以直接通过以下命令进行覆盖,而不用手动修改 jmeter.properties

 

栗子一

jmeter -n -t FlaskDemo.jmx -l result/report.jtl
  • 执行 FlaskDemo.jmx 脚本,并在 result 目录下生成 report.jtl 报告
  •  report.jtl 存在也没关系,可以自动覆盖

 

性能测试——jmeter性能测试——详解 Jmeter CLI 模式——转载_java_02

 性能测试——jmeter性能测试——详解 Jmeter CLI 模式——转载_html_03

 

栗子二

jmeter -n -t FlaskDemo.jmx -l result/report.jtl -e -o report
  • 执行  FlaskDemo.jmx  脚本
  • 在 result 目录下生成 report.jtl 报告
  • 最后在 report 目录下生成测试报表
  • 切记: report.jtl 必须不存在, report 目录必须不存在或者为空

性能测试——jmeter性能测试——详解 Jmeter CLI 模式——转载_html_04

性能测试——jmeter性能测试——详解 Jmeter CLI 模式——转载_远程服务器_05

性能测试——jmeter性能测试——详解 Jmeter CLI 模式——转载_远程服务器_06

后面再用一篇文章详细讲解 HTML 报告的细节:javascript:void(0)

 

栗子三

jmeter -g report.jtl -o report
  • 将 .jtl 文件转换为 .html 文件,并保存到 report 文件夹中
  • 类似栗子二,只不过跳过了执行 .jmx 文件的步骤,直接将 .jtl 文件转换为 .html 文件

性能测试——jmeter性能测试——详解 Jmeter CLI 模式——转载_远程服务器_07

和栗子二的结果一样

 

在 Jmeter GUI 中有一个类似的功能

点击 Tools

性能测试——jmeter性能测试——详解 Jmeter CLI 模式——转载_远程服务器_08

 

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

性能测试——jmeter性能测试——详解 Jmeter CLI 模式——转载_远程服务器_09

 

栗子四

jmeter -n -t FlaskDemo.jmx -r -l result/report.jtl  

启动所有远程 slave 机执行 FlaskDemo.jmx   ,并在 result 目录下生成 report.jtl 

 

重点

性能测试——jmeter性能测试——详解 Jmeter CLI 模式——转载_文件名_10

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

 

master 机

性能测试——jmeter性能测试——详解 Jmeter CLI 模式——转载_html_11

 

虚拟 slave 机

性能测试——jmeter性能测试——详解 Jmeter CLI 模式——转载_html_12

 

本地 slave 机

性能测试——jmeter性能测试——详解 Jmeter CLI 模式——转载_flask_13

 

栗子五

jmeter -n -t FlaskDemo.jmx -l result/report.jtl  -R 172.20.72:38:1234,127.0.0.1:1234

启动指定的远程 slave 机执行 FlaskDemo.jmx  ,并在 result 目录下生成 report.jtl 

和 -r 不一样, -R 是指定slave机的,并不是所有 slave 机

 

master 机

性能测试——jmeter性能测试——详解 Jmeter CLI 模式——转载_远程服务器_14

 

slave 机

性能测试——jmeter性能测试——详解 Jmeter CLI 模式——转载_文件名_15

 

栗子六

jmeter -n -t FlaskDemo.jmx -l result/report.jtl  -R 172.20.72:38:1234 -X

跟栗子五的基本一样,只不过加了 -X,让远程服务器在执行完脚本后自动退出 jmeter-server 

 

master 机

性能测试——jmeter性能测试——详解 Jmeter CLI 模式——转载_flask_16

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

 

slave 机

性能测试——jmeter性能测试——详解 Jmeter CLI 模式——转载_java_17

 

当然想一劳永逸的话

可以将属性 jmeterengine.remote.system.exit 设置为 true(默认值为 false ),则 JMeter 将在测试结束后停止 RMI 之后调用 System.exit(0),但不建议这样