题记:在用 loadrunner 的时候可以生成一个 HTML 的报告,并且里面包含各种图表,各种详细的数据。而在使用 Jmeter 测试完后并不能直接生成 Html 的报告(无论是用 GUI 还是命令行启动)。

经过查找资料发现 Jmeter 的 extras 目录下有生成 HTML 的 xsl 样式表,其实 Jenkins+ant+Jmeter 生成的 HTML 报告也是调用了这里的样式表生成的,于是

通过 xsltproc report.jtl > test.html,或者 ant 也可以。这个命令把Jmeter 的结果文件转换为 HTML 的报告。结果如下:

这里虽然能生成 HTML 报告了,但是这个报告太弱了,基本不能用,包含的参数太少。所以需要对这个报告进行扩展。因为 Jmeter 本身的聚合报告的数据还是比较全的,

因此打算按照那个报告的值进行扩展。

xsltproc,xlst介绍

XSL 指扩展样式表语言(EXtensible Stylesheet Language),把 XML 转换为HTML 用的就是 xls 编写的样式表,所以如果要扩展这个报告,首先要对 xls

xsltproc 是一个快速 XSLT 引擎,它可以将通过 XSL 层叠样式表把 XML 转换为相应格式的文件,比如:HTML,XHTML,PDF

比如将 XML 转换为 HTML,使用格式如下:

xsltproc xsl-html.xsl hoto.xml -o html.html (这里还可以直接把样式表文件写入 jtl 文件的 href 属性中,直观的告诉这个 XML 用哪个样式表)

xls 中查找 XML 用的 xpath,因此还需要对 xpath 熟悉,xsltproc 这个引擎用的是 xpath1.0 版本,因此在样式表中使用 xpath 是不能使用 xpath2.0 的函数

和一些属性。

个人对 xpath 还算熟悉,但是对 xls 一点也不熟悉,没办法为了能够扩展报告,直接学习 xls 和 xpath。(关于 xls 会再写一遍博客介绍,顺便把使用过程中

的问题和经验汇总)

如果直接使用 ant 和 Jmeter 集成后也是可以直接生成的,但是 ant 转换 HTML 的引擎也是只支持 xpath1.0,后来经过了解大部分的引擎都不支持xpath2.0,所以

期中不能使用 xpath2.0 的函数。

90%Line 时间

为了能够显示 90%Line 的时间,首先要对这个指标熟悉,这个指标值得是一组数据,在 90% 的位置的数据的时间,所以我们扩展的时候只要知道了 90%

位置的索引,那么就能取得这个值了。

以下是部分关键代码

这里主要是获得时间元素的集合,以及 90%line 的位置,有了这两个参数后就可以进行后续的扩展了,扩展后的效果图如下:

因为 90%Line 和 95%Line,99%Line 计算原理都是一致的,因此只要计算出一个值其他的值也很好计算

QPS 扩展

Jmeter 的具合报告有 Throughput 这个值,这个在 loadrunner 中是表示为吞吐量的,这里可以表示 QPS 或者 TPS(在使用了事务的情况下),个人把这个称为 QPS,因为更直观。

和 %90Line 同样的道理,首先必须知道这个值是怎么计算出来,经过查找资料和官网的比较,发现这个值是通过如下的公式计算出来的:

官网的截图:

Throughput = (number of requests) / (total time)

total time = 测试结束时间 - 测试开始时间

测试结束时间 = MAX(请求开始时间 + Elapsed Time)

测试开始时间 = MIN(请求开始时间)

知道了公式,那么计算就容易了,以下是关键代码:

扩展后的结果如下:

吞吐量扩展

在 loadrunner 中吞吐量就是 Throughput,在 Jmeter 的聚合报告中最后一列的值就是 loadrunner 中的 Throughput,为了便于区分,我把这里的值称为Throughput,

也就是吞吐量。

经过查找资料发现吞吐量的计算和 QPS 的计算公式是一样的,因为也就是如下的公式:

Throughput = (请求的总字节数) / (total time)

这里的 total time 计算和 QPS 是一样的,而总字节数直接把所有请求的加起来即可,关键代码如下:

因为这里显示的字节,最后的结果我打算以 KB 的单位显示,因此这里需要除以1024,扩展后的结果如下

TPS扩展

TPS 在 Jmeter 中虽然某些情况和 QPS 是一致的,但是还是有不一致的地方,因此这里也需要扩展,这样的结果看着更清晰明了。

首先和其他的参数扩展一样,需要知道计算公式,这里的计算公式和 QPS 也是一样的,只是数据的集合不一样,以下是扩展后的效果。

在扩展的过程中进一步发现 Jmeter 的聚合结果中最后的”总体“一行在某些情况下计算的数值是不准确的。如果脚本中不包含事务,那么这里的结果是准确的,如果都包含事务并且把

Generate parent sample 选中后这里的结果也是准确的,在脚本中有事务并且没有选中 Generate parent sample,或者有些有事务有些没有时,这时的结果就不准确了,因为查看计算

方式发现它把所有的请求都算进去了。

比如,一个 jtl 文件中即包含 HTTP 请求也包含事务,因为事务只是对之前请求的一个统计,本身是不发送请求的,所以计算总的吞吐量、QPS,TPS 时是不能这么算的。

所以在扩展的过程中分成了两个样式表,一个样式表处理包含事务,或者没有事务的情况,这时的结果以 QPS 衡量;一个样式表处理全都是事务的情况,这时候的结果以 TPS 衡量,这样

就准确了。

测试

扩展了好几个指标,这些指标的正确性如何呢?需要在多种情况下进行测试,经过测试后各个指标都是正确的。但是还没有在大的数据量级别下测试,如果测试后发现哪里会有问题,会及时

更改。

切记:由于样式表中是按照 lb 进行请求区分的,因此这里的 lable 不能重复,本身也不应该重复,包括 Jmeter 的聚合报告都是以 lable 进行区分的

PS:在扩展过程中的难点一是公式如何计算的,二是xls这个 指扩展样式表语言不是很熟悉,本身也有很多限制,会在下个博客中说明。但是用过后感觉还是很不错的既熟悉了 xpath 还熟悉了 xls。

三是需要对 Jmeter 的测试结果文件每个字段戴表什么意思熟悉,这样才能定制更多的指标,这个也会在单独的博客中说明

jmeter聚个报告怎么看qps_Jmeter 使用笔记之 html 报告扩展(一)相关推荐

  1. jmeter聚个报告怎么看qps_Jmeter查看QPS和响应时间随着时间的变化曲线

    jmeter官方版自带的图表不多,只有聚合报告.察看结果树等有限几个.但是Jmeter支持插件,我们可以在jmeter的官网上找到这些图表的插件. 现在我需要以下图标插件 --- Response T ...

  2. jmeter聚个报告怎么看qps_jmeter测试接口qps

    1. 如何使用jmeter进行接口测试 服务端系分提供的某接口样例为: 评估后可采用使用jmeter进行压力测试的步骤为: 启动jmeter:在bin下点击jmeter.bat,运行jmeter 2. ...

  3. 全球及中国苯基异丙基聚二甲基硅氧烷市场需求调查与竞争格局策略报告2022版

    全球及中国苯基异丙基聚二甲基硅氧烷市场需求调查与竞争格局策略报告2022版 --------------------------------------- <修订日期>:2021年12月 ...

  4. 报告怎么看_体检报告怎么看? 超实用的阅读指南来了!

     体检报告怎么看?   超实用的阅读指南来了! 要点概括 除了禁食禁水可以吞口水吗?这样的问题,还有胆固醇.甘油三酯.胆红素-这些指标都是什么意思?出现升高或降低提示了怎样的身体变化? 九图带你读懂! ...

  5. 从Gartner报告,看中国数据库崛起

    简介: 阿里云,在Gartner公布2020年度全球数据库魔力象限评估结果,作为中国科技公司代表,首次挺进全球数据库第一阵营--领导者(LEADERS)象限,这也是中国数据库40年来首次进入全球顶级数 ...

  6. 我看了《2018 微信数据报告》,你呢?

    阅读文本大概需要 4 分钟. 这几天相信大家的朋友圈都被<2018 微信数据报告>给刷了屏,都在转发「我已与微信同行 xxx 天,你呢?」,很多人都是 2000 天以上,合算下大部分人使用 ...

  7. 2020年软件质量调查报告六大看点

    <2020年软件质量调查报告>有六大看点,下面一一给大家道来. 看点一:全面了解目前国内业界质量状态 例如,全面展示了软件研发的质量状况,最严重的质量问题是"需求变更频繁&quo ...

  8. 基于JAVA房产中介预约看房系统设计与实现 开题报告

      本科生毕业论文 基于Java房产中介预约看房系统springboot框架 开题报告 学    院: 专    业: 计算机科学与技术 年    级: 学生姓名: 指导教师:   XXXX大学本科生 ...

  9. 肺功能曲线图怎么看_肺功能检查报告怎么看

    肺功能检查报告怎么看更新时间:2017-06-30 核心提示: 肺部是人体外呼吸与内呼吸的总枢纽,若异常时对人体健康影响很大.因此,欲知肺部健康状态,肺功能检查也是其检测指标之一.肺功能检查包括通气功 ...

最新文章

  1. 一文看尽 CVPR2022 最新 22 篇论文(附打包下载)
  2. C# DllImport的用法(转)
  3. 单例模式不能被继承_Spring的单例实现原理
  4. Python基础——yield的使用与解释
  5. 2018-04-22jenkins+maven+svn环境搭建学习心得
  6. java的lr词法编译器,自制编译器 青木峰郎 笔记 Ch3 词法分析的概要
  7. dialog问题记录
  8. 使用MS Test进行单元测试
  9. Asp.net Controller中View 和Action方法认证Authorize 及对AuthorizeAttribute扩展
  10. android红米升级失败怎么办,红米刷机失败怎么办?解决红米刷机失败教程
  11. vb wps 链接单元格_wps如何超链接wps表格.doc
  12. 俞敏洪+马云+牛根生+史玉柱经典语录
  13. php微信公众点歌台,PHP实现微信公众平台音乐点播功能
  14. Camera4 MTK camera驱动结构介绍
  15. yum命令执行卡住不能退出
  16. Linux查看so文件信息
  17. IE中直接访问html,????? help!在IE中用Applet如何访问所在的HTML吗?
  18. 全国计算机技术与软件专业技术考试----(中级资格/工程师)各资格证详细介绍
  19. 在 JDK 7 版本以上, Comparator 要满足自反性,传递性,对称性
  20. uni-app日期选择组件-基于mx-datepicker修改

热门文章

  1. LogoSharp:Logo语言的C#实现
  2. c#中关于协变性和逆变性(又叫抗变)帮助理解
  3. AutoMapper在asp.netcore中的使用
  4. MassTransitamp;amp;Sagas分布式服务开发ppt分享
  5. 快速搭建本地 .NET Core 运行时调试环境
  6. Xamarin支持微软HoloLens混合现实开发
  7. 如果你也会C#,那不妨了解下F#(4):了解函数及常用函数
  8. 在Windows Server 2012 R2 Standard 部署 ASP.NET Core程序
  9. Win11 恢复 Win10经典右键菜单 亲测有效
  10. .net 服务器端自定义分页控件 简单示例