appium - 如何通过 AWS-Device Farm 中的 Appium-TestNG 框架访问 RestFul APIs?
问题描述
我们已经使用 Appium-TestNG 创建了我们的自动化框架,我们在其中通过 RestFul API 从外部访问我们的后端服务器。后端服务器也基于 AWS,并将设备场 IP 列入白名单。当我们在本地执行测试时,它工作正常,但是当我们在 AWS Device Farm 上执行它时,当尝试通过我们的 api 访问后端服务器时,它会给出“套接字异常”。
谁能给我们一个如何通过 Device Farm 访问外部 Rest APIS 的解决方案?
解决方案
Device Farm的常见问题解答中的 IP 范围指向设备,而不是设备主机。设备主机可能具有广泛的 IP,但理论上有两种方法(到目前为止我已经找到)来解决这个问题:
- 使用 Device Farm 的专用产品。
如果您有权访问 Device Farm 的专用产品,则可以使用VPC与设备和设备主机的集成。因此,使用此方法不需要任何白名单。
- 使用 API Gateway 的私有 VPC 集成并从测试中调用此 API
在使用公开发行(计量和不计量选项)时,我们应该能够利用 API Gateway 的 VPC 集成。在与 REST API 相同的 VPC 中使用私有 NLB,我们可以创建 VPC 链接。我认为最终的架构应该是这样的:
然后我们可以使用API 密钥或自定义授权者来保护 API 。因此,我们可以调用此 API,该 API 从设备主机链接到私有 REST API。
注意:这可能不是最好的解决方法,具体取决于用例,因为设备主机将有权访问 API 密钥。
此外(我知道你没有问这个,但无论如何都想链接到它),到目前为止,我发现开发 REST API 调用的最简单方法是使用Postman成功调用 REST API。然后使用代码片段功能在邮递员的支持语言中进行相同的调用。
希望有帮助
-詹姆士
推荐阅读
- python - VoiceClient.play() 不播放任何音频
- c# - 如何创建符合特定字符要求的随机密码?
- node.js - Node.js gmail api 图像签名
- c# - 如何限制 datagridview 单元格中引入的数字?
- javascript - 如何使用Jquery计算文本区域中只有字母而没有数字的单词?
- java - 将 Spring @ModelAttribute 与 @RestController 一起使用
- jquery - jquery-ui 1.11.0 版是否支持对话框?
- html - 我需要创建一个比我的普通表更难的表
- javascript - Vue-CLI 3:如何在 webpack 包中包含 /src 目录之外的 LESS 文件?
- python - 使用 Sympy 求解方程时遇到问题?想法?