如何通过AWS-Device Farm中的Appium-TestNG框架访问RestFul Apis?

时间:2018-05-18 06:13:31

标签: appium aws-device-farm

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

有人能为我们提供如何通过设备农场访问外部Rest APIS的解决方案吗?

1 个答案:

答案 0 :(得分:1)

FAQ of Device Farm中的IP范围指向设备但不指向设备主机。设备主机可以拥有广泛的IP,但有两种方法(我迄今为止发现)在理论上解决这个问题:

  1. 使用Device Farm中的私有产品。
  2. 如果您可以访问Device Farm的私有产品,则可以将VPC integration与设备和设备主机配合使用。因此,使用此方法不应该有任何白名单。

    1. 使用API​​网关的private VPC integration并从测试中调用此API
    2. 使用公开产品(meteredunmetered选项)时,我们应该能够利用API Gateway的VPC集成。在与REST API相同的VPC中使用私有NLB,我们可以创建VPC链接。我相信结束的架构应该是这样的:

      Device host to REST API

      然后我们可以使用API keycustom authorizers保护API。那么我们就可以调用这个API,它从设备主机链接到私有REST API。

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

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

      希望有所帮助

      -James