2016-08-16 3 views
0

WireMockを使用してJSONを返すと予想されるエンドポイントをモックしているときに、予想されるJSONが返されないという問題が発生しました。 WireMockにスタブを照会すると、予想されるエンドポイントに正しいJSONが表示されます。WireMockが突然Nullを返す

私の理論に対していくつかのデータポイントを走らせている間に、私は通常、この問題が発生してテストが失敗する前に7回のテストに合格します。しかし、理論の最上位に約5秒の睡眠を加えると、すべてのテストが合格になります。テストの内容をループ内にラップすると、1回のデータポイントが複数回実行され、最終的には失敗します。睡眠中に追加すると、それをさらに動かすことができますが、最終的には睡眠に役立ちます。

これは既知の問題ですか?適切な回避策はありますか?

+0

コードを表示しないとどうすればいいですか? – Javant

+0

@ Javant問題は、完全なプロジェクトでしか現れていないようです。同じパイプラインを使用している、私が書いた小さな概念実証テストがすべて成功します。私はできないプロジェクト全体を提供しなければならないだろう。 – Tott

+0

スタブを動的に追加していますか(メモリリークの可能性はありますか)?あなたは失敗した要求を特定できますか?手動でクエリを実行すると問題が再現できるかどうかを確認してください。そうでない場合は、同じ要求で高負荷のシナリオをシミュレートしてみてください。 –

答えて

0

ヒステリックのショートサーキットだった。各テストケースは3つのエンドポイントの1つをスタブしていましたが、他の2つは失敗していました。 7回目のテストの後、21回のコールと2/3回のコールが失敗しました。ショート回線は20回のコール後に切断され、その半分は失敗します。

hystrix.command.default.circuitBreaker.requestVolumeThreshold = 100

これはフォールバックにまっすぐにスキップからそれを停止します。