8.命令行运行脚本
8.1为什么使用命令行
在进行线程较多的性能测试时,如果是使用GUI方式执行的脚本,有可能导致占用大量的线程与资源,导致系统崩溃,这样测试出来的数据不具备准确性,所以我们一般使用GUI调整脚本,使用命令行执行性能测试脚本。再者,就是命令行执行支持多平台。
8.2如何使用命令行
执行命令前要检查当前目录是否是%JMeter_Home%\bin 目录;如果 JMeter 脚本不在当前目录,需要指定完整的路径;如果要把执行的结果保存在其他地方也要指定完整的路径。命令中不指定测试计划与测试结果的路径时,默认都是在该目录下。
命令:jmeter -n -t <testplan filename> -l <listener filename>
参数列表:
-n 启用命令行模式
-t 指定脚本位置(若命令行模式在bin/文件夹下,则可以使用相对路径,否则使用绝对路径)
-l 指定结果文件路径 (同上)
-j 指定日志文件路径 (同上)
-r 设置分布式执行
-R 指定远程服务器列表
-g 制定csv测试结果文件路径(同上)
-e 测试完成生产报表
-o 指定报表文件路径(同上)
-H 设置代理服务器IP或域名
-p 设置代理服务器端口号
这里使用:生成报表文件
jmeter -n -t testplan\mytesttutorial.jmx -l testplan\result.jtl -e -o testplan\HttpReport
可以看见就算是命令行执行在线程过多的时候也会十分占用系统配置。
进入报表目录,打开index.html即可查看报表
8.3报表介绍
报表首页:
APDEX(Application Performance Index)
应用程序性能满意度的标准,范围在0-1之间,1表示达到所有用户均满意。是由APDEX公司推出的。计算公式:
Requests Summary
请求总结,使用饼图来直观表达请求成功与失败的占比
Statistics
包含了请求名字,总请求次数,错误率,平均值,最小值,最大值,90%线,95%线,99%线,吞吐量,下载,上传速率等
Errors
错误请求列表
Top 5 Errors by sampler
错误率排名前五的监听器名称
左侧导航栏Charts(图表)模块
Over Time:随时间线变化的图表(注意,图表描点以分钟为间隔)
Response Times Over Time
平均响应时间随时间的变化图
横轴:时间
竖轴:平均响应时间
Response Time Percentiles Over Time (successful responses)
各类响应数据随时间的变化情况
横轴:时间
竖轴:响应时间
分别可以选择
90th percentile,95th percentile,99th percentile,Max,Min
取消max后的图表:
Active Threads Over Time
活动线程随时间变化图
横轴:时间
竖轴:线程数
Bytes Throughput Over Time
字节的吞吐量随时间变化图
横轴:时间
竖轴:Bytes/秒
Latencies Over Time
用户发送完请求后的平均响应等待时间随时间变化图
横轴:时间
竖轴:平均响应等待时间
Connect Time Over Time
建立请求连接时间
横轴:时间
竖轴:建立请求平均等待时间
Throughput:吞吐量相关图表
Hits Per Second
每秒点击次数随时间变化图表
横轴:时间
竖轴:点击率
Codes Per Second
每秒的响应代码随时间变化
若请求有不同的响应代码则会有不同的曲线
横轴:时间
竖轴:对应每秒的响应代码
Transactions Per Second
每秒的事务处理随时间的变化图
横轴:时间
纵轴:每秒事务处理量
Total Transactions Per Second
总的每秒的事务处理随时间的变化图
若脚本中不止一个事务,则会统计
可选择失败的事务线与成功的事务线
横轴:时间
纵轴:每秒事务处理量
Response Time Vs Request
响应时间与请求量对比图
横轴:总的请求数
竖轴:对应请求数下的50%用户的响应时间
Latency Vs Request
发送请求后的等待时间与请求时间对比图
横轴:总的请求数
竖轴:对应请求数下的50%用户的等待时间