Jmeter系列(40)- 详解 Jmeter CLI 模式
如果你想从头学习Jmeter,可以看看这个系列的文章哦
https://www.cnblogs.com/poloyy/category/1746599.html
什么是 CLI 模式
- CLI = Common Line,命令行模式,我们常说的 NON GUI 模式,无界面模式
- 真正做负载测试时,应该使用 CLI 模式运行,而不是 GUI
启动 Jmeter GUI 时的提示
使用 jmeter.bat 运行时会有一个 cmd 窗口

官方也说了
负载测试不要用 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 存在也没关系,可以自动覆盖


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



后面再用一篇文章详细讲解 HTML 报告的细节
栗子三
jmeter -g report.jtl -o report
- 将 .jtl 文件转换为 .html 文件,并保存到 report 文件夹中
- 类似栗子二,只不过跳过了执行 .jmx 文件的步骤,直接将 .jtl 文件转换为 .html 文件

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

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

栗子四
jmeter -n -t FlaskDemo.jmx -r -l result/report.jtl
启动所有远程 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.::,127.0.0.1:
启动指定的远程 slave 机执行 FlaskDemo.jmx ,并在 result 目录下生成 report.jtl
和 -r 不一样, -R 是指定slave机的,并不是所有 slave 机
master 机

slave 机

栗子六
jmeter -n -t FlaskDemo.jmx -l result/report.jtl -R 172.20.:: -X
跟栗子五的基本一样,只不过加了 -X,让远程服务器在执行完脚本后自动退出 jmeter-server
master 机

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

当然想一劳永逸的话
可以将属性 jmeterengine.remote.system.exit 设置为 true(默认值为 false ),则 JMeter 将在测试结束后停止 RMI 之后调用 System.exit(0),但不建议这样
Jmeter系列(40)- 详解 Jmeter CLI 模式的更多相关文章
- JMeter学习笔记--详解JMeter配置元件
JMeter配置元件可以用来初始化默认值和变量,以便后续采样器使用.将在其作用域的初始化阶段处理. CSV Data Set Config:被用来从文件中读取数据,并将它们拆分后存储到变量中,适合处理 ...
- JMeter学习笔记--详解JMeter逻辑控制器
JMeter使用逻辑控制器来决定采样器的处理顺序 简单控制器(Simple Controller):存储设备(将某些采样器归组) 循环控制器(Loop Controller:设置循环次数 仅一次控制器 ...
- JMeter学习笔记--详解JMeter定时器
定时器的处理优先于同一作用域内的采样器,如果在同一作用域内有多个定时器,那么所有的定时器都会在每个采样器之前处理. 若定时器所在作用域内无采样器,那么定时器不会被处理 固定定时器,每个线程在请求之间间 ...
- 详解JMeter正则表达式
详解JMeter正则表达式(1) 1.概览 JMeter中包含范本匹配软件Apache Jakarta ORO .在Jakarta网站上有一些关于它的文档,例如a summary of the pat ...
- Jmeter常用功能详解
嘻嘻,忙碌的一周,马上就到周四了~明天就是周五了,可以去嗨了! 这几天正式成立了一个微信订阅号,旨在免费帮助需要入门软件测试的小白! 各位走过路过的亲,欢迎订阅哦:扫描二维码即可订阅
- Jmeter 测试计划元素详解
Jmeter 测试计划元素详解 by:授客 QQ:1033553122 由于篇幅问题,采用链接分享的形式,烦请复制以下网址,黏贴到浏览器中打开,下载 http://pan.baidu.com/s/1n ...
- jmeter --响应断言详解
jmeter --响应断言详解 响应断言 :对服务器的响应进行断言校验 (1)应用范围: main sample and sub sample, main sample only , sub-samp ...
- jmeter 基础功能详解
jmeter 基础功能详解 thread group:包含一组线程,每个线程独立地执行测试计划. sampler:采样器,有多种不同的sample实现,用来发起各种请求,如http请求,jdbc请求, ...
- 详解JMeter函数和变量(转载)
详解JMeter函数和变量(1) JMeter函数可以被认为是某种特殊的变量,它们可以被采样器或者其他测试元件所引用.函数调用的语法如下: ${__functionName(var1,var2,var ...
- 反爬虫:利用ASP.NET MVC的Filter和缓存(入坑出坑) C#中缓存的使用 C#操作redis WPF 控件库——可拖动选项卡的TabControl 【Bootstrap系列】详解Bootstrap-table AutoFac event 和delegate的分别 常见的异步方式async 和 await C# Task用法 c#源码的执行过程
反爬虫:利用ASP.NET MVC的Filter和缓存(入坑出坑) 背景介绍: 为了平衡社区成员的贡献和索取,一起帮引入了帮帮币.当用户积分(帮帮点)达到一定数额之后,就会“掉落”一定数量的“帮帮 ...
随机推荐
- SqlServer下一些实用的sql语句收集
清理数据库日志 USE [master] ALTER DATABASE [表名] SET RECOVERY SIMPLE WITH NO_WAIT ALTER DATABASE [表名] SET RE ...
- 小师妹学JavaIO之:文件File和路径Path
简介 文件和路径有什么关系?文件和路径又隐藏了什么秘密?在文件系统的管理下,创建路径的方式又有哪些?今天F师兄带小师妹再给大家来一场精彩的表演. 文件和路径 小师妹:F师兄我有一个问题,java中的文 ...
- Spring WebFlux 学习笔记 - (一) 前传:学习Java 8 Stream Api (3) - Stream的终端操作
Stream API Java8中有两大最为重要的改变:第一个是 Lambda 表达式:另外一个则是 Stream API(java.util.stream.*). Stream 是 Java8 中处 ...
- git clone 时注意点
环境: 在公司访问外网需要设置代理,另外,在公司局域网内架设了一台 GIT 服务器. 在使用 git clone 时,不能设置成 git 使用代理: git config --global http. ...
- @loj - 2987@ 「CTSC2016」时空旅行
目录 @description@ @solution@ @accepted code@ @details@ @description@ 2045 年,人类的技术突飞猛进,已经找到了进行时空旅行的方法. ...
- Android学习笔记使用Notication 显示通知
实现步骤 代码实现 创建MainActivity和DetailActivity(点击通知后要跳转的Activity),两个Activity的布局文件就是添加一张全屏的背景图,老规矩,不粘贴. Main ...
- Zookeeper——基本使用以及应用场景(手写实现分布式锁和rpc框架)
文章目录 Zookeeper的基本使用 Zookeeper单机部署 Zookeeper集群搭建 JavaAPI的使用 Zookeeper的应用场景 分布式锁的实现 独享锁 可重入锁 实现RPC框架 基 ...
- LNMP 环境更换Nginx 服务器为Tengine
本人之前所使用 LNMP 环境一直是原生的Nginx服务器,最近几天看了好多大网站使用 淘宝团队基于Nginx开发的 Tengine 决定给自己的虚拟机也装个玩玩. 关于Tengine的介绍就不多说了 ...
- 深入理解JVM(③)ZGC收集器
前言 ZGC是一款在JDK11中新加入的具有实验性质的低延迟垃圾收集器,目前仅支持Linux/x86-64.ZGC收集器是一款基于Region内存布局的,(暂时)不设分代的,使用了读屏障.染色指针和内 ...
- async/await到底该怎么用?如何理解多线程与异步之间的关系?
前言 如标题所诉,本文主要是解决是什么,怎么用的问题,然后会说明为什么这么用.因为我发现很多萌新都会对之类的问题产生疑惑,包括我最初的我,网络上的博客大多知识零散,刚开始看相关博文的时候,就这样.然后 ...