在线程组中,我有一个线程和两个循环。
我需要在循环结束时运行代码(一些清理)。
编辑:
我正在使用一些专有插件。此插件存储在Threads的队列ID中。 它还存储线程已在使用的信息。
当线程组中的循环结束时,不使用Thread的信息。因此,下一个循环不能使用此线程,并且每个线程组只有一个线程集。
所以我正在寻找一种方法来清除在Thread Group循环结束时使用Thread的信息。
答案 0 :(得分:1)
我建议你使用tearDown Thread Group
,最后会执行所有清理工作。
编辑:
从您更新的问题&注释,我假设你有插件的源代码,并希望清除每次迭代的一些信息。
您需要实施org.apache.jmeter.engine.event.LoopIterationListener
您可以添加此方法iterationStart(LoopIterationEvent loopitr)
(没有iterationEnd
)
因此,JMeter可能不知道循环何时结束。您可以在此方法中进行清理(如清除变量等)。
loopitr.getIteration()
返回一个整数循环计数。
您可以执行以下给出的清理(忽略第一次迭代 - 从第二次迭代开始 - 这是上一次循环的结束 -
if(loopitr.getIteration()>1){
// skip the first iteration - start cleaning up from second iteration beginning.
}
然而,这种方法不会清除最后一次迭代设置。为此,您可以实现TestStateListener
,它知道测试何时结束 - 您可以对最后一次迭代进行清理。