Testing 在Jmeter中,我必须以不同的百分比将线程数分成多个http请求,但必须保持顺序不变

Testing 在Jmeter中,我必须以不同的百分比将线程数分成多个http请求,但必须保持顺序不变,testing,jmeter,load,stress-testing,Testing,Jmeter,Load,Stress Testing,我用jmeter在一个电子商务网站上进行负载测试,在测试中,我必须以不同的百分比将线程数分成多个http请求,但必须保持顺序与树中的顺序相同 例如: Thread(1000) ++Login(20%) ++autoLogin(40.60%) ++addToCart(30.40%) ++Logout(9%) 为了实现百分比分布,我使用了吞吐量控制器,但执行顺序发生了变化,导致整个测试计划失败。请建议任何其他实现方法。有3个选项可配置加权负载,并突出显示JMeter

我用jmeter在一个电子商务网站上进行负载测试,在测试中,我必须以不同的百分比将线程数分成多个http请求,但必须保持顺序与树中的顺序相同

例如:

Thread(1000)
    ++Login(20%)
    ++autoLogin(40.60%)
    ++addToCart(30.40%)
    ++Logout(9%)

为了实现百分比分布,我使用了吞吐量控制器,但执行顺序发生了变化,导致整个测试计划失败。请建议任何其他实现方法。

有3个选项可配置加权负载,并突出显示JMeter提供的选项

  • 不同的线程有不同的线程数
  • 或者插件
  • 在这里,我将仅引用这三种技术的介绍,有关完整的详细信息,请访问Blazemeter的博客。你可以试着按照博客上的任何一个步骤去做

    • 使用具有不同线程数的不同线程组:
    当N%时,可能是实现分布式场景的最简单方法 正在设置执行任务A的用户的百分比,执行任务B的用户的百分比,等等 具有相关虚拟用户百分比的不同测试组 配置。例如,在上述场景中 40%-30%-20%-10%的分布,我们需要4个线程组,每个线程组有40个, 对应30、20和10个螺纹。你可以除法或乘法 根据您的负载测试计划,将这些数字按任何合理因素计算;你 只需确保因子是相同的

    • 使用具有不同执行百分比的吞吐量控制器:
    吞吐量控制器是一个有点误导性的名称,因为它不是 控制吞吐量(恒定吞吐量计时器-尽管公平 “恒定吞吐量计时器”不一定需要为“恒定” 也可以,但这超出了本文的范围)。而不是管理 吞吐量,控制器定义其子元素的访问频率 执行

    • 使用开关控制器:随机加权值:
    确定已定义采样器执行的另一个选项 百分比率正在使用开关控制器。开关控制器提供 基于“开关”运行其下属采样器之一的选项 “值”,可以是:

    • 整数-将执行基于开关值的子元素索引。编号是以零为基础的。如果没有 匹配或开关值为空/未设置-第一个子元素 将被执行
    • 字符串-将执行名称等于开关值字符串的子元素

    希望对您有所帮助。

    在使用吞吐量控制器时,您需要确保所有的孩子都有

    因此:


    您的分布是否必须如此精确,即40.6%而不是40%左右真的重要吗?登录和自动登录也是可选的,还是需要按顺序运行?您可以使用加权开关控制器来实现这一点。这里是插件的文档,感谢提供信息,对程序1的评论。我不能使用多个线程,因为我只需要一次,我只能更改一个线程的线程数。2.吞吐量控制器。。我已经尝试过了,但是当我将每个http请求放入单个吞吐量控制器时,它会计算定义的百分比,然后首先执行各自的http请求,但执行顺序不符合要求。3.swich controller…控制哪些http请求必须按照定义执行…我仍然必须满足百分比分布的顺序,因为每个请求都是相互依赖的。
    Thread(1000)
        ++Throughput Controller(20%)
        ++Login
            ++Throughput Controller(40.60%)
            ++autoLogin
            ++Throughput Controller(30.40%)
                ++addToCart
                ++Throughput Controller(9%)
                ++Logout