1

我为 JMeter 实现了一个自定义 AbstractJavaSamplerClient,核心 runTest 是这样的:

SampleResult results = new SampleResult();
results.sampleStart();
client.request("connector.ninjaHandler.savemove", opMsg, this);

while(optcode == null){
    try {
        Thread.sleep(10);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
}

results.sampleEnd();
results.setSuccessful(optcode);

但是,我发现Thread.sleep()会导致这样的异常:

未捕获的异常 java.lang.IllegalStateException:计时器已取消。有关详细信息,请参阅日志文件。

我四处搜索,人们说 thread.sleep 会导致计时器失败。但是,我无法避免它,因为我正在测试一个 web-socket 服务器,这意味着我需要等待服务器响应......(如果我在示例开始/结束之间删除 thread.sleep,它运行正常)

但是,示例测试org.apache.jmeter.protocol.java.test.SleepTest运行良好,它使用了 thread.sleep。

有什么建议么?

4

1 回答 1

2

这很荒谬,因为我发现问题来自我使用的库......
这里修复补丁后,它可以工作!

于 2013-03-27T00:33:38.067 回答