如何分析JMeter结果?

时间:2013-01-10 07:11:11

标签: testing jmeter load-testing

我是JMeter工具的新手。任何人都可以帮我分析JMeter报告的最佳方法吗?

7 个答案:

答案 0 :(得分:39)

只需列出您可能会觉得有用的相关链接:

原生图表:

针对自动化图表的免费开源解决方案:

自定义开发的食谱:

第三方解决方案:

答案 1 :(得分:5)

在进行性能测试时,必须进行3次测试,始终应该有基线,峰值测试和压力测试。由于小法则,这些测试相互关联。 The long-term average number of customers in a stable system L is equal to the long-term average effective arrival rate, λ, multiplied by the time a customer spends in the system, W; or expressed algebraically: L = λW.

enter image description here

Jmeter已经提供了检查此值的方法,the standar plugin提供了响应时间,命中率和吞吐量的图表。无法直接告诉系统中有多少用户处于活动状态,并不是与活动用户相同的并发用户。插件足以生成报告,但它们不允许控制大部分演示,我将使用python生成的一些图(它们添加标签,并且具有2 y轴)。

基线测试: 这种情况是法律的一个特例,在这种情况下,活跃用户是不变的,它是一个,然后:

  • L =λW
  • 1 =λW
  • 1 / W =λ

enter image description here

如果应用程序运行相同的代码,响应时间将随着时间的推移而稳定,那么到达率也会随着时间的推移而保持不变。

有一项服务除了等待一段时间之外别无其他:

enter image description here

2秒服务: 到达率为1 / 2TPS。

enter image description here

3秒服务: 到达率为1 / 3TPS。

enter image description here

高峰测试: 这不是特殊情况,在这种情况下加载incrase直到它超过系统输出,因为负载大于吞吐量,响应时间确实增加。在测试期间,线程数应该足够快地增加以从长响应时间恢复。

enter image description here

此次而不是运行峰值,我将强调系统的负载超过整个测试期间能够处理的负载。要控制服务吞吐量:

enter image description here

活动交易是那些离开注入但没有得到响应的交易,那些是在系统中某个地方排队的交易。

  • λ(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秒。

enter image description here

4TPS到达率,1 TPS吞吐量:

  • 响应时间函数为3 / 4t
  • 喷油器在300秒内对系统施加压力。
  • 测试持续1200秒。

enter image description here

6TPS到达率,5 TPS吞吐量:

  • 响应时间函数为1 / 6t
  • 喷油器在300秒内对系统施加压力。
  • 测试持续360秒。

enter image description here

答案 2 :(得分:2)

从版本3.0开始,JMeter包含一个动态HTML报告,可以在加载测试结束时或从结果文件生成。

请参阅generating-dashboard

答案 3 :(得分:2)

简单来说,如果你想分析你的JMeter报告......

  1. 从服务器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
    
  2. 查看总体响应时间,不应超过预期的响应时间标准。 见下图。我的期望是响应时间不应超过525微秒,但有些请求正在越过它。找到这些需要时间的请求。

    整体响应时间:

    overall response time

  3. 请参阅每秒事务数,每秒进行的事务数量,测试时间范围是否有任何下降?

  4. 检查摘要报告,平均时间和最长时间,以查看哪些请求占用的时间最多。 目前,JMeter中有许多听众可以作为插件使用或内置,但这些是要查看的主要内容,以便能够正确猜出正在发生的事情。你可以使用其他报告。

  5. 关注我的博客,了解更多详情https://softwaretesterfriend.blogspot.in/

答案 4 :(得分:1)

为了分析您的JMeter结果,您可以使用

  1. Listeners in JMeter
  2. Blazemeter Sense
  3. Reports Dashboard

答案 5 :(得分:0)

除了所有其他答案之外:还有一个很棒的BlazeMeter网站,您可以上传测试结果文件(.jtl),它会为它生成各种(交互式)报告。它甚至会为您分析它,并指出何时出现第一个错误,饱和点是什么,等等。https://sense.blazemeter.com/gui/

如果您有石墨/ grafana基础设施,我可以建议将Backend Listener添加到项目中。它会将实时指标发送到石墨服务器,您可以用石墨(或grafana)监控测试。

答案 6 :(得分:0)

如果您是JMeter的新手,那么了解JMeter侦听器和其他组件将为您提供帮助。检查教程 -https://www.youtube.com/watch?v=FfDVIklNjgw