0

我在两个插槽“A”和“B”中总共获得了 900 个 URL(页面),让 500+400。

我想在 1 小时内完成 2000 个请求,其中插槽 A 的命中率为 80%,插槽 B 的命中率为 20%,最后,我需要共享响应时间。

我是如何尝试的:

`**TestPlan**
   -**ThreadGroup-SlotA** - Number of threads=20,Ramp up=2 sec, Loop=1
      -Constant Throughput Timer = 35 (All active threads in current thread group)
      -View Tree Report
      -jp@gc Response Times over Time
   -**ThreadGroup-SlotB** - Number of threads=9, Ramp up=1 sec, Loop=1
      -Constant Throughput Timer = 35 (All active threads in current thread group)
      -View Tree Report
      -jp@gc Response Times over Time`  

我从命令行运行它

jmeter -t c:\Users\Admin\Desktop\Jmeter\ThreadAandB.jmx -n -l c:\Users\Admin\Desktop\Jmeter\Reports\Reports.csv -JTEST_RESU
LTS_FILE=c:\Users\Admin\Desktop\Jmeter\Reports\Results.csv

询问:

  1. 该计划是否完全满足此要求,如何在纸上计算用户达到 X 加速时间等?
  2. 如何找出它来自哪个插槽的百分比?如果它不能解决需求,如何配置它以满足每个插槽的需求?
  3. 测试会在 1 小时后还是在 2000 个请求后自动结束?如何确保这一点。

如果您看到非常愚蠢的问题,请原谅。我是这里的 Jmeter 新手。

编辑:已经完成了这个,但实际上不知道如何将它放入 Jmeter 中。 使用 JMeter 进行测试:如何每秒运行 N 个请求

@vins 我的评论达到字数限制,所以提出我的问题。请看一下:

问题 1:我在测试计划中创建了两个线程组(请参阅问题描述),在这些线程组中我有 500 个 http 页面,但在您的屏幕截图中,您只有线程组,但有两个吞吐量控制器,在吞吐量控制器中,您有 http 请求。两种方法都达到相同的目的?

问题 2:要从第一个线程组获得 80% 的请求,我们是否需要在percent executions下拉列表中提供 80 个throughput controller

在此处输入图像描述

问题 3:它会随机选择还是按顺序选择 http 请求,我希望它随机选择,但它是按顺序选择的,即所有 9 个用户都点击了同一个页面,然后接下来的 9 个用户点击了下一页等等......但我想要每个一组 9 个用户点击随机 URL。

4

1 回答 1

2

检查样品测试计划。

它可以通过Throughput Controller+来实现Constant Throughput Timer

恒定吞吐量计时器 - 目标吞吐量设置为 34 个/分钟,以实现 2000 个请求/小时。

当请求总数为 550 时,Slot A 为 440,Slot B 为 110。80/20 运行良好。

在此处输入图像描述

更新:

  1. 请注意,您每小时可能没有正好 2000 个请求。JMeter 将努力实现这一目标。大多在那个范围内。最低 2000/小时。(我将目标吞吐量设置为 34 / min。JMeter 做了 34.1 / min)如果您的应用程序无法在 1 小时内处理那么多请求,显然 JMeter 无法发送 2000 个请求。

  2. 您可以将线程组的持续时间设置为 3600 以在 1 小时后自动停止。将循环计数设置为永远。或者让循环计数为 2000 。JMeter 将在经过时间或达到计数后自动停止测试。

  3. 如果 2000 个请求/小时是服务器的整体吞吐量,那么线程组的用户数似乎并不重要。您甚至可以通过 1 个用户实现此目的。(我不了解您的应用程序 - 所以先从少数用户开始。如果您无法获得 2000 / hr,则添加更多用户)

  4. 您不需要 2 个线程组。[可能是我没有完全理解问题]。假设您有 2 组 URL。让我们将它们保存在 2 个不同的 CSV 文件中。使用 2 个 CSV 配置,我们可以确保一个 URL 只被一个用户点击。

样本测试计划上传在这里

于 2016-10-26T15:14:18.347 回答