Jmeter系列(40)- 详解 Jmeter CLI 模式

简介: Jmeter系列(40)- 详解 Jmeter CLI 模式

如果你想从头学习Jmeter,可以看看这个系列的文章哦

https://www.cnblogs.com/poloyy/category/1746599.html

 

什么是 CLI 模式


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

 

启动 Jmeter GUI 时的提示


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

image.png

官方也说了

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

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

 

用 CLI 模式的好处


将系统大部分资

 

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

 

栗子一


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

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

image.png


栗子二


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

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

image.png


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

 

栗子三


jmeter -g report.jtl -o report

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

image.png

和栗子二的结果一样

 

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

点击 Tools

image.png

栗子四


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

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

 

重点

image.png

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

 

master 机

image.png

虚拟 slave 机

image.png

本地 slave 机

image.png

栗子五


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 机

image.png

栗子六


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

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

 

master 机

image.png

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

 

slave 机

image.png

当然想一劳永逸的话

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

 

相关文章
|
XML Java 测试技术
在非GUI模式下运行JMeter的三种方法
在非GUI模式下运行JMeter的三种方法
651 0
在非GUI模式下运行JMeter的三种方法
|
测试技术
Jmeter(GUI模式)教程
前些天,领导让我做接口的压力测试。What??我从未接触过这方面,什么都不知道,一脸蒙。于是我从学习jmeter开始入手。 现在记录下来jmeter的使用步骤,希望能对大家有所帮助。 一、安装Jmeter 1、电脑安装Java,并配置环境变量,步骤见:链接 2、下载Jmeter,解压到本地。
1645 0
|
Web App开发 测试技术 BI
|
6月前
|
Java 测试技术 Apache
用JMeter做接口压力测试
JMeter是Apache组织开发的基于Java的压力测试工具,它是用 Java 语言编写的
71 0
|
6月前
|
测试技术
JMeter压力测试简单例子
JMeter压力测试简单例子
72 0
|
8月前
|
XML 前端开发 测试技术
使用 jMeter 对 SAP Spartacus 进行并发性能测试
使用 jMeter 对 SAP Spartacus 进行并发性能测试
78 0
|
6天前
|
数据可视化 Java 测试技术
JMeter 如何实现 Elasticsearch 8.X 性能测试?
JMeter 如何实现 Elasticsearch 8.X 性能测试?
20 0
|
6天前
|
JSON 网络协议 Java
使用Jmeter进行功能和性能测试
使用Jmeter进行功能和性能测试
|
6天前
|
SQL Java 测试技术
Jmeter的安装与快速使用(做并发测试)
Jmeter的安装与快速使用(做并发测试)
21 0
|
6天前
|
消息中间件 测试技术
百度搜索:蓝易云【使用JMeter安装RabbitMQ测试插件的步骤】
以上是安装RabbitMQ测试插件的基本步骤。根据您的具体需求和JMeter版本,可能会有一些细微的差异,但总体流程应该是相似的。
64 1