目录
2. Jmeter Summariser report的log设置
0. 简介
使用非GUI模式,即命令模式运行JMeter测试脚本能够大大缩减所需要的系统资源。
应用场景
- 无需交互界面或受环境限制(linux text model)
- 远程或分布式执行
- 持续集成,通过shell脚本或批处理命令均可执行,生成的测试结果可被报表生成模块直接使用,便于生成报告
- 命令行模式优点
参数详解
命令参数 | 命令释义 |
-n | 设置命令模式 |
-t | 指定JMX脚本路径,参数为:JMX脚本路径,若非当前目录需用全路径或相对路径 |
-l | 指定结果文件路径(jtl或cvs), 参数为:结果文件路径。路径不存在时会自动创建 |
-j | 指定执行日志路径, 参数为:日志路径。路径不存在,不会自动创建,同时将日志输出至命令控制台 |
-r | 设置分布式(远程)执行, 服务器列表由JMETER_HOME\bin\jmeter.properties中remote_hosts指定 |
-R | 指定远程(分布式)服务器列表,参数为:指定服务器列表,配置形式同remote_hosts |
-g | 指定测试结果文件路径,仅用于生成测试报表。参数为:csv结果文件 |
-e | 设置测试完成后生成测试报表 |
-o | 指定测试报表生成文件夹,文件夹必须为空或不存在。参数为:报表文件夹路径 |
-H | 指定代理服务器域名或代理服务器IP。参数为:代理服务器域名或代理服务器IP |
-P | 指定代理服务器端口号。 参数为:代理服务器端口号 |
1. mac配置jmeter环境变量
编辑用户目录下.bash_profile文件
vim .bash_profile
黏贴以下内容后,保存并退出:wq
export JMETER_HOME=/Users/leiyuxing/apache-jmeter-5.0/
export PATH=$JAVA_HOME/bin:$JMETER_HOME/bin:$PATH
执行命令,生效配置
source .bash_profile
执行命令确认,如果成功则会自动开启jmeter窗口
jmeter
2. Jmeter Summariser report的log设置
Jmeter在做性能测试的时候,可能会run很长时间,这样产生的log会非常大,跑过一次72小时的测试,log达到了6G!,这样分析起来会比较麻烦,JMeter还提供了summariser result report,就是在每隔一段时间打一行log,这样log就会大大减小。
Jmeter summariser report的设置在:bin/jmeter.properties.
#---------------------------------------------------------------------------
# Summariser - Generate Summary Results - configuration (mainly applies to non-GUI mode)
#---------------------------------------------------------------------------
#
# Define the following property to automatically start a summariser with that name
# (applies to non-GUI mode only)
summariser.name=summary
#
# interval between summaries (in seconds) default 3 minutes
summariser.interval=180
#
# Write messages to log file
summariser.log=true
#
# Write messages to System.out
#summariser.out=true
注:以上设置为每隔3分钟向jmeter.log中写一行log
3. 执行测试脚本
注意:执行的命令都需要指定绝对路径
jmeter -n -t JMeter分布式测试示例.jmx
命令行窗口输出如下:
Creating summariser <summary>
Created the tree successfully using CoinCola_3.4.5Test.jmx
Starting the test @ Fri Nov 02 10:36:01 CST 2018 (1541126161167)
Waiting for possible Shutdown/StopTestNow/Heapdump message on port 4445
summary + 1 in 00:00:00 = 5.6/s Avg: 1 Min: 1 Max: 1 Err: 1 (100.00%) Active: 1 Started: 1 Finished: 0
summary + 46 in 00:02:59 = 0.3/s Avg: 952 Min: 321 Max: 19345 Err: 22 (47.83%) Active: 1 Started: 1 Finished: 0
解释:summary+是这三分钟的数据,summary=是累计到当前时刻所有的数据 以第一行为例,46是发出的请求数目,00:02:59m是时间,0.3是每秒发出的请求,即吞吐量,Avg、Min、Max分别是平均响应时间,最小响应时间和最大响应时间,响应时间指的是从请求发出到收到响应时间,Err后面跟的数据分别是错误数和错误比例。
4. 指定结果文件及日志路径
jmeter -n -t JMeter分布式测试示例.jmx -l report\01-result.csv -j report\01-log.log
命令行窗口输出如下所示:
Creating summariser <summary>
Created the tree successfully using CoinCola_3.4.5Test.jmx
Starting the test @ Fri Nov 02 11:28:50 CST 2018 (1541129330513)
Waiting for possible Shutdown/StopTestNow/Heapdump message on port 4445
summary + 20 in 00:01:12 = 0.3/s Avg: 863 Min: 0 Max: 6256 Err: 10 (50.00%) Active: 1 Started: 1 Finished: 0
summary + 51 in 00:03:00 = 0.3/s Avg: 526 Min: 316 Max: 1672 Err: 25 (49.02%) Active: 1 Started: 1 Finished: 0
summary = 71 in 00:04:12 = 0.3/s Avg: 621 Min: 0 Max: 6256 Err: 35 (49.30%)
summary + 50 in 00:02:59 = 0.3/s Avg: 585 Min: 326 Max: 2163 Err: 25 (50.00%) Active: 1 Started: 1 Finished: 0
注:若日志路径不错在,则jmeter不会自动创建,同时将日志输出至命令行窗口。
结果文件类型为jtl或csv,可通过jmeter的聚合报告浏览结果文件,查看最终结果,如下所示: