如果你想从头学习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 模式的更多相关文章

  1. JMeter学习笔记--详解JMeter配置元件

    JMeter配置元件可以用来初始化默认值和变量,以便后续采样器使用.将在其作用域的初始化阶段处理. CSV Data Set Config:被用来从文件中读取数据,并将它们拆分后存储到变量中,适合处理 ...

  2. JMeter学习笔记--详解JMeter逻辑控制器

    JMeter使用逻辑控制器来决定采样器的处理顺序 简单控制器(Simple Controller):存储设备(将某些采样器归组) 循环控制器(Loop Controller:设置循环次数 仅一次控制器 ...

  3. JMeter学习笔记--详解JMeter定时器

    定时器的处理优先于同一作用域内的采样器,如果在同一作用域内有多个定时器,那么所有的定时器都会在每个采样器之前处理. 若定时器所在作用域内无采样器,那么定时器不会被处理 固定定时器,每个线程在请求之间间 ...

  4. 详解JMeter正则表达式

    详解JMeter正则表达式(1) 1.概览 JMeter中包含范本匹配软件Apache Jakarta ORO .在Jakarta网站上有一些关于它的文档,例如a summary of the pat ...

  5. Jmeter常用功能详解

    嘻嘻,忙碌的一周,马上就到周四了~明天就是周五了,可以去嗨了! 这几天正式成立了一个微信订阅号,旨在免费帮助需要入门软件测试的小白! 各位走过路过的亲,欢迎订阅哦:扫描二维码即可订阅

  6. Jmeter 测试计划元素详解

    Jmeter 测试计划元素详解 by:授客 QQ:1033553122 由于篇幅问题,采用链接分享的形式,烦请复制以下网址,黏贴到浏览器中打开,下载 http://pan.baidu.com/s/1n ...

  7. jmeter --响应断言详解

    jmeter --响应断言详解 响应断言 :对服务器的响应进行断言校验 (1)应用范围: main sample and sub sample, main sample only , sub-samp ...

  8. jmeter 基础功能详解

    jmeter 基础功能详解 thread group:包含一组线程,每个线程独立地执行测试计划. sampler:采样器,有多种不同的sample实现,用来发起各种请求,如http请求,jdbc请求, ...

  9. 详解JMeter函数和变量(转载)

    详解JMeter函数和变量(1) JMeter函数可以被认为是某种特殊的变量,它们可以被采样器或者其他测试元件所引用.函数调用的语法如下: ${__functionName(var1,var2,var ...

  10. 反爬虫:利用ASP.NET MVC的Filter和缓存(入坑出坑) C#中缓存的使用 C#操作redis WPF 控件库——可拖动选项卡的TabControl 【Bootstrap系列】详解Bootstrap-table AutoFac event 和delegate的分别 常见的异步方式async 和 await C# Task用法 c#源码的执行过程

    反爬虫:利用ASP.NET MVC的Filter和缓存(入坑出坑)   背景介绍: 为了平衡社区成员的贡献和索取,一起帮引入了帮帮币.当用户积分(帮帮点)达到一定数额之后,就会“掉落”一定数量的“帮帮 ...

随机推荐

  1. MongoDB知识点总结

    一:MongoDB 概述    一.NoSQL 简介 1. 概念:NoSQL(Not Only SQL的缩写),指的是非关系型数据库,是对不同于传统的关系型数据库的数据库管理系统的统称.用于超大规模数 ...

  2. 线上排查Class、Jar加载问题的一般方法

    问题背景 本问题源于<ojdbc6中OraclePreparedStatement的ArrayIndexOutOfBoundsException异常BUG-6396242>这篇博文中最后思 ...

  3. Java中的四种引用方式

      无论是通过引用计数算法判断对象的引用数量,还是通过可达性分析算法判断对象的引用链是否可达,判定对象是否存活都与"引用"有关.在Java语言中,将引用又分为强引用.软引用.弱引用 ...

  4. TestNG配合ant脚本进行单元测试

    上面就是一个简单的SSM框架的整合,数据库来自宜立方商城的e3-mall采用一个简单的spring-mvc和spring以及mybatis的整合 单元测试代码为 TestUserByTestNG.ja ...

  5. python的常用魔法方法详细总结

    构造和初始化 __init__我们很熟悉了,它在对象初始化的时候调用,我们一般将它理解为"构造函数". 实际上, 当我们调用x = SomeClass()的时候调用,__init_ ...

  6. Python3-paramiko模块-基于SSH的远程连接模块

    Python3中的paramiko模块,基于SSH用于连接远程服务器并执行相关操作 http://docs.paramiko.org/en/2.1/ SSHClient 用于连接远程服务器并执行基本命 ...

  7. mysql错误详解(1819):ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

    O(∩_∩)O哈哈~ 在学习 Mysql 的时候又遇到了新问题了 o(╥﹏╥)o 当我在准备为用户授权的时候: grant all privileges on *.* to 'root'@'%' id ...

  8. python黑帽子之udp客户端

    将上文的TCP客户端简单修改便能得到UDP客户端 import socket target_host = "127.0.0.1" target_port = 80 client = ...

  9. LQR要点

    新的“A”变成着了这样:Ac = A - KB 基于对象:状态空间形式的系统 能量函数J:也称之为目标函数 Q:半正定矩阵,对角阵(允许对角元素出现0) R:正定矩阵,QR其实就是权重 下面这段话可能 ...

  10. vue全家桶(2.7)

    3.11.1.vue-router中的全局钩子函数 在vue-router中,路由发生变化,我们可以做一些事情,例如:可以决定是否进入导航,可以决定跳转到哪里,官方文档中又叫做导航守卫 首先来看一个全 ...