目录
命令参数
执行示例
生成测试报告
利用已有.jtl文件生成报告
无.jtl文件生成测试报告
报告内容解析
Dashboard
Charts
所遇问题
JMeter可以运行模式有两种,一种是GUI图形,另一种是命令模式运行也就是非GUI模式。
GUI:由于是图形界面,所以在运行时会消耗很多资源,而且图形界面运行时结果是保存在Jmeter运行的内存中,如果是做长时的性能测试,内存就会占用的很高,首先就是影响性能结果的准确性,其次当内存增长到一定程度,就会报错,甚至可能出现卡死/宕机。
非GUI优势:通过命令运行,无图形化界面,消耗压力机资源较低,可以支持较大的并发。便捷快速,仅需启动命令行,输入命令便可执行。易于持续集成,可通过shell脚本命令执行,实际压测建议使用命令行模式。
-h 帮助
-n 命令行模式
-t 指定要运行的JMX脚本路径
-l 指定结果文件路径,运行前要确保xxx.jtl不存在,不然报错
-r 分布式(远程)执行,服务器列表由JMETER_HOME\bin\Jmter.properties文件中remote_hosts指定
-R 指定分布式(远程)服务器列表,参数为服务器列表,配置形式同remote_hosts
-j 指定执行日志路径
-g CSV结果文件,指定测试执行结果文件路径,仅用于生成测试报表
-e 设置测试完成后生成测试报表
-o 报表文件夹路径,执行测试报表生成文件夹,文件夹必须为空或者不存在
-H 指定代理服务器域名或代理服务器IP,一般填写代理IP
-P 指定代理服务器端口号
执行测试脚本
jmeter -n -t test.jmx
指定结果文件及日志路径
jmeter -n -t test.jmx -l report\01-result.csv -j report\01-log.log
远程调用remote_hosts中配置的所有服务器
jmeter -n -t test.jmx -r -l report\01-result.csv -j report\01-log.log
远程调用指定服务器
jmeter -n -t test.jmx -R 192.168.xx.xx:1029 -l report\01-result.csv -j report\01-log.log
在脚本运行过程中,由于无界面,命令窗口会每隔一段时间打印一下当前的运行状态,在窗口中会看到类似下面的信息
summary+ 是开始这个时点的报告。
summary= 是总结它之前的报告,呈现出的是当前时点之前总的情况,通常是均值。
最后一个summary=是本次压测总的情况,如果脚本按时正常结束的话,最后一次summary里面的值应该和从GUI打开聚合报告或概括报告的值是一致的。
从3.0版本开始,Jmeter引入了Dashboard Report模块,用于生成HTML类型的可视化图形报告。
如果已经有经过测试生成的.jtl文件,可以利用该文件直接生成HTML可视化测试报告。
进入jmeter的bin目录下,输入如下命令:
jmeter -g xxx.jtl -o /report
# -g:后跟xxx.jtl文件所在的路径
# -o:后跟生成的HTML文件存放的路径
如果还未生成.jtl文件,则可以通过如下命令,一次性完成测试执行和生成HTML可视化报告的操作,进入jmeter的bin目录下,输入如下命令:
jmeter -n -t xxx.jmx -l xxx.jtl -e -o /report
# -n:以非GUI形式运行Jmeter
# -t:source.jmx 脚本路径
# -l:result.jtl 运行结果保存路径(.jtl),此文件必须不存在
# -e:在脚本运行结束后生成html报告
# -o:用于存放html报告的目录
执行截图:
PS:(linux系统和windows系统命令一样)需要注意的是,生成的.jtl文件路径下,不能存在同名的.jtl文件,否则会执行失败。
查看测试报告:
Test and Report information
file:文件名
start time:开始时间
end time:结束时间
filter for display:过滤器
APDEX (Application Performance Index)
APDEX:性能指数,是用户对应用性能满意度的量化值。它提供了一个统一的测量和报告用户体验的方法,把最终用户的体验和应用性能作为一个完整的指标进行统一度量。下图表示为通用用户满意度区域,0代表没有满意用户,1则代表所有用户都满意。实际业务系统开发过程中,1是团队的追求目标。
T(Toleration threshold):容忍或满意阈值
F(Frustration threshold):失败阈值
Requests Summary
请求的通过率(OK)与失败率(KO),百分比显示
Statistics
数据分析,基本将 Summary Report 和 Aggrerate Report 的结果合并
Errors
错误情况,依据不同的错误类型,将所有错误结果展示
Top 5 Errors by sampler
样本前五个错误
Over Time
Response Times Over Time:随着时间推移响应时间变化趋势图。
Bytes Throughput Over Time:随着时间推移每秒接收和请求字节数变化趋势图,蓝色为每秒发送字节数,黄色为每秒接收字节数。
Latencies Over Time:随着时间推移平均响应延时趋势图,记录客户端发送请求完成后,服务器端返回请求之前这段时间。
Throughput
吞吐量
hits per second:每秒点击率
codes per second:每秒状态码数量
Transactions per second:每秒事务量
Response Time Vs Request: 响应时间点请求的成功/失败数
Latency Vs Request: 延迟时间点请求的成功/失败数
Response Times
响应时间
Response Time Percentiles: 响应时间百分比
Active Threads Over Time: 随着时间推移活跃线程数
Time Vs Threads: 测试过程中的线程数时续图
Response Time Distribution: 响应时间分布
执行命令时:WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0x80000002. Windows RegCreateKeyEx(...) returned error code 5.
原因:
不是管理员权限在运行,需要管理员权限运行
解决方法:
win+R输入regedit回车,打开注册表编辑器。
找到HKEY_LOCAL_MACHINE \ SOFTWARE \ JavaSoft。
右键单击权限,找到使用的非管理员账户,然后更改权限为完全控制。