JMeter 命令行测试

为什么需要jmeter的命令行?

性能:JAVA不是一种用于GUI的语言,进行性能测试时,建议使用命令行模式,能够节省资源,运行更多的虚拟用户。
持续集成:一般来说,jmeter不论和何种工具进行集成(如:jenkins),其本质都是和Jmeter的命令行运行有关。

配置Jmeter环境变量

https://www.cnblogs.com/sunlin1107/p/16620997.html
1.windows11桌面右键-显示设置-系统
2.点击左侧第一行:系统-右下角点击:系统信息-高级系统配置-环境变量
3. 配置环境变量第一步
1:在系统变量-新建JMETER_HOME(全部大写)环境变量,变量值为JMeter解压后的路径
变量:JMETER_HOME
值:jmeter安装路径 如:C:\jmeter\apache-jmeter-5.5
配置环境变量第二步
在系统变量中,双击classpath变量在值后面加上%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-2.0.jar; 点击确定
配置环境变量第三步
在系统变量中,双击“Path”变量,新建添加内容“%JMETER_HOME%\bin”,点击确定。
在这里插入图片描述
cmd 命令行输入jmeter,如果出现如下图可打开jmeter,则配置成功,可打开jmeter。
在这里插入图片描述

Jmeter的命令行参数详解

:该参数是用来显示Jmeter的参数列表
-h:该参数是用来显示jmeter的官方的命令行帮助文档。
-n:noGUI,表示以命令行模式来运行jmeter。(该参数不能单独使用,必须要结合其他参数一起使用)
-t:表示用来指定需要执行的测试脚本(testPlan)(一般来说,Jmeter的脚本后缀是*.jmx)
示例:jmeter -n -t baiduTEST.jmx
表示在命令行模式下,执行当前目录下的脚本baiduTEST.jmx

-l:该参数是用来指定用于存储jmeter的测试结果的文件(一般使用*.jtl作为测试结果的文件后缀名)
示例:jmeter -n -t baiduTEST.jmx -l results/t1.jtl
表示在命令行模式下,执行当前目录下的脚本baiduTEST.jmx,并且将测试结果存入当前目录下的results/t1.jtl文件中。

查看测试结果:
使用GUI模式下,在任意一个监听器组件中以浏览的方式打开读取测试结果文件:
在这里插入图片描述
监听器右键不可直接打开读取,会报错:
在这里插入图片描述
Jmeter参数配置
命令行模式下执行测试,最终写入结果的数据和GUI模式下脚本所添加的监听器组件无关,和jmeter的配置文件jmeter.properties有关。
一般不保存为xml格式,一般保存为csv格式,但是csv格式下”查看结果树“无法查看响应数据,但可以用汇总报告或聚合报告查看运行结果。
在这里插入图片描述注意:若**-l**的值(测试结果文件名)未改变,同一测试脚本多次运行后,测试结果会以追加方式存入结果文件。测试报告结果异常,无法参考,因此需要注意,每次运行脚本需要保存的结果文件名不可重复。
若多次运行后,保留结果的文件类型不同(csv,xml),测试结果文件无法打开,测试结果报废。
在这里插入图片描述

-e:该参数表示生成HTML格式的测试报告。(该参数不能单独使用,结合其他参数一起使用:-o)
-o : 该参数用来指定用于存储html格式的报告的文件夹。文件夹必须不存在或者为空。
示例:jmeter -n -t baiduTEST.jmx -l results/t2.jtl -e -o results/h2
表示在命令行模式下,执行当前目录下的脚本baiduTEST.jmx,并且将测试结果存入当前目录下的results/t2.jtl文件中。并且生成html报告,存入文件夹 results/h2。
-g:该参数是用来基于已经存在的jtl结果文件生成HTML报告的。(需要结合参数-o一起使用)
示例:jmeter -g results/t1.jtl -o results/h1
注意:-g生成HTML报告,仅支持csv格式的结果文件,不支持xml格式。

Jmeter生成报告的配置项主要通过jmeter-bin目录下reportgenerator.properties配置文件来控制的,主要设置的是报告的取样频率,默认一分钟,必须大于1s,1001ms。

外部传参

希望通过外部传参的方式,影响jmeter脚本的执行,防止每次需要手动在GUI界面修改脚本线程数 。
外部传参一般通过-D属性来实现参数值的传递,一个-D一次只能传递一个参数。
操作步骤:
1.脚本改造:
jmeter是通过properties变量来实现外部参数的接收和处理
需要对脚本中所有希望从外部参数获取值的地方进行改造,一般来说,将固定值替换为properties变量的调用。
函数助手;
-p或-proper
属性名称(自定义,建议有意义):如线程数:thread.num 循环次数:loop.num
默认值1
生成变量名:KaTeX parse error: Expected group after '_' at position 2: {_̲_P(thread.num,1…{__P(loop.num,1)}
在这里插入图片描述
在线程组页面,输入变量名代替,设置变量后保存脚本才生效!!!
在这里插入图片描述
2.脚本调用:
Jmeter的命令行参数中,有3个参数是和properties变量的传递有关:
-D:表示传入的是system properties (JVM),
-J:表示传入的是Jmeter properties变量
一般情况下,-D和-J是通用的,等价的。
-G:表示传入的是Global properties变量
该参数仅用于分布式负载时,从控制机向负载机传递参数值。

注意:一般来说,-D和**-J是没有区别的,而如果要进行分布式负载时,必须且只能使用-G**来实现properties变量的传递,否则负载机接收不到值。
示例:jmeter -n -t baiduTEST.jmx -l results/t5.jtl -Dthread.num=9 -Dloop.num=9
jmeter -n -t baiduTEST.jmx -l results/t5.jtl -Dthread_num=9 -Dloop_num=9
表示在命令行模式下,执行当前目录下的脚本baiduTEST.jmx,传入两个system properties变量的值,并将测试结果存入当前目录下的文件results/t5.jtl中。
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值