JMeterThread完成后如何运行代码?

时间:2015-05-05 13:42:39

标签: java jmeter

在线程组中,我有一个线程和两个循环。

我需要在循环结束时运行代码(一些清理)。

编辑:

我正在使用一些专有插件。此插件存储在Threads的队列ID中。 它还存储线程已在使用的信息。

当线程组中的循环结束时,不使用Thread的信息。因此,下一个循环不能使用此线程,并且每个线程组只有一个线程集。

所以我正在寻找一种方法来清除在Thread Group循环结束时使用Thread的信息。

1 个答案:

答案 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,它知道测试何时结束 - 您可以对最后一次迭代进行清理。