JMeter可以运行模式有两种,一种是GUI图形,另一种是命令模式运行也就是非GUI模式。两种模式的区别还是挺大的。

GUI:由于是图形界面,所以在运行时会消耗很多资源,而且图形界面运行时结果是保存在Jmeter运行的内存中,如果是做长时的性能测试,内存就会占用的很高,首先就是影响性能结果的准确性,其次当内存增长到一定程度,就会报错,甚至可能出现卡死/宕机。

非GUI优势:命令模式运行可以将实时的log文件保存到本地,位置可以自定义,不会占用太多机器的资源,可以长时间运行。

1.节约系统资源:无需启动界面,节约系统资源

2.便捷快速:仅需启动命令行,输入命令便可执行,是为命令达人最爱

3.易于持续集成:可通过shell脚本命令执行

非GUI运行命令部分:

    • -h 帮助 -> 打印出有用的信息并退出

    • -n 非 GUI 模式 -> 在非 GUI 模式下运行 JMeter

    • -t 测试文件 -> 要运行的 JMeter 测试脚本文件

    • -l 结果文件路径 -> 记录结果的文件,路径不存在时会自动创建格式为jtl或csv

    • -r 远程执行 -> 在Jmter.properties文件中指定的所有远程服务器

    • -R 远程执行 -> 执行指定的服务器

    • -j 指定执行日志路径 -> 路径不存在时不会自动创建

    • -e 设置测试完成后生成测试报表

    • -g CSV结果文件 --> 指定测试执行结果文件路径,仅用于生成测试报表

    • -o 报表文件夹路径  --> 执行测试报表生成文件夹,文件夹必须为空或者不存在

    • -H 代理主机IP -> 设置 JMeter 使用的代理主机

    • -P 代理端口号 -> 设置 JMeter 使用的代理主机的端口号

非GUI运行示例:

jmeter -h

含义为:获取jmeter的命令帮助

jmeter -n -t test.jmx 

含义为:以命令模式运行test.jmx文件

jmeter -n -t test.jmx -l report\01-result.csv -j report\01-log.log

含义为:以命令模式运行test测试文件并保存结果及日志文件,需要注意的是如果日志路径不存在将不会自动创建,且日志会输出在命令行窗口,生成的结果文件可以在JMeter的图形界面下的聚合报告中导入结果文件进行查看。

jmeter -n  -t  test.jmx  -r  -l report\01-result.csv -j report\01-log.log

含义为:以命令模式远程调用remote_hosts中配置的所有服务器运行test测试文件并保存结果及日志文件,需要注意的是执行端的日志文件默认生成在用户目录下

jmeter -n -t  test.jmx  -R 192.168.21.40:1029 -l report\01-result.csv -j report\01-log.log

含义为:以命令模式远程调用192.168.21.40服务器运行test测试文件并保存结果及日志文件

为方便管理起见,在Jmeter安装目录下的bin目录下创建一个文件夹testscript用来存放脚本(.jmx文件),再创建一个文件夹testresult用来存放脚本执行后的结果文件。
结果文件是可以在Jmeter可视化界面打开的,它保存了脚本执行过程中的各种结果非常全面,结果树、聚合报告、表格查看结果等都可以将它打开看到响应的数据。

执行方法:

Windows

1、cmd打开命令行模式

2、切换到Jmeter安装目录下的bin目录下

3、执行命令:jmeter -n -t testscript\Baidu.jmx -l testresult\01-reslut.jtl(执行结果文件也可以保存为.cvs后缀)

在脚本运行过程中,由于无界面,命令窗口会每隔一段时间打印一下当前的运行状态,你会在窗口中看到类似下面的信息:

summary+ 是开始这个时点的报告。

summary= 是总结它之前的报告,呈现出的是当前时点之前总的情况,通常是均值。

最后一个summary=是本次压测总的情况,如果脚本按时正常结束的话,最后一次summary里面的值应该和你从GUI打开聚合报告或概括报告的值一致。

Linux

1、使用linux命令进入Jmeter安装目录下的bin目录

2、执行命令:jmeter -n -t testscript\Baidu.jmx -l testresult\01-reslut.jtl(执行结果文件也可以保存为.cvs后缀)

3、把结果文件下载到windows机器上,使用Jmeter打开结果文件

无界面分布式压测

当并发量过大单机无法承担需要做分布式压测,分布式的配置同以前文章介绍的一样,再次不做赘述。

执行方法:

  1、把脚本和参数文件存放到各台终端相同目录下

  2、将每台终端的jmerter-server.bat打开等待主机发号施令

  3、在主机命令窗口键入类似以下命令:

     jmeter.bat -n -t testscript/Baidu.jmx -R 192.168.182.129:1100,192.168.182.130:1200 -l testresult/01-result.jtl

命令中-R代表远程 remote ,后面跟随的是每台终端机jmeter-server窗口显示的 ip
和端口,同样,多台终端之间由逗号隔开,其他都与单机命令一样。于是可以看到各台终端机的jmeter-server窗口有关运行和阶段性summary的信息直至运行结束。总体的报告都在你主机保存的那个.jtl文件里。

执行结果:

jmeter非GUI模式优点及实例说明的更多相关文章

  1. 『动善时』JMeter基础 — 55、JMeter非GUI模式运行

    目录 1.JMeter的非GUI模式说明 2.为什么使用非GUI模式运行JMeter 3.怎样使用非GUI模式运行JMeter (1)非GUI模式运行JMeter步骤 (2)其它参数说明 4.CLI模 ...

  2. Jmeter非GUI模式运行

    非GUI模式,即命令行模式,运行 JMeter 测试脚本能够大大缩减所需要的系统资源. 使用的命令: jmeter  -n  -t  脚本文件路径   -l   结果输出文件路径   -j   日志文 ...

  3. Jmeter非GUI模式启动

    首先我们需要了解,GUI和非GUI模式启动Jmeter对测试的影响:Jmeter可视化界面及监听器展示结果需要消耗负载资源,从而导致,在大并发的情况下GUI方式会导致负载机资源紧张,对性能造成影响 e ...

  4. jmeter非GUI模式如何压测并生成测试报告

    在启动Jmeter时,我们会看到这样一句提示: 不要使用GUI模式(界面模式)进行负载测试,GUI模式只能用于创建测试和调试.进行负载测试时,需要时用非GUI模式. 那么为什么进行负载测试时一定要用非 ...

  5. jmeter 非GUI模式下传参

    为什么要使用非GUI模式?--因为GUI模式下运行的时候消耗的内存比非GUI模式大,会使得压力测试的结果不准确. 根据参数类型分为两种:jmeter.properties和system.propert ...

  6. jmeter非GUI模式命令

    一.如果没有.jtl文件,运行如下命令: jmeter -n -t baidu.jmx -l result.jtl 以非GUI形式运行Jmeter脚本jmeter -n -t baidu.jmx -l ...

  7. jmeter 非GUI模式下测试报错An error occurred: Unknown arg:

    D:\download\性能工具\JMeter\apache-jmeter-2.11\apache-jmeter-2.11\bin>jmeter -n -t E:\性能测试\jmeter scr ...

  8. jmeter 非gui 模式跑jmx

    D:\study\apache-jmeter-3.0\bin>jmeter -n -t D:\study\apache-jmeter-3.0\基金排行.jmx -l D:\study\apach ...

  9. JMeter非GUI模式下日志介绍

    Creating summariser <summary> Created the tree successfully using /opt/JMeter/TestPlan/test.jm ...

  10. Jmeter使用非 GUI 模式,即命令行模式运行实例讲

    转载:http://www.cnblogs.com/leeboke/p/5238269.html 参考资料:https://girliemangalo.wordpress.com/2009/10/29 ...

随机推荐

  1. 前端本地实现分页,利用了antd的分页和数组的切片

    html的结构 <a-pagination v-bind="pagination" @change="updatePage" @showSizeChang ...

  2. 前端js校验小数点

    let result = (value.toString()).indexOf("."); if (result != -1 && value.toString() ...

  3. styled-components 全局样式定义,由injectGlobal改为createGlobalStyle

    The injectGlobal API was removed and replaced by createGlobalStyle in styled-components v4. 原文链接 官方链 ...

  4. AFNI 步骤4-命令和预处理

    第一部分 AFNI命令和uber_subject.py的使用 略 第二部分 时间矫正 在扫描过程中,从第一个切片到最后一个切片之间存在一定的时间差,导致采集到的数据并不是一个时间点的. 在扫描过程中, ...

  5. AMBA-AXI学习笔记

    transfer与transaction的区别: transfer是只需要一次Valid和Ready握手的单次信息交换过程. transaction是一次完整的突发传输,包括地址transfer,一个 ...

  6. js match方法

    1.用法 match()方法可以字符串中检索指定的值,或者是匹配一个或多个正则表达式 2.返回值 该方法类似于indexOf()/lastIndexOf(),区别就是返回值不一样 indexOf()/ ...

  7. Day_1(并查集朋友圈、字典序排序)

    1.并查集 朋友圈:找出最多的一个圈子内有多少用户! id[](表示当前节点的父节点) nodeNum[] (表示当前节点为根的那一组节点数量) import java.util.Scanner; / ...

  8. hex 函数

    python的内置函数. 一.作用: 用于将十进制数改为十六进制数,并以字符串的形式表示. 二.语法: hex(number)  # 其中number为十进制的整数. 三.返回值: 以字符串形式表示的 ...

  9. 字符串类型如何格式化保留小数点后两位【ToString("0.00")】

    废话都不想写了,直接上图 遇到将decimal字段或者double字段转换成字符串string类型字段时想直接保留小数点后面两位的时候可以有个比较简易的格式化写法 也就是 str.ToString(& ...

  10. 日記かな、自分のサーバ作りの?(01、try…catch…の問題)

    今日まだ終わらないうちに.昼間から出会ったbugについて.取りまとめましょう. 一応try-catch-にかかわる問題かな- try(do something){ }catch{ } と try(){ ...