zoukankan      html  css  js  c++  java
  • jmeter梯度加压请求数

    在压力测试时,可能需要使用jmeter的梯度加压。而在使用梯度加压时,大部分tester会对这一点疑惑:设置的总线程是100,但聚合报告中线程数远超100个 ,为什么梯度加压会有这样的现象?用事实说话,本文用示例去解释这一点。

    环境:

    先设置梯度加压的场景,访问某网站,具体如下:

    从这个梯度加压设置的参数,我们可以看出设置的总线程数为50个,每2s增加5个,在1s内增加完成;然后线程保持30s;再然后,每2s停掉5个线程。

    要正确理解最终请求数,需要明白每一秒钟线程释放了多少请求

     

    分析:

    在梯度加压有三个阶段:梯度加压、持续负载、线程释放。

    梯度加压:

    如果该请求的平均响应时间是100ms,那么1s钟该请求可以迭代10次;

    那么在1s内如果启动了5个线程,这1s内发出的请求数就是5*10=50次

    接着运行2s后才开始加载下一波线程,在这2s内,它发出的请求数是2*5*10=100次

    在2s之后,线程组又在1s内释放5个请求,并运行2s,在这2s内,它发出的请求数是2*10*10=200次(此时是10个线程在运行)

    以此类推,直到50个线程加载完之前,线程释放的请求数是这样的:(2*5*10)+(2*10*10)+(2*15*10)+(2*20*10)+(2*25*10)+....+(2*45*10)=4500次

    持续负载:

    (注意:为什么最后不是2*50*10呢?因为从50个线程加载完之后,进行的就是30s的持续负载)

    这30s内,总的请求数是30*50*10=15000次

    线程释放:

    (30s负载结束后,线程开始梯度释放)

    此时即使线程在释放,剩余的线程依然在发起请求,请求数:(2*45*10)+(2*40*10)+(2*35*10)+(2*30*10)+(2*25*10)+....+(2*5*10)=4500次

     

    所以,总的请求数=4500+15000+4500=24000次

    (实际测试中情况并非如此,因为随着负载增加,响应时间增大,每秒迭代次数减小,最终请求数也会减小。本文只是介绍思路。)

    本文借鉴别人的文章。

  • 相关阅读:
    6.1成果(冲刺2.10)
    5.31成果(冲刺2.9)
    5.30成果(冲刺2.8)
    5.29成果(冲刺2.7)
    5.28成果(冲刺2.6)
    5.27成果(冲刺2.5)
    5.26成果(冲刺2.4)
    5.25成果(冲刺2.3)
    Nginx location匹配后 跳转问题
    记一次centos上发布core,访问502的bug
  • 原文地址:https://www.cnblogs.com/jinziguang/p/11647835.html
Copyright © 2011-2022 走看看