【问题标题】:Throughput calculation in JmeterJmeter中的吞吐量计算
【发布时间】:2016-09-16 09:46:51
【问题描述】:

Attached 是用于我的测试的Summary Report

请帮助我了解 JMeter 是如何计算吞吐量值的: 比如第一行53.1/min的吞吐量,这个数字是JMeter用什么公式计算出来的。

另外,想知道后续测试中的吞吐量值是如何划分为分钟或秒的。例如第 2 行的吞吐量为1.6/sec,那么 JMeter 如何根据时间单位计算此吞吐量值?

尝试了网上的很多网站,得到的普遍回答是吞吐量是测试期间每单位时间(秒、分钟、小时)发送到您的服务器的请求数。但这不适用于我在图表中直接解释的结果。

【问题讨论】:

    标签: jmeter


    【解决方案1】:

    Documentation 将吞吐量定义为

    请求/时间单位。时间从第一个样本开始到最后一个样本结束计算。这包括样本之间的任何间隔,因为它应该代表服务器上的负载。 公式为:吞吐量 =(请求数)/(总时间)

    所以在您的情况下,您有 1 个请求,耗时 1129 毫秒,所以

    Throughput = 1 / 1129ms = 0.00088573959/ms 
               = 0.00088573959 * 1000/sec = 0.88573959/sec 
               = 0.88573959 * 60/min = 53.1443754/min, rounded to 53.1/min
    

    对于 1 个请求的总时间(或经过的时间)与此单个操作的时间相同。对于多次执行的请求,它将等于

    Throughput = (number of requests) / (average * number of requests) = 1 / average
    

    例如,如果您截取屏幕截图中的最后一行(有 21 个请求),它的平均值为 695,因此吞吐量为:

     Throughput = 1 / 695ms = 0.0014388489/ms = 1.4388489/sec, rounded to 1.4/sec
    

    就单位(秒/分钟/小时)而言,摘要报告执行以下操作:

    • 默认以秒为单位显示吞吐量
    • 但如果吞吐量以秒为单位
    • 如果仍然是
    • 之后将值四舍五入到小数点后 1 位。

    这就是为什么有些值以秒为单位,有些以分钟为单位,而有些则以小时为单位。有些甚至可能有 0.0 的值,这基本上意味着吞吐量是

    【讨论】:

    • 公式1 / average 适用于一个线程。将如何更改多个线程?
    • @olyv 平均值不是每个线程,而是所有线程。所以一个线程或多个线程,公式是一样的
    【解决方案2】:

    我已经搞砸了一段时间,这是我必须做的,以使我的数字与 jmeter 所说的相符

    遍历我在 csv 文件中的行,为您拥有的每个标签收集最低的开始时间,同时获取最高的开始时间(时间戳 + 已用时间) 以秒为单位计算两者之间的差异 然后做样本数/差异

    所以在 excel 中,最简单的方法是获取 csv 文件并添加一列时间戳 + elapsed 首先按时间戳对块进行排序 - 从最低到最高然后细化每个标签的第一个实例并抓住那个时间 然后按新列从高到低排序,然后再次为每个标签抓取第一次

    对于每个标签,然后将这两个时间都收集到一个新工作表中 A 将是标签 B 将是开始时间 C 将是结束时间+经过的时间 然后 D 将是 (C-B)1000(以秒为单位的差异) E 将是每个标签的样本数 F 为 E/D(每秒样本数) G 为 F60(每分钟样本数)

    【讨论】:

      【解决方案3】:

      吞吐量按请求数/时间单位计算。时间从第一个样本开始到最后一个样本结束计算。这包括样本之间的任何间隔,因为它应该代表服务器上的负载。 公式为:

      吞吐量 = 请求数 / 总时间 * 转化价值

      例如,

      请求 #1 加载时间 = 100 毫秒

      |---------------|

          Request #2 Load Time = 100ms
      
          |------------|
      

      如果两个请求同时执行, 总时间可能是 150 毫秒,而不是 200 毫秒。

      |-----------|

      所以,吞吐量 = 2 / 150ms * 1000 = 13.3/s

      公式 1 / 平均值对于多个线程是不正确的。

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多