MockWebServer 响应延迟 - 测试超时

Posted

技术标签:

【中文标题】MockWebServer 响应延迟 - 测试超时【英文标题】:MockWebServer response delay - testing timeouts 【发布时间】:2017-01-31 00:39:35 【问题描述】:

我正在尝试使用 MockWebServer 来测试 HTTP 超时场景,该服务器会回答我使用 Retrofit/OkHttp 发送的测试请求。 (这个问题was asked before 几年前,但当时涉及到 MockWebServer 中的一个错误。此外,API 已经发生了相当大的变化,所以我认为重新发布这个问题是有道理的。)

似乎有几种相关的方法,但我希望通过一个明确的例子来解决这个问题:我不确定两者之间的区别..

.delayBody.throttleBody

此外,这两种方法似乎都只是延迟/限制正文 - 是否无法为响应标头设置超时? IE。类似于“在发出任何响应之前,在下一个传入请求后等待 X 秒”。

【问题讨论】:

这能回答你的问题吗? delay MockWebServer response 【参考方案1】:

尝试将响应的套接字策略设置为 NO_RESPONSE。

【讨论】:

+1 工作就像一个魅力,向我指出了非常有用的 SocketPolicy API,到目前为止我不知何故完全错过了...... 我想模拟改造请求,以便发生超时。我可以用这个方法吗? 在设置改造服务时,请确保您已将读取超时设置为较小的值,以免最终导致不必要的长时间运行测试。 这不会返回 SocketTimeoutException。它返回“HTTP FAILED: java.io.IOException: unexpected end of stream”

以上是关于MockWebServer 响应延迟 - 测试超时的主要内容,如果未能解决你的问题,请参考以下文章

使用 MockWebServer 时超时?

使用 Retrofit 和 MockWebServer 模拟无网络

如何设置soapui中一个测试步骤的超时?

测试时如何从 MockWebServer 中提取参数?

从 HttpClient SendAsync 请求获取响应时出现无法解释的超时和延迟

text 安卓中使用MockWebServer测试API