jmeter命令行运行(非GUI形式)参数详解
一、JMete执行方式
正常情况下我们会以有页面的方式打开jmeter编写接口,并进行压测。但如果想以自动化的方式运行jmeter压测,以有界面的形式就无法实现了,而且很多Linux服务器都没有界面的(非GUI),这就要求我们一非gui形式运行jmeter了
二、JMete非GUI运行优点
JMeter可视化界面及监听器动态展示结果都比较消耗负载机资源,在大并发情况下GUI方式往往会导致负载机资源紧张,会对性能测试结果造成影响。我们就只有多加机器来运行测试计划(分布式测试),这样一台负载机变为两台。所以推荐用非GUI的方式来运行测试计划。虽然非GUI方式不显示界面,但也会以字符形式周期性显示执行结果,对负载机的资源消耗会小一些,所有同等条件下非GUI方式的jmeter机器能够产生的负载会比GUI方式的jmeter产生的负载大一些。
三、jmeter非GUI运行参数
参数说明:
- -n 命令行模式
- -t 指定jmx脚本地址(地址可以是相对路径,可以是绝对路径)
- -h 查看帮助
- -v 查看版本
- -p 指定读取jmeter属性文件,比如jmeter.properties文件中设置的
- -l 记录测试结果的文件,通常结果文件为jtl格式(文件可以是相对路径,可以是绝对路径)
- -s 以服务器方式运行(也是远程方式,启动Agent)
- -H 设置代理,一般填写代理IP
- -P 设置代理端口
- -u 代理账号
- -a 代理口令
- -J 定义jmeter属性,等同于在jmeter.properties中进行设置
- -G 定义jmeter全局属性,等同于在Global.properties中进行设置,线程间可以共享)
- -D 定义系统属性,等同于在system.properties中进行设置
- -S 加载系统属性文件,可以通过此参数指定加载一个系统属性文件,此文件可以用户自己定义
- -L 定义jmeter日志级别,如debug、info、error等
- -j 制定执行日志路径。(参数为日志路径,不存在不会自动创建,将日志输出到命行控制台)
- -r 开启远程负载机,远程机器列表在jmeter.properties中指定
- -R 开启远程负载机,可以指定负载机IP,会覆盖jmeter.properties中remote_hosts的设置
- -d 指定Jmeter Home目录
- -X 停止远程执行
- -g 指定测试结果文件路径,仅用于生成测试报表,参数是csv结果文件
- -e 设置测试完成后生成测试报表
- -o 指定测试报告生成文件夹(文件夹必须存在且为空文件夹)
四、jmeter非GUI运行命令
4.1非GUI基本命令格式:
jmeter -n -t baidu.jmx
chenshifengdeMacBook-Pro:~ chenshifeng$ jmeter -n -t baidu.jmx -l baidulog.jtl
Creating summariser <summary>
Created the tree successfully using baidu.jmx
Starting standalone test @ Fri Feb 19 18:07:30 CST 2021 (1613729250217)
Waiting for possible Shutdown/StopTestNow/HeapDump/ThreadDump message on port 4445
summary + 1 in 00:00:01 = 0.9/s Avg: 836 Min: 836 Max: 836 Err: 0 (0.00%) Active: 5 Started: 5 Finished: 0
summary + 376 in 00:00:29 = 13.2/s Avg: 381 Min: 318 Max: 938 Err: 0 (0.00%) Active: 5 Started: 5 Finished: 0
summary = 377 in 00:00:30 = 12.7/s Avg: 382 Min: 318 Max: 938 Err: 0 (0.00%)
summary + 381 in 00:00:30 = 12.7/s Avg: 392 Min: 312 Max: 1824 Err: 0 (0.00%) Active: 5 Started: 5 Finished: 0
summary = 758 in 00:01:00 = 12.7/s Avg: 387 Min: 312 Max: 1824 Err: 0 (0.00%)
summary + 397 in 00:00:30 = 13.2/s Avg: 378 Min: 285 Max: 1135 Err: 0 (0.00%) Active: 5 Started: 5 Finished: 0
summary = 1155 in 00:01:30 = 12.9/s Avg: 384 Min: 285 Max: 1824 Err: 0 (0.00%)
summary + 404 in 00:00:30 = 13.5/s Avg: 370 Min: 261 Max: 875 Err: 0 (0.00%) Active: 5 Started: 5 Finished: 0
summary = 1559 in 00:01:59 = 13.0/s Avg: 380 Min: 261 Max: 1824 Err: 0 (0.00%)
生成的测试报告可在Jmeter中使用聚合报告打开
4.2非GUI并生成html报告基本命令格式
jmeter -n -t baidu.jmx -l baidulog1.jtl -e -o log
jmeter -n -t baidu.jmx -l baidulog1.jtl -e -o output/
Creating summariser <summary>
Created the tree successfully using baidu.jmx
Starting standalone test @ Fri Feb 19 19:02:37 CST 2021 (1613732557435)
Waiting for possible Shutdown/StopTestNow/HeapDump/ThreadDump message on port 4445
summary = 50 in 00:00:02 = 20.2/s Avg: 139 Min: 43 Max: 643 Err: 0 (0.00%)
Tidying up ... @ Fri Feb 19 19:02:40 CST 2021 (1613732560194)
... end of run
执行完毕后,用浏览器打开生成的文件目录下的index文件,效果展示如下: