我们使用Appium-TestNG创建了自动化框架,我们通过外部的RestFul Apis访问我们的后端服务器。后端服务器也基于AWS,并将设备场IP列入白名单。当我们在本地执行测试时它工作正常,但是当我们在AWS Device Farm上执行它时,它在尝试通过我们的apis访问后端服务器时给出“套接字异常”。
有人能为我们提供如何通过设备农场访问外部Rest APIS的解决方案吗?
答案 0 :(得分:1)
FAQ of Device Farm中的IP范围指向设备但不指向设备主机。设备主机可以拥有广泛的IP,但有两种方法(我迄今为止发现)在理论上解决这个问题:
如果您可以访问Device Farm的私有产品,则可以将VPC integration与设备和设备主机配合使用。因此,使用此方法不应该有任何白名单。
使用公开产品(metered和unmetered选项)时,我们应该能够利用API Gateway的VPC集成。在与REST API相同的VPC中使用私有NLB,我们可以创建VPC链接。我相信结束的架构应该是这样的:
然后我们可以使用API key或custom authorizers保护API。那么我们就可以调用这个API,它从设备主机链接到私有REST API。
注意:这可能不是最好的解决方法,具体取决于用例,因为设备主机可以访问API密钥。
另外(我知道你没有问这个但是想要链接到它),到目前为止我发现开发REST API调用的最简单方法是使用Postman成功调用REST API。然后使用code snippet功能在邮递员的支持语言中进行相同的调用。
希望有所帮助
-James