Jmeter - 我运行了2个测试用例但结果似乎很奇怪

时间:2015-09-09 04:40:21

标签: performance jmeter

我已经对网站进行了负载测试,但是当我增加了no。对于用户,我可以看到吞吐量时间似乎在增加而不是减少。

测试案例1:

没有。线程: 15

加速时间: 450 [因为我希望在两个用户之间延迟30秒]

循环计数:永远

调度程序:1800秒[因为我想测试30分钟]

在Http请求中,我添加了10个页面,每个请求都有 30000 毫秒的常量计时器,因为我需要在两个请求之间放置30秒的延迟。

现在当我看到聚合报告的结果时,它会显示每个请求的吞吐量3 / min。

测试案例2:

没有。线程: 30

加速时间: 900 [因为我希望在两个用户之间延迟30秒]

循环计数:永远

调度程序:1800秒[因为我想测试30分钟]

在Http请求中,我添加了10个请求/页面,每个请求都有 30000 毫秒的常量计时器,因为我需要在2个请求之间放置30秒的延迟。

现在,当我看到聚合报告的结果时,它显示每个请求的吞吐量为6 / min。

我很困惑,怎么可能?如果我的用户从15增加到30,那么它应该在服务器上有更多的负载,并且吞吐量应该减少,如1 / min或2 / min。

请告诉我这里的错误。

2 个答案:

答案 0 :(得分:3)

吞吐量不是。完成单位时间。 (完成可以是http请求/ db请求,简而言之就是需要执行的任何事情,并且需要> 0执行时间。)

实施例。每秒req或每分钟req等。

根据JMeter中的吞吐量定义,它计算为总数。请求/总时间。

  1. 在你的第一个案例中,没有。在15秒内每次请求中延迟3秒的1800秒内生成的请求数为x。因此吞吐量为x / 30,即3意味着生成约90个请求(从汇总报告或其他报告者验证这一点。)

  2. 在你的第二个案例中,其他一切都相同但没有。用户增加了一倍,创造了双倍数量。在给定时间内的请求是(1800秒)

  3. 因此根据公式,没有。生成的请求/总时间。

    第二种情况下的吞吐量= 2x / 30 =第一种情况下的2 *吞吐量

    这是6 / min。 (JMeter正确显示。)

    这里的关键是检查否。在两种情况下生成的请求。

    我希望这可以解决你的困惑。如果您需要进一步澄清,请与我们联系。 BTW "当我增加了没有。对于用户,我可以看到吞吐量时间似乎在增加而不是减少。" 并非总是如此。

答案 1 :(得分:1)

吞吐量增加了2倍。

  • 测试案例1: - 每分钟3个请求 - 每20秒1个请求
  • 测试用例2: - 每分钟6个请求 - 每10秒1个请求

根据JMeter Glossary

  

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

     

公式为:吞吐量=(请求数)/(总时间)。

您可能还对以下插件感兴趣:

或者Loadosophia.org服务,它可以将您的JMeter .jtl结果文件转换为易于理解的专业负载报告