插件转换模式不只能够将 JMeter报告-jtl 文件转换成png,还能转换成csv。html
其中会用到1个批处理文件和4个jar文件,并且所有包含在 Command-Line Graph Plooting Tool中:java
1. PluginsManagerCMD.bat (for windows) 或者 PluginsManagerCMD.sh (for linux), 选择其中一个放到 jmeter\bin 路径下。 (也可能你下载的文件名称叫作 JMeterPluginsCMD.bat 和 JMeterPluginsCMD.sh )linux
2. cmdrunner.jar (我下载的是cmdrunner-2.0.jar),须要放到 jmeter\lib 路径下。sql
3. jmeter-plugins-cmn-jmeter-0.4.jar。而后放到 jmeter\lib 路径下。apache
4. jmeter-plugins-cmd-2.1.jar . 而后放到 jmeter\lib\ext 路径下。windows
5. jmeter-plugins-manager-0.20.jar 。而后放到 jmeter\lib\ext 路径下。浏览器
仅适合Apache jmeter 3.0以上版本哦。服务器
https://jmeter-plugins.org/ 并发
下载某个版本的jar包就能够了. 这个Zip包里面包含6个文件:1个bat文件,1个sh文件,4个jar文件。分布式
若是想看这个jar包的使用方法,就点击蓝色的连接“Command-Line Graph Plotting Tool”, 跳转界面有详细的jar包使用说明哦(https://jmeter-plugins.org/wiki/JMeterPluginsCMD/)。里面这个支持转换成png的图片类型很重要哦:
Make note that you need to install corresponding plugins set to have Extras plugins available in CMD.
Most of class names are self-explanatory:
Plugin type在转换格式的时候是这么被调用的:
Generating PNG:
JMeterPluginsCMD.bat --generate-png test.png --input-jtl results.jtl --plugin-type ResponseTimesOverTime --width 800 --height 600
Generating CSV:
JMeterPluginsCMD.bat --generate-csv test.csv --input-jtl results.jtl --plugin-type ResponseTimesOverTime
命令中传递的plugin-type必定是上述列表中的某一个,其余就可能转换不了了哦。
PluginsManagerCMD.bat 和 PluginsManagerCMD.sh 放到 bin 目录下面:
cmdrunner.jar 和 jmeter-plugins-cmn-jmeter-0.4.jar 放到 lib目录下面:
jmeter-plugins-cmd-2.1.jar 和 jmeter-plugins-manager-0.20.jar 放到 lib\ext目录下面:
java -jar D:\apache-jmeter-3.3\lib\cmdrunner-2.0.jar --tool Reporter --input-jtl %WORKSPACE%\result-output\%TestAPI%.jtl --plugin-type ResponseTimesOverTime --generate-png ResponseTimesOverTime.png
Generating PNG:
JMeterPluginsCMD.bat --generate-png test.png --input-jtl results.jtl --plugin-type ResponseTimesOverTime --width 800 --height 600
Generating CSV:
JMeterPluginsCMD.bat --generate-csv test.csv --input-jtl results.jtl --plugin-type ResponseTimesOverTime
-jar 后面跟的是这个cmdrunner.jar在的实际目录,根据状况看是否加上路径
--tool 咱们就选择Reporter就行了
--input-jtl 后面跟的是咱们须要转换的jtl文件实际目录
--plugin-type 跟的是咱们将要转换的视图,这里我用Response Times Over Time组件作例子:
也就是说这里可以将组件转换成图片的话,这个组件的名字必定是cmdrunner支持的组件类型哦:
具体支持什么组件类型,能够查看官方文档: Plugins Manager from Command-Line:
http://www.jmeter-plugins.org/wiki/PluginsManagerAutomated/
https://jmeter-plugins.org/wiki/JMeterPluginsCMD/
https://jmeter-plugins.org/wiki/GraphsGeneratorListener/
这里面讲的是如何调用 JMeterPluginsCMD.bat, 可是我实际用的时候碰到了不少问题。
这是我本地的bat文件 ,名字是“PluginsManagerCMD”。(bat文件放到bin目录,cmdrunner.jar放到 lib 目录):
@echo off
java %JVM_ARGS% -jar %~dp0\..\lib\cmdrunner-2.0.jar --tool org.jmeterplugins.repository.PluginManagerCMD %*
@echo off
java %JVM_ARGS% -jar cd ..\lib %~dp0 cmdrunner-2.0.jar --tool org.jmeterplugins.repository.PluginManagerCMD %*
转换成相对路径之后能够找到cmdrunner.jar包了,可是报错:
由于我是在Jenkins Job中添加的Window Command:
生成的png前面没有加上绝对路径,也就是说这里默认是在workspace路径下生成图片。
若是你是在JMeter的cmdrunner.jar所在路径执行命令,就不要加上jar包的绝对路径了,这个时候就会在这个jar包的同目录下生成图片。
在Editable Email Content中这么引用:
命令行模式将不须要上述那么麻烦,须要4个jar包和一个批处理文件,这里直接在jmeter运行某个jmx文件的时候,直接将jtl转成测试图表 - 注意此方法只使用jmeter3.0之后版本。
./jmeter -n -t baidu_requests_results.jmx -r -l baidu_requests_results.jtl -e -o /home/tester/apache-jmeter-3.0/resultReport
参数说明:
-n : 非GUI 模式执行JMeter
-t : 执行测试文件所在的位置及文件名
-r : 远程将全部agent启动用在分布式测试场景下,不是分布式测试只是单点就不须要-r
-l : 指定生成测试结果的保存文件, jtl 文件格式
-e : 测试结束后,生成测试报告
-o : 指定测试报告的存放位置
-o 指定的文件及文件夹,必须不存在 ,不然执行会失败,对应上面的命令就是resultReport文件夹必须不存在不然报错
如上命令执行,能够看到控制台开始打印数据了
运行完成后,能够在指定的目录下看到生成结果文件夹/home/tester/apache-jmeter-3.0/resultReport
咱们能够将该文件夹下载到本地windows机器,而后用浏览器打开index.html文件就能看到报告内容了
首页Dashboard:
解释:
file:文件名
start time:开始时间
end time:结束时间
filter for display:过滤器
APDEX(Application performance Index):应用程序性能指标,计算每笔交易APDEX的容忍和知足阈值基于可配置的值,范围在 0-1 之间,1表示达到全部用户均满意
T(Toleration threshold):容忍或满意阈值
F(Frustration threshold):失败阈值
requests summary中KO指失败率,OK指成功率
首页Dashboard:页面滚动条往下拉:
解释:
statistics:数据分析, 基本将 Summary Report 和 Aggrerate Report 的结果合并,含义分别为:
请求名称、请求数目、失败请求数目、错误率(本次测试中出现错误的请求的数量/请求的总数)、90%用户响应时间、95%用户响应时间、99%用户响应时间、吞吐量(吞吐量——默认状况下表示每秒完成的请求数Request per Second,当使用了 Transaction Controller 时,也能够表示相似 LoadRunner 的 Transaction per Second 数)、Kb/sec(每秒从服务器端接收到的数据量,至关于LoadRunner中的Throughput/Sec)、最小响应时间、最大响应时间
errors:错误状况,依据不一样的错误类型,将全部错误结果展现
Chart-Over Time-Response Times Over Time:随着时间推移响应时间变化趋势图
能够看到历时3分钟,响应时间由0.334ms慢慢下滑到0.225ms
Chart-Over Time-Bytes Throughput Over Time:随着时间推移每秒接收和请求字节数变化趋势图,蓝色为每秒发送字节数,黄色为每秒接收字节数:
Chart-Over Time-Latencies Over Time:随着时间推移平均响应延时趋势图,记录客户端发送请求完成后,服务器端返回请求以前这段时间
因为我测试用的并发请求百度,请求都被拒绝了,并无收到从服务端返回的请求,因此这里看到一条0的线
以上就是over time栏的全部图表,除了over time还有throuput和response times栏
throuput栏:
Throughput栏包括:
hits per second:每秒点击率
codes per second:每秒状态码数量
Transactions per second:每秒事务量
Response Time Vs Request: 响应时间点请求的 成功/失败 数
Latency Vs Request: 延迟时间点请求的 成功/失败 数
Response Times栏:
response times栏包括:
Response Time Percentiles: 响应时间百分比
Active Threads Over Time: 随着时间推移活跃线程数
Time Vs Threads: 测试过程当中的线程数时续图
Response Time Distribution: 响应时间分布
./jmeter -g baidu_requests_results.jtl -e -o /home/tester/apache-jmeter-3.0/resultReport
-g : 指定已存在的测试结果文件
-e :测试结果后,生成测试报告
-o : 指定测试报告的存放位置
-o 指定的文件及文件夹,必须 不存在 ,不然执行会失败
使用命令行转换的第一种和第二种方式其实最终都依赖生成的jtl文件,将jtl文件生成测试报告。双击测试报告中的index.html文件便可查看报告内容
谢谢阅读哦~~