首页 > 解决方案 > JMeter 线程运行一次,而循环计数器设置为“永远”且具有恒定吞吐量计时器

问题描述

我在 JMeter 中有一个测试计划来测试 memSQL 数据库,它似乎只运行每个线程一次,而不是永远运行。

如前所述,我已经为所有线程组尝试了 1 个 csv 源文件。现在我创建了 3 个不同的 csv 文件,问题仍然存在。我尝试将所有线程的加速时间设置为 0、0.1、1、2,但仍然没有运气。

查看我创建的摘要报告后,我总是看到相同数量的样本。我有 3 个线程组,每个线程组有 80 个线程,所以我总是得到 240 个相同的线程。即使测试持续了 1、2、3 分钟等。我尝试通过关机和停止测试来结束测试,并且两者都得到了相同的数字。

我希望线程继续运行,似乎它们只完成一次工作,然后在测试进行时停止。这与恒定吞吐量计时器有关吗?我在这里想念什么?

标签: databasetestingjmeterthreadgrouploop-counter

解决方案


TL;博士

看起来所有的配置都是正确的,但是恒定吞吐量计时器中的实际请求数太少了。此外,JMeter 尝试设置每分钟的吞吐量,因此使用该计时器进行测试的时间应该长于 1 或 2 分钟。

一个非常愚蠢的结论错误:检查您的吞吐量值,测试更长的时间。希望这对其他人有帮助。

原因是,在运行非 gui 版本的 jmeter 的服务器中,我创建了一个 shell 脚本,以每秒获取当前测试所需的请求数,并将其插入到计时器元素中适当字段的计划时间 60 中. 问题是我没有乘以 60,所以吞吐量非常低。如此之低,以至于对于几分钟的测试,我总是得到相同的样本数。

如果我要测试更长的时间,我会看到创建了更多的样本,但是因为 jmeter 延迟了线程以模拟低吞吐量,所以我只看到了第一次迭代。


推荐阅读