我有一个包含多个线程组的测试计划,每个线程组执行不同类型的请求。整个测试计划模拟我们的环境。
每个线程都使用特殊资源向服务器发送请求,此资源正在构建一次(使用Once Once Controller)并存储在Jmeter Variables中。 Jmeter变量不在线程之间共享,所以如果我有10个线程组,每个线程有10个线程,我创建了100个资源。
我想在每个线程完成其工作后断开此资源。
无法使用拆解线程组,因为Jmeter变量只能由存储它的线程看到。
具体问题是:如何知道线程何时完成Groovy的工作?
答案 0 :(得分:0)
如何知道线程何时完成Groovy的工作?
你不能,但是你可以获得当前的线程数和当前的迭代次数,如:
if (ctx.getThreadNum() == 0 && vars.getIteration() == 10)
{
//do what you need
}
另一个选择是将JMeter变量转换为JMeter属性(它们是整个JVM的全局属性,因此可以从不同的线程组访问)并在tearDown线程组中执行清理,如:
//assuming you have JMeter Variable called "foo"
props.put("foo", vars.get("foo"));
参考文献:
答案 1 :(得分:0)
根据您的要求,FIFO插件似乎是一个不错的选择。请检查here。
基本上,要清除的所有资源都会添加到队列中 - 有一个单独的线程组可以检查此队列并清除资源。