从控制台执行脚本后不调用tearDown()

时间:2017-09-01 17:22:22

标签: java junit jmeter teardown

我有测试REST API的JMeter脚本。

配置了Junit Request

enter image description here

在测试期间,我发布了很多项目。我想在测试执行后清理DB。我把适当的逻辑放到了tearDown()

但是,我发现从控制台执行并不会调用teaDown()

从UI启动工作正常。

以下是tearDown()的实施:

@AfterClass
public static void tearDown() throws Exception {
    LOG.info("tearDown() called");
    deleteRecordingsFromDb();

    SCHEDULED_EXECUTOR_SERVICE.shutdown();
    if (client != null && !client.isClosed()) {
        client.close();
    }
    minClient = null;
}

另外,请注意使用了Throughput Shaping Timer。参数与-Jload-profiles="..."

一起传递

如何从控制台制作tearDown()可执行文件?

1 个答案:

答案 0 :(得分:0)

我认为你犯了一些错误:

  • 您想要调用一个使用@AfterClass注释的方法,但是您没有使用@Test注释的方法。所以JMeter甚至都不会发现你的方法。

  • 除非取消选中,否则JMeter会在执行@Test注释的方法时自动调用setup(@BeforeClass)和tearDown(@AfterClass)方法

因此,如果您想对整个测试进行清理,只需使用Groovy代码将代码放在常规JSR223 Sampler中,不需要JUnit请求。

请参阅: