我想用一定数量的线程迭代我的整个线程计划。我的线程计划包括包含控制器、少量采样器和从 CSV 数据配置中获取数据的 While 控制器。我需要在哪里提供线程数,以便我的 while 循环也迭代那么多次?
我在主线程组中添加了线程数为 10,因此 Include 控制器和其他 HTTP 采样器被迭代了 10 次。但它不会迭代 while 循环 10 次。它只执行一次。在此处输入图像描述 在此处输入图像描述
我想用一定数量的线程迭代我的整个线程计划。我的线程计划包括包含控制器、少量采样器和从 CSV 数据配置中获取数据的 While 控制器。我需要在哪里提供线程数,以便我的 while 循环也迭代那么多次?
我在主线程组中添加了线程数为 10,因此 Include 控制器和其他 HTTP 采样器被迭代了 10 次。但它不会迭代 while 循环 10 次。它只执行一次。在此处输入图像描述 在此处输入图像描述
我得到了一个简单的解决方案,通过将while控制器的CSV数据配置设置为当前线程而不是A
使用以下__groovy() 函数作为条件:
${__groovy(ctx.getThreadGroup().getNumThreads(),)}
在上面的表达式中ctx
代表JMeterContext类实例,它提供对所有线程(虚拟用户)上下文信息的访问。查看您应该与 Groovy 一起使用的 8 个 JMeter Java 类文章,了解有关JSR223 测试元素和 __groovy() 函数可用的 JMeter API 快捷方式的更多详细信息
就是这样,现在循环控制器将迭代线程组中定义的线程(虚拟用户)的数量。请记住,它将是每个线程,即如果您有 10 个线程,则循环控制器的子节点将被执行 100 次。