JMeter - 在每次迭代中触发不同的请求

use*_*568 8 jmeter load-testing

我目前正在使用JMeter来模拟每40秒发送一次请求的5个用户.我创建了100个不同的请求,但是每40秒后,每个用户都会发出100个请求.我想以这样的方式制作它:每40秒后,每个用户只发出1个请求,该请求必须与之前的请求不同.我想知道使用什么样的控制器(或其他任何东西)来实现这种情况.

谢谢

Ali*_*lik 14

尝试使用随机控制器.

实现场景的最简单方法:

Thread Group
Number of Threads = 5
Loop Count = N
    . . .
    Random Controller
        HTTP Request 001
        HTTP Request 002
        HTTP Request 003
        . . .
        . . .
        HTTP Request 100
    Test Action
    Target = Current Thread
    Action = Pause
    Duration = 40000
    . . .

这将迭代5个线程N次.
随机控制器将随机接收来自"请求池"的每个步骤http请求 - 所有采样器作为子控件添加到随机控制器.
测试操作将暂停线程40秒.

更新:
上述方案的工作说明:

随机控制器示例

Thread Group
Number of Threads = 5
Ramp-Up Period = 0
Loop Count = 10

Constant Timer
Thread Delay (in ms) = 40000

您可以从此处下载所述方案的工作示例:rc-plan.jmx.
这个按你想要的方式运行(至少对我而言,Jmeter 2.5.1):它在每个步骤(这里 - 10个循环)为EACH用户(这里是5个用户)从请求池中随机选择一个请求(例如 - 10个请求) )并暂停每个线程40秒(恒定计时器).

您还可以查看此邮件存档:他们是一种随机化URL选择的方法吗?.这里
似乎描述与你的相似的情况.

......根据官方文档"多个控制器之间的交互可以产生复杂的行为.对于随机控制器尤其如此."


小智 6

您的另一个选择可能是提前创建包含请求参数的CSV文件,并使用CSV数据集配置来参数化单个http请求.

这显然取决于您的http请求有多么不同,但如果它符合您的要求,则在您的测试计划中维持1个http请求有100个可能的奖励.

其他细节与@Alies Belik布局相同 - 一个线程组配置为所需数量的线程和循环,最后一个常量计时器为您的40秒暂停.