MeterPluginCMD命令行工具生成png图片和csv统计文件

Jmeter是个纯java的开源的轻量级性能测试工具,功能强大。因为是轻量级的,与loadrunner相比,报告统计的相对较少。不过有jmeter的插件-JMeterPlugins,可以提供不少其他的报告,包括各种响应时间、吞吐率、线程等的变化曲线等

并且这个插件提供了命令行工具,可以将我们看到的各种曲线,各种报告统计成png图片,或者csv文件。这样我们就完全可以通过命令行来运行jmeter,生成jtl文件,然后在解析jtl文件,产生各种报告,或者展示到网页,或者插入到数据库,等等。

英文地址:http://jmeter-plugins.org/wiki/JMeterPluginsCMD/

安装

下载JMeterPlugins-Standard-1.2.0.zip和JMeterPlugins-Extras-1.2.0.zip,解压将里面的jar包复制到jmeter的lib/ext文件夹中即可。

用法

生成png图片:

java -jar $CMDRunnerPath/CMDRunner.jar --tool Reporter --generate-png ThreadsStateOverTime.png

--input-jtl 1.jtl --plugin-type ThreadsStateOverTime

生成csv图片:

java -jar $CMDRunnerPath/CMDRunner.jar  --tool Reporter
--generate-csv ThreadsStateOverTime.csv --input-jtl  1.jtl 
--plugin-type ThreadsStateOverTime

当然也可以一次性生成两个文件。下面是改命令的参数:

  • –generate-png 指定png图片文件
  • –generate-csv 指定csv文件名
  • –input-jtl 指定要解析的jtl文件
  • –plugin-type 指定要输出的数据类型,比如响应时间、cpu使用率、错误率等

Plugin Type Classes

插件提供解析下面这些数据的对象:

  • AggregateReport = JMeter’s native Aggregate Report, can be saved only as CSV 聚合报告
  • SynthesisReport = mix between JMeter’s native Summary Report and Aggregate Report, can be saved only as CSV
  • ThreadsStateOverTime = Active Threads Over Time 线程数随时间的变化曲线
  • BytesThroughputOverTime 流量随时间的变化曲线
  • HitsPerSecond 点击率随时间的变化曲线
  • LatenciesOverTime 延迟随时间的变化曲线
  • PerfMon = PerfMon Metrics Collector 服务器参数随时间变化曲线注意这个需要在jmx脚本中添加,服务器监控,要指定ip、端口、监控项,还需要指定perfMon的输出文件,或者在命令行指定,如sh jmeter.sh -n -t HTTP请求-baidu.jmx -l 2.jtp -JforcePerfmonFile=true,这样会输出在当前路径。
  • ResponseCodesPerSecond 响应码随时间变化曲线
  • ResponseTimesDistribution 响应时间分布
  • ResponseTimesOverTime 响应时间随时间变化曲线
  • ResponseTimesPercentiles 响应时间的百分比
  • ThroughputVsThreads 吞吐率随线程变化曲线
  • TimesVsThreads = Response Times VS Threads 响应时间随线程变化曲线
  • TransactionsPerSecond 事务随时间变化曲线
  • PageDataExtractorOverTime
  • MergeResults
 #!/bin/sh
file=$1
perfmonPath=$2 CMDRunnerPath=/Users/apple/work/jmeter-2.11/lib/ext #generate png
java -jar $CMDRunnerPath/CMDRunner.jar --tool Reporter --generate-png ${file%.*}_ThreadsStateOverTime.png --input-jtl $file --plugin-type ThreadsStateOverTime
java -jar $CMDRunnerPath/CMDRunner.jar --tool Reporter --generate-png ${file%.*}_BytesThroughputOverTime.png --input-jtl $file --plugin-type BytesThroughputOverTime
java -jar $CMDRunnerPath/CMDRunner.jar --tool Reporter --generate-png ${file%.*}_HitsPerSecond.png --input-jtl $file --plugin-type HitsPerSecond
java -jar $CMDRunnerPath/CMDRunner.jar --tool Reporter --generate-png ${file%.*}_LatenciesOverTime.png --input-jtl $file --plugin-type LatenciesOverTime
java -jar $CMDRunnerPath/CMDRunner.jar --tool Reporter --generate-png ${file%.*}_ResponseCodesPerSecond.png --input-jtl $file --plugin-type ResponseCodesPerSecond
java -jar $CMDRunnerPath/CMDRunner.jar --tool Reporter --generate-png ${file%.*}_ResponseTimesDistribution.png --input-jtl $file --plugin-type ResponseTimesDistribution
java -jar $CMDRunnerPath/CMDRunner.jar --tool Reporter --generate-png ${file%.*}_ResponseTimesOverTime.png --input-jtl $file --plugin-type ResponseTimesOverTime
java -jar $CMDRunnerPath/CMDRunner.jar --tool Reporter --generate-png ${file%.*}_ResponseTimesPercentiles.png --input-jtl $file --plugin-type ResponseTimesPercentiles
java -jar $CMDRunnerPath/CMDRunner.jar --tool Reporter --generate-png ${file%.*}_ThroughputVsThreads.png --input-jtl $file --plugin-type ThroughputVsThreads
java -jar $CMDRunnerPath/CMDRunner.jar --tool Reporter --generate-png ${file%.*}_TimesVsThreads.png --input-jtl $file --plugin-type TimesVsThreads
java -jar $CMDRunnerPath/CMDRunner.jar --tool Reporter --generate-png ${file%.*}_TransactionsPerSecond.png --input-jtl $file --plugin-type TransactionsPerSecond
java -jar $CMDRunnerPath/CMDRunner.jar --tool Reporter --generate-png ${file%.*}_PageDataExtractorOverTime.png --input-jtl $file --plugin-type PageDataExtractorOverTime
java -jar $CMDRunnerPath/CMDRunner.jar --tool Reporter --generate-png ${file%.*}_PerfMon.png --input-jtl $2 --plugin-type PerfMon #generate csv
java -jar $CMDRunnerPath/CMDRunner.jar --tool Reporter --generate-csv ${file%.*}_AggregateReport.csv --input-jtl $file --plugin-type AggregateReport
java -jar $CMDRunnerPath/CMDRunner.jar --tool Reporter --generate-csv ${file%.*}_ThreadsStateOverTime.csv --input-jtl $file --plugin-type ThreadsStateOverTime
java -jar $CMDRunnerPath/CMDRunner.jar --tool Reporter --generate-csv ${file%.*}_BytesThroughputOverTime.csv --input-jtl $file --plugin-type BytesThroughputOverTime
java -jar $CMDRunnerPath/CMDRunner.jar --tool Reporter --generate-csv ${file%.*}_HitsPerSecond.csv --input-jtl $file --plugin-type HitsPerSecond
java -jar $CMDRunnerPath/CMDRunner.jar --tool Reporter --generate-csv ${file%.*}_LatenciesOverTime.csv --input-jtl $file --plugin-type LatenciesOverTime
java -jar $CMDRunnerPath/CMDRunner.jar --tool Reporter --generate-csv ${file%.*}_ResponseCodesPerSecond.csv --input-jtl $file --plugin-type ResponseCodesPerSecond
java -jar $CMDRunnerPath/CMDRunner.jar --tool Reporter --generate-csv ${file%.*}_ResponseTimesDistribution.csv --input-jtl $file --plugin-type ResponseTimesDistribution
java -jar $CMDRunnerPath/CMDRunner.jar --tool Reporter --generate-csv ${file%.*}_ResponseTimesOverTime.csv --input-jtl $file --plugin-type ResponseTimesOverTime
java -jar $CMDRunnerPath/CMDRunner.jar --tool Reporter --generate-csv ${file%.*}_ResponseTimesPercentiles.csv --input-jtl $file --plugin-type ResponseTimesPercentiles
java -jar $CMDRunnerPath/CMDRunner.jar --tool Reporter --generate-csv ${file%.*}_ThroughputVsThreads.csv --input-jtl $file --plugin-type ThroughputVsThreads
java -jar $CMDRunnerPath/CMDRunner.jar --tool Reporter --generate-csv ${file%.*}_TimesVsThreads.csv --input-jtl $file --plugin-type TimesVsThreads
java -jar $CMDRunnerPath/CMDRunner.jar --tool Reporter --generate-csv ${file%.*}_TransactionsPerSecond.csv --input-jtl $file --plugin-type TransactionsPerSecond
java -jar $CMDRunnerPath/CMDRunner.jar --tool Reporter --generate-csv ${file%.*}_PageDataExtractorOverTime.csv --input-jtl $file --plugin-type PageDataExtractorOverTime

JMeterPluginCMD命令行工具使用详解的更多相关文章

  1. 第九章 kubectl命令行工具使用详解

    1.管理k8s核心资源的三种基础方法 陈述式管理方法:主要依赖命令行CLI工具进行管理 声明式管理方法:主要依赖统一资源配置清单(manifest)进行管理 GUI式管理方法:主要依赖图形化操作界面( ...

  2. Wireshark命令行工具tshark详解(含例子)-01

    Wireshark命令行工具tshark使用小记 1.目的 写这篇博客的目的主要是为了方便查阅,使用wireshark可以分析数据包,可以通过编辑过滤表达式来达到对数据的分析:但我的需求是,怎么样把D ...

  3. Windows下SVN命令行工具使用详解

    根据我的记忆,似乎Windows 7下自自带一个svn命令行工具.如果你的机器没有,不必担心.你可以从http://subversion.tigris.org获 取subversion for win ...

  4. Oracle--DBV命令行工具用法详解及坏块修复

    一,介绍 DBV(DBVERIFY)是Oracle提供的一个命令行工具,它可以对数据文件物理和逻辑两种一致性检查.但是这个工具不会检查索引记录和数据记录的匹配关系,这种检查必须使用analyze va ...

  5. Redis进阶实践之十四 Redis-cli命令行工具使用详解第一部分

    一.介绍       redis学了有一段时间了,以前都是看视频,看教程,很少看官方的东西.现在redis的东西要看的都差不多看完了.网上的东西也不多了.剩下来就看看官网的东西吧,一遍翻译,一遍测试. ...

  6. Redis进阶实践之十五 Redis-cli命令行工具使用详解第二部分(结束)

    一.介绍           今天继续redis-cli使用的介绍,上一篇文章写了一部分,写到第9个小节,今天就来完成第二部分.话不多说,开始我们今天的讲解.如果要想看第一篇文章,地址如下:http: ...

  7. Redis进阶实践之十四 Redis-cli命令行工具使用详解

    转载来源:http://www.cnblogs.com/PatrickLiu/p/8508975.html 一.介绍 redis学了有一段时间了,以前都是看视频,看教程,很少看官方的东西.现在redi ...

  8. Android中使用am命令实现在命令行启动程序详解

    在Android中,除了从界面上启动程序之外,还可以从命令行启动程序,使用的是命令行工具am. 复制代码代码如下: usage: am [subcommand] [options] start an ...

  9. Jmeter(三十八) - 从入门到精通进阶篇 - 命令行运行JMeter详解(详解教程)

    1.简介 前边一篇文章介绍了如何生成测试报告,细心地小伙伴或者同学们可以看到宏哥启动Jmeter生成测试报告不是在gui页面操作的,而是在gui页面设置好保存以后,用命令行来生成测试报告的.这一篇宏哥 ...

随机推荐

  1. c# 取得ip地址和网关

    /// <summary> /// 得到本机IP /// </summary> private string GetLocalIP() { //本机IP地址 string st ...

  2. 看部电影,透透彻彻理解IoC(你没有理由再迷惑!)

    引述:IoC(控制反转:Inverse of Control)是Spring容器的内核,AOP.声明式事务等功能在此基础上开花结果.但是IoC这个重要的概念却比较晦涩隐讳,不容易让人望文生义,这不能不 ...

  3. IIS支持PHP

    1. 解压php-5.2.6.zip到D:\php5,找到php.ini-dist改名为php.ini并将它放到C:\WINDOWS目录下. 2. 将D:\ php5目录下的libmcrypt.dll ...

  4. Context详解

    前言 Context在android中的作用不言而喻,当我们访问当前应用的资源,启动一个新的activity的时候都需要提供Context,而这个Context到底是什么呢,这个问题好像很好回答又好像 ...

  5. 从零开始学ios开发(十三):Table Views(下)Grouped and Indexed Sections

    在前面2篇关于Table View的介绍中,我们使用的Style都是Plain,没有分组,没有index,这次学习的Table View和iphone中的通讯录很像,有一个个以字符为分割的组,最右边有 ...

  6. Animations--动画基础

    基础动画 //1.在0.5s内,将_field.alpha 的数值变为1.0 [UIView animateWithDuration:0.5 animations:^{ _field.alpha = ...

  7. SNV ConnerStore使用说明

    1.  上传自己新建的文件新建的类文件 后面的 会有A标示要先 Add To Working copy 再点击提交 2. 上传第三方库时 默认SVN是忽略.a文件的要找到.a文件把他设置成不是忽略的通 ...

  8. 微信小程序、应用号、订阅号、服务号、企业号小总结

    微信小程序是现在微信推出的一个新的项目,但是很多人都不是很清楚微信小程序是怎么一回事,不明白到底怎样分别微信小程序和别的公众号.订阅号等的区别,那么让小编来给你介绍一下. 微信小程序目前是内侧阶段,是 ...

  9. android开发之socket快传文件以及消息返回

    应用场景: 两台android机器:一台自建wifi热点,另一台搜索到,连接该wifi热点.之后再通过socket传递消息,文件等,当服务器端接收到消息之后会返回对应的应答消息: 注意点:接收到消息之 ...

  10. Document Set 【一】

    概括介绍: Document Set 是SharePoint2010之后出现的一个新的Feature.这个Feature的主要目的是两个: 1,是帮助 User 以一个文件的管理方式管理一个文件集合. ...