如何控制号Jmeter 中每个用户的请求数

How to control no. of requests per user in Jmeter

我正在为一个电子商务网站做负载测试。我正在使用 Ultimate thread group.

现在我只想向每个用户发送 1 个请求。例如:如果有 500 个用户,则只应发送 500 个请求。如何使用 Ultimate thread group?

实现它

为什么我想要上面的内容,因为我正在执行整个过程,例如登录、select 产品、添加到购物车和结帐。所以它应该只为每个用户做一次。

假设测试持续时间为 1 小时。第一个用户在前 10 分钟内完成您提到的工作流程。用户的工作流程之后应该发生什么?线程是否应该在剩余的 50 分钟内空闲?

我认为您应该使用常规 Thread Group 和 500 个线程,循环计数为 1。Ultimate Thread Group 用于基于持续时间的测试。您可以在内部使用 Once Only Controller 作为解决方法,只为用户执行一次操作。但这是一种丑陋的做法。

您可以使用 Throughput Controller

The Throughput Controller allows the user to control how often it is executed. There are two modes:

  • 执行百分比
  • 总处决

执行百分比 导致控制器通过测试计划执行一定百分比的迭代。

执行总次数 导致控制器在执行一定次数后停止执行。 与 Once Only Controller 一样,此设置会在父循环控制器重新启动时重置。

您的测试设计有点不稳定,因为每个用户都会登录、select 产品、添加到购物车和结帐,每个用户至少有 4 个请求,总共有 2000 个请求(不' t 包括嵌入式资源调用)。您可以使用 Transaction Controller 将这些请求分组为一个 "workflow" 但是它不会限制实际的请求数量。

通常 web 测试计划应该如下所示:

  • 给定每个用户执行测试场景步骤并像真实用户一样行事
  • 逐渐增加用户数量,除非应用程序响应时间变得太长或开始出现错误,无论哪个先发生
  • 分析结果,确定瓶颈,报告您的发现