Jmeter - 模拟更复杂的负载情况?

时间:2011-03-17 03:23:17

标签: java jmeter performance-testing

正在试验Jmeter,我想知道最好的方法:

20个用户登录应用程序,超过20分钟,并执行一些操作另外20分钟,然后注销20分钟。即有200个用户登录,然后一旦所有登录,开始20分钟计时器。一旦20分钟结束,开始记录最早登录的人。

我意识到这可能或可能不是一个真实的测试场景,但我想看看它是否可能。

目前我有一个测试计划,用户登录,执行一些操作,然后注销。我无法看到我如何能够提升和减速。

4 个答案:

答案 0 :(得分:4)

测试计划中有一个选项“连续运行线程组”。将其设置为选中。

然后将3个线程组添加到测试计划中。我建议首先使用Thread Group(20个线程,循环计数1,加速时间1),终极线程组(20个线程立即启动并保持负载20分钟)用于第二个,Thread Group再次用于第三个(20个线程,循环)计数1,加速时间1)。

在每个TG中放置适当的采样器 - 首先登录,第二个执行操作,第三个注销。

就是这样。如果您有任何问题 - 请告诉我。

答案 1 :(得分:2)

您需要JMeter中的多个线程组以不同的时间间隔开始和运行,这样您就可以确保首先启动的用户将首先结束。

另请参阅related question

答案 2 :(得分:0)

你可以没有用户= 20,加速时间= 1200秒(每分钟1次),测试开始和测试结束时间之间的时间差= 20分钟即可实现。

答案 3 :(得分:0)

我认为我过去遇到过类似的问题

这里想要我做过:

首先将您的线程组设置为20个线程,加速周期为60秒

登录后发出“测试动作”(在采样器菜单中) 目标=当前线程,动作暂停,如果您想要安全,则为20分钟(1 200 000 ms)或更长时间。

完成此测试操作后,请提交所有导航请求。

导航完成后,将另一个具有相同设置的“测试操作”放入上一个

(目标=当前线程,动作暂停,20分钟(1 200 000 ms)) 将logouf请求放在采样器之后。

这应该涵盖你的情况。

请注意,采样器只是暂停您的线程,因此启动的第一个线程应该是结束的第一个线程。

如果要将其缩放到200,只需将线程组加速时间更改为6或5秒即可。

希望它有所帮助。