保证放心-使用RestAssured进行测试时出现操作超时错误。但是相同的端点可以在浏览器中正常工作

时间:2018-10-15 07:12:53

标签: java rest-assured

我有一个使用RestAssured进行测试的端点。在浏览器/邮递员中打开该端点时,该端点工作正常。但是,在尝试使用RestAssured进行测试时,

我得到Operation Timed Out Error

我必须连接到代理才能使该端点在浏览器中正常工作。放心使用相同的代理服务器。

下面的示例代码:

given().proxy("My_Proxy_URL_HERE",8080).when().get("My_API_URL_Here").then().log().all();

我得到的答复是

  

“操作超时”,状态码为503。

我需要您的建议,可能是什么问题,如何调试等。任何建议均应感谢。预先感谢。

1 个答案:

答案 0 :(得分:1)

此行为可能有很多原因:

  • 地址是错误的,并且由于存在一些负载均衡器/代理,可以将其配置为等待一段时间,然后以503状态代码进行响应。 请注意,503不是“请求超时”,而是“服务不可用”。

  • 请求url很好,但是请求缺少一些标头,因此负载均衡器/代理无法将请求路由到所需的服务器。

如何检查?在这种情况下,可以使用一些方便的工具:

  1. 检查负载平衡器/代理甚至服务器的访问日志(如果可能)-并查看请求。

  2. 如果没有帮助,请尝试比较来自保证保证请求和常规请求的请求。例如,您可以使用Burp之类的工具,还有其他工具,或者甚至可以自己动手。

这个想法很简单: 在本地计算机的某个端口上启动“拦截器”(例如9999)

配置拦截器以将所有请求转发到您选择的代理(由URL标识-My_Proxy_URL_HERE和端口8080)。 现在,请放心,必须调用localhost:9999,此工具将拦截请求。您将能够检查其内容-标头,正文,http方法-所有内容。 对浏览器请求进行同样的操作并进行比较。