如何在Jmeter中使用负载分布运行依赖采样器

如何在Jmeter中使用负载分布运行依赖采样器,jmeter,stormrunner-load,Jmeter,Stormrunner Load,我希望能够以不同的顺序运行3个API的服务组合。第一季度-20%,第二季度-10%,第三季度-70% 然而,独立变量中的Q1和Q2取决于Q3中生成的变量 我有以下设置。我不能有多个线程组并且需要事务控制器,因为我需要将其上载到Storm Runner ThreadGroup - Threads 10, Loop 1 --- Q1ThroughPutController -20% ---Q1TransactionController --- Q2ThroughPutControlle

我希望能够以不同的顺序运行3个API的服务组合。第一季度-20%,第二季度-10%,第三季度-70% 然而,独立变量中的Q1和Q2取决于Q3中生成的变量

我有以下设置。我不能有多个线程组并且需要事务控制器,因为我需要将其上载到Storm Runner

ThreadGroup - Threads 10,  Loop 1
 --- Q1ThroughPutController -20%
    ---Q1TransactionController
 --- Q2ThroughPutController - 10%
    ---Q2TransactionController 
 --- Q3ThroughPutController - 70%
    ---Q3TransactionController
当前运行如下所示:

Q3-失败
Q3-失败
Q3-失败
Q3-失败
Q1-失败
Q3-失败
Q1-通过
Q3-通过
Q2-通过
Q3-根据以下要求通过考试:

属性与变量不同变量是线程的局部变量;属性对于所有线程都是公共的,需要使用_P或_属性函数来引用

您的设置假定:

  • 20%的用户正在执行Q1
  • 10%的用户正在执行第2季度
  • 70%的用户正在执行第3季度
所以运行第3季度的用户无法切换到第1季度

您需要修改相关逻辑以使用属性而不是变量,属性是全局的,因此所有线程都可以访问它们,您必须使用合适的


另一种解决方案是使用在不同线程之间传递变量,并实现一些阻塞逻辑,以便虚拟用户在继续之前“等待”变量值

感谢您的响应。这里的问题不是可变范围。问题是,当Q3在前四个阶段启动时,变量并没有像在Q2中创建的那样创建,正如您在Q2结束后看到的Q3。我正在寻找一种只在第二季度之后执行第三季度的方法,或者以某种方式优先考虑第二季度