首页 文章

Jmeter - 如何使用Groovy对每个线程执行清理?

提问于
浏览
0

我有一个包含多个线程组的测试计划,每个线程组执行不同类型的请求 . 整个测试计划模拟我们的环境 .

每个线程都使用一个特殊的资源向服务器发送请求,该资源正在构建一次(使用Once Once Controller)并存储在Jmeter Variables中 . Jmeter变量不在线程之间共享,所以如果我有10个线程组,每个线程有10个线程,我创建了100个资源 .

一旦每个线程完成其工作,我想断开此资源 .

无法使用拆解线程组,因为Jmeter变量只能由存储它的线程看到 .

具体问题是:我怎么知道一个线程何时完成了Groovy的工作?

2 回答

  • 0

    我如何知道线程何时完成Groovy的工作?

    cannot ,但你可以获得当前的线程数和当前的迭代,如:

    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"));
    

    参考文献:

  • 0

    根据您的要求,FIFO插件似乎是一个不错的选择 . 请检查here .

    基本上,要清除的所有资源都会添加到队列中 - 有一个单独的线程组可以检查此队列并清除资源 .

相关问题