我需要将应用程序的负载除以一些百分比,即登录模块 - 60%,帐户 - 10%,其他模块 - 30%。经过一些研究后,我在jmeter中的吞吐量控制器部分找到了一个选项,我可以使用它来控制这些百分比。我找到一个名为"每个用户"的复选框。现在我没有收到此复选框。
根据blazemeter博客,我在这里尝试了一个场景,如下所示"每个用户"复选框已选中。
现在,根据博客特定的交易应该执行400次。但该交易的执行为零。
我尝试使用"每个用户"复选框已选中。
现在,根据博客特定的交易应该执行600次。但它执行了10次。
那里的任何专家能否分享我在这里做错了什么?或者,此复选框的工作原理还需要更清晰。
答案 0 :(得分:3)
要理解Throughput Controller(TC),只需添加一个TC和一个采样器(在TC内)和Aggregate Report
组合。然后,使用Throughput Controller
中的所有参数。
来自官方文件:
总执行次数: 导致控制器在执行了一定数量的执行后停止执行。
和
每位用户:如果选中,则每位用户将导致控制器计算 是否应该在每个用户(每个线程)的基础上执行。如果 如果未选中,则所有用户的计算都将是全局的。对于 例如,如果使用总执行模式,则取消选中“每个用户”,然后 吞吐量的数量将是执行的总数 制作。如果选中“每个用户”,则执行总数 将是用户数乘以吞吐量的数量。
多次仔细阅读这两个陈述。
在您指定的两种方案中,最大执行次数为10.(线程计数*循环计数)。虽然您指定Total Executions为40或60,但是,您应该提供超过60个,以便查看所有这些40/60迭代的执行情况。因此,请始终指定比总执行次数更多的迭代(使用线程计数和循环计数)。
You have to consider Percentage Executions instead of Total Executions to match your requirements
。同样,我建议模拟一个样本并通过改变百分比来理解行为。
以下是一些情景和预期行为(EB)。
<强>情景:1 强>
线程组 - 10,循环计数 - 1,吞吐量 - 每个用户40个(总执行次数) - 已检查。
EB:采样器只能运行10次。
<强>情境:2 强>
线程组 - 40,循环计数 - 1,吞吐量 - 40(总执行次数),每位用户 - 已检查。
EB:采样器只能运行40次。
<强>情境:3 强>
线程组 - 40,循环计数 - 1,吞吐量 - 40(总执行次数),每位用户 - 未选中。
EB:采样器只能运行40次。
<强>情境:4 强>
线程组 - 100,循环计数 - 1,吞吐量 - 40(总执行次数),每位用户 - 已检查。
EB:采样器只能运行100次。计算每个用户是否执行了40次。由于未达到限制,它将执行所有100次迭代。
<强>情境:5 强>
线程组 - 100,循环计数 - 1,吞吐量 - 40(总执行次数),每个用户 - 未选中。
EB:采样器只能运行40次。在全球范围内计算。当采样器对所有线程达到40次时,停止执行它。
<强>情境:6 强>
线程组 - 100,循环计数 - 40,吞吐量 - 40(总执行次数),每位用户 - 已选中。
EB:采样器将运行400次(每个用户 - > 40次,100 * 40)。计算每个用户是否执行了40次。在这里,甚至达到每个用户限制,并且在40之后不再执行。
<强>情境:7 强>
线程组 - 100,循环计数 - 1,吞吐量 - 40(总执行次数),每个用户 - 未选中。
EB:采样器只能运行40次。在全球范围内计算。当采样器对所有线程达到40次时,停止执行它。