我是 JMeter 工具的新手。任何人都可以帮助我分析 JMeter 报告的最佳方法吗?
7 回答
您可能会发现有用的相关链接的简单列表:
原生图:
自动化图表的免费开源解决方案:
- JMeter Plugins - 查看这个包中的自定义图表;其中一些提供了比 jmeter 的原始报告更好的开箱即用结果;
- JMeter 结果分析插件
- 用于日志分析和可视化的 JWeter 工具
定制开发的食谱:
第三方解决方案:
UPD。
请查找、使用并随意扩展这个Awesome JMeter集合,作为github repo继续。
进行性能测试时必须进行 3 项测试,应始终有基线、峰值测试和压力测试。由于小定律,这些测试相互关联。稳定系统中的长期平均客户数 L 等于长期平均有效到达率 λ 乘以客户在系统中花费的时间 W;或用代数表示:L = λW。.
Jmeter 已经提供了检查这些值的方法,标准插件提供了响应时间、命中和吞吐量的图。无法直接判断系统上有多少用户处于活动状态,并发用户与活动用户不同。这些插件足以生成报告,但它们不允许控制大部分演示文稿,我将使用一些使用 python 生成的图(它们添加标签,并有 2 个 y 轴)。
基线测试: 本例为特例,本例中活跃用户为常数且为1,则:
- L = λW
- 1 = λW
- 1/W = λ
如果应用程序运行相同的代码,响应时间会随着时间的推移而稳定,那么到达率也会随着时间的推移而保持不变。
有一项服务除了等待一段时间之外什么都不做:
2秒服务:到达率为1/2TPS。
3秒服务:到达率为1/3TPS。
峰值测试: 这是另一种特殊情况,在这种情况下,负载会增加,直到超过系统吞吐量,因为负载大于吞吐量,响应时间确实会增加。在测试期间,线程数应该足够快地增加以从较长的响应时间中恢复。
这次不是运行峰值,而是在整个测试期间给系统施加比它能够处理的更多的负载。控制服务吞吐量:
活动事务是那些已经离开注入器但没有得到响应的事务,这些事务是在系统的某个地方排队的事务。
- λ(t) = c,T(t) = k;随着时间的推移,负载和吞吐量都是恒定的。
- L = Σλ - ΣT = ct - kt;活动事务是累积负载和累积吞吐量之间的差异。
- L = (c - k)t
- λW= (c - k)t
- cW(t) = (c - k)t
- W(t) = t(c - k)/c
因为响应时间确实会随着活动用户的增长而增长,所以我们需要注入器在需要新连接时尽快创建新线程,大多数池线程都会很忙。
2TPS到达率,1 TPS吞吐量:
- 响应时间函数为1/2t
- 注射器在 300 秒内对系统施加压力。
- 测试持续 600 秒。
4TPS到达率,1 TPS吞吐量:
- 响应时间函数为3/4t
- 注射器在 300 秒内对系统施加压力。
- 测试持续 1200 秒。
6TPS到达率,5 TPS吞吐量:
- 响应时间函数为1/6t
- 注射器在 300 秒内对系统施加压力。
- 测试持续 360 秒。
简而言之,如果您想分析您的 JMeter 报告...
从服务器 CPU 和 RAM 利用率开始。在服务器上运行性能测试时,查看当前测试使用了多少 CPU 和 RAM。
在托管站点服务器上发出以下命令;它将创建一个 CPU 使用率的日志文件。while true; do ( echo "%CPU %MEM ARGS $(date)" && ps -e -o pcpu,pmem,args --sort=pcpu | cut -d" " -f1-5 | tail ) >> ps.log sleep 1 done
查看总体响应时间,它不应超过您的预期响应时间标准。见下图。我的期望是响应时间不应超过 525 微秒,但有些请求超过了它。找到这些需要时间的请求。
总体响应时间:
请参阅每秒事务,每秒进行多少事务,测试时间框架是否有任何下降?
检查摘要报告、平均时间和最长时间以查看哪些请求花费的时间最多。目前,JMeter 中的许多侦听器都可以作为附加组件或内置使用,但这些是要查看的主要内容,以便能够正确猜测正在发生的事情。您可以使用其他类似的报告。
关注我的博客了解更多详情https://softwaretesterfriend.blogspot.in/
为了分析您的 JMeter 结果,您可以使用
Starting with version 3.0, JMeter includes a dynamic HTML report that can be generated either at the end of a load test or from a result file.
除了所有其他答案:还有一个不错的 BlazeMeter 站点,您可以在其中上传您的测试结果文件 (.jtl),它会为其生成各种(交互式)报告。它甚至会为您分析并指出第一个错误发生的时间、饱和点是什么等。https://sense.blazemeter.com/gui/
如果您有石墨/grafana 基础设施,我可以建议将后端侦听器添加到项目中。它将实时指标发送到石墨服务器,您可以在石墨(或 grafana)中监控测试。
如果您是 JMeter 新手,了解 JMeter 侦听器和其他组件将对您有所帮助。检查教程 - https://www.youtube.com/watch?v=FfDVIklNjgw