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を使用するサンプルテストは適切に機能します。
助言がありますか?