在JMeter中比较测试结果
用新的JMeter插件比较测试结果,帮助你 "衡量 "第二个版本的应用程序带来的改进或退化。
·
Aug. 06, 21 -性能区 -教程
喜欢 (1)
评论
保存
Tweet
2.87K浏览次数
加入DZone社区,获得完整的会员体验。
简介
作为性能测试人员,我们经常被要求比较一个应用程序的两个版本之间的性能差异。无论第二个版本有什么变化(例如,使用新的库,改变技术栈等),最终,企业想知道第二个版本是否更好(或最差),以及差多少。
本文讨论了两个解决方案,包括一个基于新的JMeter插件的解决方案,以帮助你 "衡量 "应用程序的第二个版本所带来的改进或退化情况。
响应时间百分比
通常,为了比较结果,性能测试人员转向汇总统计,寻找结果的平均值(或中位数)之间的差异。虽然这是一个直接的方法,但它不能帮助你看到测试运行之间差异的全貌。例如,均值之间100毫秒的差异对于几百毫秒的平均数来说可能是一个巨大的差异,而对于几秒钟的平均数来说则可能是无足轻重。对于分散度小的测试来说,10%可能是一个巨大的差异,但是对于分散度大的测试来说,可能就不重要了。
要查看它们的整体性差异,最好使用响应时间百分比插件,该插件生成的图表将帮助你比较两个测试运行的量值,例如。为了在一个图形中比较两个分布,你可以使用合并结果插件将两个运行的结果合并到一个文件中,然后将合并后的文件导入响应时间百分比插件。
下面是两个测试运行之间的响应时间百分比图的例子,第二个版本B比第一个版本A快。
对于这些图表,你应该对极端的量化指标(<=0.1或>=0.9)加以注意,因为这些量化指标可能非常不稳定。最好是描述分布的 "主要 "部分的差异,即[0.1-0.9]的量化区间。另外,我建议用右尾部异常值检测器插件解析初始结果的异常值,然后对修剪后的结果进行分析。
你可能需要一些时间来适应响应时间百分比图,并学习如何快速从中提取信息。它们也很难指定可接受/不可接受的阈值。效果大小解决了这些问题。
使用Cohen's_d_的结果比较器插件
效应大小只是由分布的分散度归一化的绝对差异。他们使用对各种分布具有相同意义的抽象单位来报告差异。
最流行的表达效果大小的方法之一是Cohen's_d_。它被定义为两个平均值之间的差异除以数据的标准差。下表描述了最初由Cohen提出并由Sawilowsky的经验法则扩展的_d_的大小。
新的JMeter结果比较器插件将计算两个测试结果文件中的采样器的Cohen's_d_,并将其报告在一个表格中,同时还有一列描述基于上述表格的差异大小以及运动方向(增加或减少)。
下面是该插件生成的表格的一个例子。
蓝色突出显示的是与文章开头给出的响应时间百分比图相匹配的线条:你现在可以看到B版的响应时间有一个 "非常大的下降",平均数从593ms下降到384ms。这个结论从百分位数的数据中是看不出来的!
现在,你可能会在第二个版本中出现收益和损失的混合。那么在这种情况下,你如何决定哪个版本是最好的?为了帮助你做出判断,该插件将计算所有平均数(平均数的平均数)的科恩氏_d_,并在 "总体平均数 "一行给你一个总体分数。在上面的例子中,你可以看到,尽管 "AslowerThanB "采样器的响应时间有 "非常大的下降",但B版在全局上只提供了 "小幅下降 "的优势。这是因为它受到了 "AfasterThanB "采样器响应时间的 "巨大增加 "的影响。
该插件提供了一个选项,如果你想把结果导入你的测试报告,可以把表格导出到csv文件中。
但正如前面已经说过的,为了避免在计算Cohen's_d_时出现偏差,我们建议先去除初始测试结果中的异常值,然后使用清理后的结果进行性能分析。
主题。
性能、性能分析、 性能比较、 性能测试、 jmeter、 jmeter插件
DZone贡献者所表达的观点属于他们自己。
DZone上的热门话题
评论