Jmeter命令行执行压力测试

时间:2022-11-08 23:47:20
●前言
使用非 GUI 模式,即命令行模式运行 JMeter 测试脚本能够大大缩减所需要的系统资
第一步:执行命令
先在Jmeter中把要测试的请求配置好,然后去cmd中运行脚本。我这里只用了10条做测试,大家可以调多一点。
命令:jmeter -n -t 口令红包并发测试.jmx -l test.jtl
绝对路径:jmeter -n -t c:\口令红包并发测试.jmx -l c:\test.jtl
JMeter 默认去当前bin目录下寻找脚本文件,并把日志记录在当前目录。比如你在 E:\Jmeter\apache-jmeter-4.0\bin>目录下执行以上命令,JMeter 会去该目录下寻找 口令红包并发测试.jmx脚本并把执行结果放在该目录。
如果你的脚本在其他目录,而且想要把执行结果放在另外文件夹,需要使用绝对路径告诉 JMeter
Jmeter命令行执行压力测试
  Jmeter命令行执行压力测试
Jmeter命令行执行压力测试
第二步:查看报告
第一种方法:
上述的命令有要求测试结果保存到Jmeter bin目录中,如果需要可以在GUI模式下查看测试报告。
1、打开Jmeter GUI界面
2、在测试计划下,添加对应的测试报告元件,想看哪个就可以添加哪个报告,如:聚合报告、查看结果树、Summary Report测试报告
3、在所有数据写入一个文件,浏览中选择对应的日志文件
4、下面就会有对应的表格展示,具体见下图
Jmeter命令行执行压力测试
  Jmeter命令行执行压力测试
Jmeter命令行执行压力测试
Jmeter命令行执行压力测试
第二种方法(生成web报告):
Jmeter命令行执行压力测试
  Jmeter命令行执行压力测试
Jmeter命令行执行压力测试
命令:jmeter -n -t 口令红包并发测试.jmx -l result.txt -e -o test/test
PS:
result.txt 为测试结果文件路径
test/test 存放web报告保存路径,如果没有该路径,可以自动生成。
Web报告如下所示:
Jmeter命令行执行压力测试
  Jmeter命令行执行压力测试
Jmeter命令行执行压力测试
CMD窗口的提示信息
================================================================================ Don't use GUI mode for load testing !, only for Test creation and Test debugging. For load testing, use NON GUI Mode: jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder] & increase Java Heap to meet your test requirements: Modify current env variable HEAP="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m" in the jmeter batch file Check : https://jmeter.apache.org/usermanual/best-practices.html ================================================================================
上面的意思就是:不要使用GUI运行压力测试,GUI仅用于压力测试的创建和调试;执行压力测试请不要使用GUI。使用下面的命令来执行测试:
jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]
并且修改JMeter批处理文件的环境变量:HEAP="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m"
Jmeter命令行执行压力测试
  命令介绍

jmeter -n -t <testplan filename> -l <listener filename>
示例: jmeter -n -t testplan.jmx -l test.jtl

示例含义:则表示以命令行模式运行testplan.jmx文件,输出的日志文件为test.jtl
参数介绍
这里是我们使用非 GUI 模式运行测试脚本时可以使用的一些命令,Jmeter官网用户手册介绍如下:
-h, –help -> prints usage information and exit
-n, –nongui -> run JMeter in nongui mode
-t, –testfile <argument> -> the jmeter test(.jmx) file to run
-l, –logfile <argument> -> the file to log samples to
-r, –runremote -> Start remote servers (as defined in remote_hosts)
-H, –proxyHost <argument> -> Set a proxy server for JMeter to use
-P, –proxyPort <argument> -> Set proxy server port for JMeter to use

具体的含义如下:

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

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

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

-l 日志文件 -> 记录结果的文件

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

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

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

例如:jmeter -n -t test1.jmx -l logfile1.jtl -H 192.168.1.1 -P 8080