JMeter中的吞吐量控制器
在我的测试计划中,我有24个吞吐量控制器,它们有不同的执行百分比,最小执行百分比为1%。10个不同的吞吐量控制器的执行率为1%。每个吞吐量控制器下都有许多事务控制器。当我运行一个测试1小时时,在某些最小百分比吞吐量控制器下定义的采样器甚至不会执行一次。我已经确保所有24个吞吐量控制器的总数增加到100%。如何确保在所有吞吐量控制器上定义的所有采样器至少执行一次JMeter中的吞吐量控制器,jmeter,Jmeter,在我的测试计划中,我有24个吞吐量控制器,它们有不同的执行百分比,最小执行百分比为1%。10个不同的吞吐量控制器的执行率为1%。每个吞吐量控制器下都有许多事务控制器。当我运行一个测试1小时时,在某些最小百分比吞吐量控制器下定义的采样器甚至不会执行一次。我已经确保所有24个吞吐量控制器的总数增加到100%。如何确保在所有吞吐量控制器上定义的所有采样器至少执行一次 对于吞吐量最少的控制器,我将其更改为“Total Executions”为1。然而,在这些总执行下定义的采样器总是在测试开始后首先执行,
对于吞吐量最少的控制器,我将其更改为“Total Executions”为1。然而,在这些总执行下定义的采样器总是在测试开始后首先执行,这不是我所需要的。决定何时在控制器下运行样本的整个逻辑如下所示(从:
/**
*决定是否在此迭代中返回任何采样器。
*/
私有布尔决定(整数执行,整数迭代){
if(getStyle()==按编号){
返回执行
其中,执行
作为控制器下的采样器确实运行的次数传递,而迭代
作为测试总迭代次数传递。如您所见,不依赖于其他控制器,它不会检查各个控制器的总百分比
这就解释了
执行数=1
,因此不会运行任何内容(100*0+50)/(50+1)<1
。如果您的测试运行的迭代次数较少,则以1%运行的吞吐量控制器将永远不会运行决定何时在控制器下运行样本的整个逻辑如下所示(从:
/**
*决定是否在此迭代中返回任何采样器。
*/
私有布尔决定(整数执行,整数迭代){
if(getStyle()==按编号){
返回执行
其中,执行
作为控制器下的采样器确实运行的次数传递,而迭代
作为测试总迭代次数传递。如您所见,不依赖于其他控制器,它不会检查各个控制器的总百分比
这就解释了
执行数=1
,因此不会运行任何内容(100*0+50)/(50+1)<1
。如果您的测试运行的迭代次数较少,则以1%运行的吞吐量控制器将永远不会运行吞吐量控制器不保证它的孩子将被执行,如果你需要确保每一个采样器将至少执行一次,你需要考虑移动,而是通过
定义你的吞吐量逻辑。更多细节。
吞吐量控制器不保证它的孩子将被执行,如果你需要确保每一个取样器至少一次执行你需要考虑移动,而是通过
定义你的吞吐量逻辑。有关更多详细信息,请参阅。感谢Dmitri的建议。在我的测试计划中,我有24个不同的用户场景,用于100个用户负载,许多场景共享相同的执行百分比。我已经看过switch controller,认为无法为许多用户场景实现。可能,我不知道如何实现它。Thanks Dmitri的建议。在我的测试计划中,我有24个不同的用户场景,用于100个用户负载,许多场景共享相同的执行百分比。我已经看过switch controller,认为它不可能用于许多用户场景。可能,我不知道如何实现它。
/**
* Decide whether to return any samplers on this iteration.
*/
private boolean decide(int executions, int iterations) {
if (getStyle() == BYNUMBER) {
return executions < getMaxThroughputAsInt();
}
return (100.0 * executions + 50.0) / (iterations + 1) < getPercentThroughputAsFloat();
}