java - JMeterThread 完成后如何运行代码?

标签 java jmeter

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

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

编辑:

我正在使用一些专有插件。该插件存储在线程的队列 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/

相关文章:

java - 方法的运行时异常

java - 断言 JMockit 期望结果与构造的实例相同

soap - 如何在单个 JMX 文件中重用 SOAP/XML-RPC 请求

python - Jmeter与Python : how to import the packages

jmeter - 自动调优 taurus 容器中的 jvm

java - java线程与其他进程并行

java - 在 Java 中过滤文件数组

java - 接收 JMeter 需要 saveservice 属性文件才能继续错误

csv - 当Jmeter的响应数据是XML格式时,在输出的CSV文件中我们生成的内容是不可读的形式。如何克服它

java - 如何在不控制源代码的情况下 headless 运行 gui Java 应用程序?