2016-08-16 74 views
0

雖然使用WireMock來模擬預期會返回JSON的端點,但遇到了一個問題,它不會返回預期的JSON。查詢WireMock的存根將在預期的端點上顯示正確的JSON。WireMock意外返回空

在針對我的理論運行幾個數據點時,我通常會在發生此問題並且測試失敗之前獲得7次成功通過的測試。然而,在理論的頂部增加約5秒的睡眠可以讓所有的測試都通過。在循環中包裝測試的內容將使其運行數次,最終失敗。在睡眠中添加將允許它進一步運行,但最終它會提供一個空值。

這是一個已知的問題?有沒有合適的解決方法?

+0

如果您不顯示任何代碼,我們該如何幫忙...... – Javant

+0

@Javant這個問題似乎只在整個項目中體現出來。我寫的使用相同管道的每個小概念驗證測試都成功了。我不得不提供整個項目,我無法做到這一點。 – Tott

+0

你是否動態添加存根(有沒有內存泄漏的可能性)?你能找出失敗的請求嗎?看看是否手動查詢可以重現問題。如果不是,請嘗試使用相同的請求來模擬高負載情況。 –

回答

0

原來是Hystrix的短路。每個測試案例都是三個端點中的一個端點,其他兩個端點都失敗了。在第二次測試之後,有21次通話和2/3次通話失敗。 20次呼叫後,短路切入,其中一半失敗。

hystrix.command.default.circuitBreaker.requestVolumeThreshold = 100

這將直接從跳繩到回退停止。