我为 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。
有什么建议么?