如何防止在Jmeter中发生意外延迟,当多个线程组同时执行甚至连续执行时

7uzetpgm  于 2023-08-05  发布在  其他
关注(0)|答案(1)|浏览(89)

为了执行1Hr浸泡测试,我有两个线程组,第一个线程组执行GET令牌,下一个线程组验证在前一个线程组的GET令牌中生成的访问令牌
我想达到这样的结果:
GET令牌被执行一次以获取访问令牌,并且VALIDATE令牌使用相同的访问令牌并验证“N”次,N= 4400
在我的GET线程组中,我添加了一个beanshell处理器-通过__setProperty()函数将访问令牌转换为JMeter属性
在验证线程组中,我通过函数${__P(some-property-name,)}访问了属性,包括一个值为73/min的恒定吞吐量计时器,还设置了一个吞吐量控制器,总执行次数为4400,持续时间为3600秒
仍然当我执行此操作时,我无法达到预期的事务数,实际结果仅为900个请求,在处理样本数时存在巨大的延迟。
这将是非常有帮助的,如果我得到帮助的建议,了解.....什么可以是这样的延迟背后的原因,如何避免这种意外的延迟在Jmeter,什么其他选项是可用的Jmeter,以防止延迟,而执行多线程组无论是连续或同时执行?

k97glaaz

k97glaaz1#

如果你想每分钟执行73个请求,这意味着响应时间必须是1.2秒或更少。
1.首先,我们使用i.e.来看看平均响应时间聚合报告侦听器
1.恒定吞吐量计时器有几种模式,您要查找的模式是All active threads
x1c 0d1x的数据
1.如果一个虚拟用户不足,则可能需要增加执行VALIDATE请求的线程组中的线程数
1.确保遵循JMeter Best Practices
1.如果您完全确定JMeter是瓶颈,则可以考虑分配另一台机器并在Distributed Mode中运行JMeter
1.自JMeter 3.1以来,建议使用JSR 223测试元素和Groovy语言进行脚本编写,因此请考虑迁移。如果你只使用它来将变量转换为属性,并且只做一次--这应该没问题,但是对于更重的任务,可以考虑使用Groovy

相关问题