在线程组中,我有一个线程和两个循环。
我需要在循环结束时运行代码(一些清理)。
编辑:
我正在使用一些专有插件。该插件存储在线程的队列 ID 中。 它还存储已在使用的线程的信息。
当线程组中的循环结束时,线程使用的信息并没有被清除。因此下一个循环不能使用该线程,并且每个线程组只有一个线程集。
所以我正在寻找一种方法来清除线程组循环结束时使用线程的信息。
最佳答案
我建议您使用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
,它知道测试何时结束 - 您可以对最后一次迭代进行清理。
关于java - JMeterThread 完成后如何运行代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30054718/