首页 > 解决方案 > 如何通过 AWS-Device Farm 中的 Appium-TestNG 框架访问 RestFul APIs?

问题描述

我们已经使用 Appium-TestNG 创建了我们的自动化框架,我们在其中通过 RestFul API 从外部访问我们的后端服务器。后端服务器也基于 AWS,并将设备场 IP 列入白名单。当我们在本地执行测试时,它工作正常,但是当我们在 AWS Device Farm 上执行它时,当尝试通过我们的 api 访问后端服务器时,它会给出“套接字异常”。

谁能给我们一个如何通过 Device Farm 访问外部 Rest APIS 的解决方案?

标签: appiumaws-device-farm

解决方案


Device Farm的常见问题解答中的 IP 范围指向设备,而不是设备主机。设备主机可能具有广泛的 IP,但理论上有两种方法(到目前为止我已经找到)来解决这个问题:

  1. 使用 Device Farm 的专用产品。

如果您有权访问 Device Farm 的专用产品,则可以使用VPC与设备和设备主机的集成。因此,使用此方法不需要任何白名单。

  1. 使用 API Gateway 的私有 VPC 集成并从测试中调用此 API

在使用公开发行(计量和不计量选项)时,我们应该能够利用 API Gateway 的 VPC 集成。在与 REST API 相同的 VPC 中使用私有 NLB,我们可以创建 VPC 链接。我认为最终的架构应该是这样的:

设备主机到 REST API

然后我们可以使用API 密钥自定义授权者来保护 API 。因此,我们可以调用此 API,该 API 从设备主机链接到私有 REST API。

注意:这可能不是最好的解决方法,具体取决于用例,因为设备主机将有权访问 API 密钥。

此外(我知道你没有问这个,但无论如何都想链接到它),到目前为止,我发现开发 REST API 调用的最简单方法是使用Postman成功调用 REST API。然后使用代码片段功能在邮递员的支持语言中进行相同的调用。

希望有帮助

-詹姆士


推荐阅读