一、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文件,效果展示如下:

版权声明:本文为R-bear原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/R-bear/p/15036388.html