当前位置: 首页 > 知识库问答 >
问题:

JMeter中的吞吐量控制器

古彦
2023-03-14

在我的测试计划中,我有24个吞吐量控制器,它们的执行率不同,最小的是1%。10个不同的吞吐量控制器有1%的执行率。每个吞吐量控制器下面都有许多事务控制器。当我运行一个测试1小时时,在某些最小百分比吞吐量控制器下定义的采样器甚至不会执行一次。我已经确保所有24个吞吐量控制器的总数增加到100%。如何确保在所有吞吐量控制器上定义的所有采样器至少执行一次?

对于吞吐量最少的控制器,我将其更改为“Total Executions”为1。然而,在这些总执行下定义的采样器总是在测试开始后首先执行,这不是我所需要的。

共有2个答案

何德寿
2023-03-14

吞吐量控制器不保证它的孩子将被执行,如果您需要确保每个采样器将至少执行一次,您需要考虑移动到交换机控制器,而通过交换机语句定义吞吐量逻辑。

有关更多详细信息,请参阅使用定义百分比概率运行JMeter采样程序。

萧秋月
2023-03-14

决定何时在控制器下运行示例的整个逻辑如下所示(来自ThroughputController.java:

/**
 * 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();
}

其中,执行作为控制器下的采样器确实运行的次数传递,而迭代作为测试总迭代次数传递。如您所见,它不依赖于其他控制器,也不会检查各个控制器的总百分比。

这就解释了

>

  • 为什么如果您将总执行指定为1,它将在第一次迭代中执行,并且不再执行:在第一次迭代中执行=0

    当你用一定的百分比配置控制器时,会发生什么?例如,配置为以1%运行的实例控制器需要至少51次迭代才能运行一次:(100 * 0 50) / (50 1)

    如何确保每个控制器至少运行一次(从上一点派生):确保迭代次数足够。

    还要确保controller中的每个用户设置正确,并且符合您的期望:

    如果未选中,则对所有用户的计算将是全局的

  •  类似资料:
    • 我有一个类女巫负责向客户端发送数据,所有其他类在需要发送数据时都使用这个。让我们称之为“数据ender.class”。 现在客户端要求我们将吞吐量控制在每秒最多50次调用。 我需要在这个类上创建一个algoritm(如果可能的话),以保持当前秒的调用次数,如果它达到50的最大值,保持进程要么睡眠或某事,并继续而不丢失数据。也许我必须实现一个队列或比简单的睡眠更好的东西。我需要建议或遵循的方向。 为

    • 我需要一些帮助来使用JMeter。我想记录两个不同的场景,比如单击两个不同的按钮。如果我尝试为两个用户运行,一个用户应该点击第一个按钮,另一个用户应该同时点击另一个按钮。 我知道这是一个基本问题。但我对这一点还不熟悉。这就是为什么在这里问。我试过如下方法: 当我使用CSV数据集配置与两个用户一起运行时,两个登录使用相同的用户。 我还需要测试并发性。我不知道如何正确地执行这个。有人能帮我吗?

    • 主要内容:创建JMeter测试计划,添加采样器,添加监听器,保存并执行测试计划,验证输出,添加吞吐量控制器,验证输出在本节中,我们将学习如何使用吞吐量控制器在JMeter中创建分布式负载测试计划。 出于测试目的,我们将在我们网站 www.yiibai.com 的URL下的某些网页上创建分布式负载。这些网页包括: 主页: www.yiibai.com 第1页(Java): www.yiibai.com/cplusplus/ 第2页(C语言): www.yiibai.com/cprogramming

    • 汇总报告中最后一行显示的总吞吐量是否正确?我使用的是Jmeter 2.11 有人能帮我一下吗?

    • 我有一个如下的计划: Thread组 取样器B 采样器C(用于注册) 采样器D(用于https(已登录)页面视图1) 采样器E(用于https(已登录)页面视图2) 让我们假设登录页面视图1和2必须在注册后立即发生。由于第三个吞吐量控制器中有多个采样器,因此不可能实现40%(对于整个组)。 对于10个线程,1个循环,我希望看到以下计数: 取样器A: 4 采样器B: 2 采样器C D E: 4 但事

    • 如果采样器的数量非常高,接近100个,如何在jmeta中使用吞吐量控制器?我希望所有的采样器都以相同的数量通过jmetm发送。 我的测试配置:终极线程组:50个线程,10分钟,斜坡上升10秒,斜坡下降10秒 采样器1, 采样器2, ... 取样器100。 未使用吞吐量控制器。 执行测试时,总请求数如下: Sampler1:150, 样本2:145,, Sampler50:5, Sampler100