Jmeter CLI 模式

 Jmeter CLI 模式

1|0什么是 CLI 模式

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

 

2|0启动 Jmeter GUI 时的提示

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

 

官方也说了

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

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

 

3|0用 CLI 模式的好处

将系统大部分资

 

4|0CLI 模式可选参数

字段含义
-n 指定 JMeter 将在 cli 模式下运行
-t 包含测试计划的 jmx 文件名称
-l 记录测试结果的 jtl 文件名称
-j 记录 Jmeter 运行日志的文件名称
-g 输出报告文件( .csv 文件)
-e 生成 html 格式的测试报表 
-o
  • 生成测试报表的文件夹
  • 文件夹不存在或为空

 

5|0服务器相关参数

字段含义
-H 代理服务器的 host 或 ip
-P 代理服务器的 port 
-r 指定所有远程服务器中运行测试
-R 在指定的远程服务器中运行测试
-X 服务器运行完脚本后自动停止 jmeter-server 

 

6|0属性参数

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]
  • 覆盖日志记录设置,将特定类别设置为给定的优先级
  • 设置根日志记录级别 

 

7|0栗子一

文件目录

 

①分两步走 先生成jtl,再生成html

 

jmeter -n -t script/smb_uat_interface.jmx -l result/report${__time(yyyy_MMdd_HHmmss)}.jtl
jmeter -g result/report2020_0728_142952.jtl -o result/report2020_0728_142952

 

②一步走:一起生成jtl和html【只需要修改脚本.jmx的名字】

CMD时间格式化  %date:~0,4%_%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2%

jmeter -n -t script/smb_uat_interface.jmx -l result/report%date:~0,4%_%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2%.jtl -e -o result/report%date:~0,4%_%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2%

可把执行脚本放到主目录下,后缀改为.bat执行运行

 

 

 

 

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

 

 

 注意:想提前停止:D:\software\apache-jmeter-5.0\bin   bin目录下 打开 shutdown.sh

 

在bin目录下,运行脚本

 

  1. stoptest.cmd / stoptest.sh 【硬中断】
  2. shutdown.cmd / shutdown.sh 【软中断】

 

注意,只有在同一个 host 下运行的脚本,Jmeter 才会接受

 

8|0栗子二

jmeter -n -t FlaskDemo.jmx -l result/report.jtl -e -o report
jmeter -n -t script/demo.jmx -l result/report%date:~0,4%_%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2%.jtl -e -o result/report%date:~0,4%_%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2%
  • -e -o report${__time(yyyy_MMdd_HHmmss)},直接加时间戳 好像有点问题???用这个2020_0728_141949  %date:~0,4%_%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2%
  • 执行  FlaskDemo.jmx  脚本
  • 在 result 目录下生成 report.jtl 报告
  • 最后在 report 目录下生成测试报表
  • 切记: report.jtl 必须不存在, report 目录必须不存在或者为空

后面再用一篇文章详细讲解 HTML 报告的细节:https://www.cnblogs.com/poloyy/p/13278920.html

 

9|0栗子三

jmeter -g report.jtl -o report

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

和栗子二的结果一样

 

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

点击 Tools

 

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

 

三、批处理CLI模式执行

1、将cli命令行 执行的命令 贴到txt文件中

 

 

 

 

2、修改txt为 xx.bat,保存在脚本所在的路径下

 

 3、双击cli-jmeter.bat即可执行,同理会生成 .jtl及html文件

 

posted @ 2021-10-20 14:17  雨彡  阅读(105)  评论(0)    收藏  举报