WireMock 意外返回 Null
WireMock unexpectedly returning Null
在使用 WireMock 模拟预期 return JSON 的端点时,我遇到了一个问题,它不会 return 预期的 JSON。查询 WireMock 的存根将在预期端点显示正确的 JSON。
虽然 运行 有几个数据点与我的理论相悖,但在出现此问题并且测试失败之前,我通常会成功通过 7 次测试。然而,在理论的顶部添加大约 5 秒的睡眠允许所有测试通过。将测试的内容包装在一个循环中将使它 运行 一个数据点多次,最终失败。添加睡眠将允许它进一步运行,但最终它会提供一个空值。
这是一个已知问题吗?有合适的解决方法吗?
原来是 Hystrix 的短路。每个测试用例都对三个端点之一进行存根,而另外两个则失败。在第七次测试之后,有 21 个调用,其中 2/3 失败了。短路在 20 次调用后中断,其中一半失败。
hystrix.command.default.circuitBreaker.requestVolumeThreshold=100
这将阻止它直接跳到后备。
在使用 WireMock 模拟预期 return JSON 的端点时,我遇到了一个问题,它不会 return 预期的 JSON。查询 WireMock 的存根将在预期端点显示正确的 JSON。
虽然 运行 有几个数据点与我的理论相悖,但在出现此问题并且测试失败之前,我通常会成功通过 7 次测试。然而,在理论的顶部添加大约 5 秒的睡眠允许所有测试通过。将测试的内容包装在一个循环中将使它 运行 一个数据点多次,最终失败。添加睡眠将允许它进一步运行,但最终它会提供一个空值。
这是一个已知问题吗?有合适的解决方法吗?
原来是 Hystrix 的短路。每个测试用例都对三个端点之一进行存根,而另外两个则失败。在第七次测试之后,有 21 个调用,其中 2/3 失败了。短路在 20 次调用后中断,其中一半失败。
hystrix.command.default.circuitBreaker.requestVolumeThreshold=100
这将阻止它直接跳到后备。