JMeter:在特定时间请求第二个端点?

JMeter: request second endpoint at specific time?

我想模拟一个网站的许多用户完成两个任务的场景:

  1. 在 5 分钟间隔内的随机时间请求第一个端点。
  2. 在特定时间请求第二个终结点。

这是为了模拟大量(数千)用户错开时间登录,但随后所有用户都在同一时间请求特定资源的情况。

我一直在阅读有关 JMeter Scheduler 的信息,但据我所知,它似乎无法在同一线程组内安排连续的任务。

这在 JMeter 中可行吗?如果是这样,如何?如果不是,您会推荐什么替代测试情况?无头硒?另一种无头浏览环境?我需要测试来为每个线程生成用户的浏览会话。

其中一种方法是使用Timers。整个设置如下所示:

在第一步中,您可以使用其中一个随机启动请求的计时器,例如我使用 Uniform Random Timer。由于您希望您的用户 运行 首先请求 5 分钟间隔内的随机时间 ,您可以对其进行配置,使其 运行 的最大延迟为 5 min = 300000 ms / number of users。所以对于 100 个用户,配置是:

第二步最明显的选择是Synchronizing Timer:

虽然不是特定时间,而是多个线程互相等待,然后同时做某事的时候。因此,您实现了总体目标,其中“所有人都在同一时间请求特定资源”。

这两种情况都需要控制器来控制定时器的范围(我们只希望定时器应用于相应的请求。

这也适用于多次迭代,不像 Ramp-up / schedule,它只对测试的开始很重要。

如果你真的必须在特定时间开始第二步,你可以使用 BeanShell Timer 来编程。

当然还有其他完全不同(且更复杂)的选项。例如,通过 Java 代码中的 运行ning JMeter 测试在特定时间触发请求。但希望简单的解决方案就足够了。