gpt4 book ai didi

database - JMeter 线程运行一次,而循环计数器设置为 'forever',具有恒定的吞吐量计时器

转载 作者:搜寻专家 更新时间:2023-10-30 22:24:57 25 4
gpt4 key购买 nike

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

  • 它有 3 个线程组。
  • 每个都有自己的 JDBC 请求元素(1 个用于删除,1 个用于插入,1 个用于选择)。
  • 我希望所有请求都从一个 csv 文件中读取参数。我尝试使用整个测试计划的 1 个 CSV 数据集配置元素(共享模式设置为所有事件线程)和每个线程组 1 个(模式设置为当前线程组)进行测试。
  • 用于删除和插入的 JDBC 请求元素具有为查询类型属性设置的准备好的更新语句。
  • select 的一个请求元素为该字段设置了准备好的 select 语句值。
  • 在我尝试过的所有情况下,CSV 数据集配置属性都设置为:在 EOF 时回收 - 真,在 EOF 时停止线程 - 假。
  • 我在整个测试计划中使用了一个恒定的吞吐量计时器元素。它被设置为基于属性的所有事件线程(共享)。
  • 如标题中所述 - 每个线程组都勾选了永远循环计数框。没有使用调度程序,并且在出错时选择了继续按钮(尽管没有任何调度程序)。
  • 在总结报告中,我没有从数据库中得到任何 Java 异常。只有查询输出和延迟时间。

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

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

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

最佳答案

长话短说

似乎所有的配置都是正确的,但是constant throughput timer中的实际请求数太低了。另外,JMeter试图设置每分钟的吞吐量,所以测试应该更长然后用那个计时器 1 或 2 分钟。

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

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

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

关于database - JMeter 线程运行一次,而循环计数器设置为 'forever',具有恒定的吞吐量计时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54387879/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com