【问题标题】:Alternating threads in JMeterJMeter 中的交替线程
【发布时间】:2016-09-28 06:28:11
【问题描述】:

我使用以下查询从大量 ID 中进行了选择:

select ID from [tabelname] where id > 0 and id < 31

这让我可以使用 30 个 ID。

我现在想做的是使用 3 个线程,第一个使用 ID 1、4、7、10 等,第二个使用 ID 2、5、8、11 等,第三个使用 ID 3, 6、9、12 等。

到目前为止,我只能让所有线程彼此并行使用 ID 1 到 30。有没有可能做到这一点?

提前致谢!

【问题讨论】:

  • 那么使用计数器在 1-30 范围内随机选择 3 个线程不是一个可接受的解决方案吗?你能更具体地说明你的目标吗?
  • 你试过“in”操作符吗? select id from [tablename] where id in (1,4,7,10...)
  • 不幸的是,随机不是一个选项。我必须多次使用相同的人口,进行多次操作。 'in' 运算符也不是一个选项。总人口超过 1500 万,我们需要 1% 的代表。基本上,是否有可能拥有多个线程并让每个线程都使用自己的人口?我该如何分配这些?

标签: sql controller jmeter interleave


【解决方案1】:

JMeter 有一个内置操作,您可以结合预处理器使用它来查找当前线程号:

https://jmeter.apache.org/api/org/apache/jmeter/threads/JMeterContext.html#getThreadNum()

如果您现在使用 ctx.getThreadGroup().getNumThreads() 来查找您正在使用的线程数,您基本上可以将您的测试集划分为子集并让每个线程在其自己的子集上计算(例如 thread1 在 0 上计算..10、11..20 上的线程 2、21..30 上的线程 3 等..)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-21
    • 2021-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多