jmeter生成性能报告

自动生成一个HTML的性能报告了。

由于性能测试测的是性能,所以此处建议使用命令行,而不是图形界面。用命令行界面的优势有如下几点:

1.图形界面消耗的资源比命令行界面大得多;

2.命令行界面可以用于测试大型负载的性能测试;

3.可以部署在持续集成的CI工具,例如jenkins。

埋坑与填坑之路

于是我就开启了jmeter非GUI的暴走模式,刚开始到处碰壁,下面就把遇到的问题和解决办法分享给大家。

首先用cmd打开windows的命令行窗口, cd切换到jmeter bin所在的目录。因为我的Jmeter是放在了D盘的D:\Program Files (x86), 所以我的是 D:\Program Files (x86)\apache-jmeter-3.0\bin 。

接着运行 jmeter -n -t D:\Program Files (x86)\apache-jmeter-3.0\result\Test.jmx -l D:\Program Files (x86)\apache-jmeter-3.0\result\demo.csv

其中   -n 表示运行jmeter非GUI,如果直接jmeter 回车,就会打开GUI界面。

          -t 指定的脚本文件及其路径。

          -l 输出结果指定的路径,默认是输出到bin目录下的jmeter.log

 

接下来让人抓狂的事情发生了:报错An error occured:Unknown arg

@#@¥#¥%……¥¥……¥……¥¥&¥%#%¥……¥&¥……¥……¥&¥¥……&(内心戏:OMG, what happen? What's wrong?)

由于我有python的编程经验,其中python对于缩进有严格的限制,我就猜想,会不会是我的路径有问题?

D:\Program Files (x86)\apache-jmeter-3.0\result\Test.jmx  (问题其实就在这里)

命令行界面对于空格也有一定的规则,我路径错误就在于Program Files (x86)这个文件夹名称存在空格。

所以解决方法是把我的jmeter直接移动到根目录,变成D:\apache-jmeter-3.0

当然我也可以把Program Files(X86)中的空格去掉,但是我不会这么做,因为这个文件夹下面装了好多东西。

OK,这次接着采用我上次用过的百度测试的jmx脚本来调试,再次运行命令,jmeter -n -t D:\apache-jmeter-3.0\testFile\testBaidu.jmx -l D:\apache-jmeter-3.0\testFile\csvlog.log -e -o D:\apache-jmeter-3.0\testFile\Report

 

运行界面

yes, success!

正确的指令打开方式

jmeter –n –t <jmx filepath> -l <csv log path>  -e –o <report folder path>

-n: 非GUI模式执行JMeter

-t: 执行测试文件所在的位置

-l: 指定生成测试结果的保存文件,jtl文件格式

-e: 测试结束后,生成测试报告

-o: 指定测试报告的存放位置

该方式的输入,为JMX file path,另外两个参数(CSV log和report folder)皆为输出。

需要注意的是,csv log不能在report folder下,否则将报类似csv log is not empty之类的错误。

输出的CSV文件如下(百度测试为例):

 

CSV文件

报告展示

报告生成完毕后,目录结构如下:

 

Report folder

 

Dashboard

 

Test and Report Information

列出csv log文件名,已经报告生成所花费的时间(起始时间,结束时间)。

APDEX

应用程序性能指标。

Apdex:性能结果,范围0-1,1表示满意。

T:满意阈值,小于或等于该值,表示满意。

F:失败阈值,大于或等于该值,表示不满意。

处于T与F之间,表示可容忍。

 

Requests Summary

所有Request的成功比例,OK表示成功,KO表示不成功。

Statistics

数据分析。

Samples:线程数量

KO:失败数量

Error:失败率

Average:平均耗时

Min:最小耗时

Max:最长耗时

90th/95th/99thpct:90%、95%、99%的线程耗时

Throughput:每秒钟发送的请求数量

Received:接收网络响应耗时

Sent:发送网络请求耗时

 

Errors

会给出所有的错误原因。

 

OverTime

(1) Response Time Over Time

随时间变化,每个时间节点上的线程平均响应时间

 

(2) Bytes Throughput Over Time

 

 

(3) Latencies Over Time

随时间变化,每个时间节点上的平均响应延时。

 

 

 

Thoughput

(1) Hits Per Second (excluding embedded resources)

每秒钟向服务器发送的请求数量。

 

(2) Codes Per Second (excluding embedded resources)

每秒钟服务器返回的ResponseCode数量。

 

(3) Transactions Per Second

服务器每秒钟处理的事务数量。

 

(4) ResponseTime Vs Request

每秒发送多少个请求时,所对应的平均响应时间。

 

(5) LatencyVs Request

每秒发送多少个请求时,所对应的平均延时。

 

Response Times

(1) ResponseTime Percentiles

响应时间与百分比的对应关系,即有百分之多少的线程花费了某一响应时间。

 

(2)  Active Threads Over Time

 

 

(3) TimeVs Threads

N个活动线程情况下的平均响应时间。

 

(4) Response TimeDistribution

在某一响应时间段内的线程响应数量。

 


最后还有一点要注意的是,每次启动命令之前,report的文件夹内容必须和 jtl 文件一起清空


作者:六月雨June
链接:https://www.jianshu.com/p/36aa397f8f12

  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值