AWS Device Farm

在 AWS 云端的真实移动设备和桌面浏览器上提供应用程序自动化测试和远程访问的服务

概述

AWS Device Farm 是一项云测试服务,可在 AWS 托管的真实智能手机、平板电脑和桌面浏览器上执行应用程序的自动化测试和手动测试。由于使用物理设备而非模拟器,可以在接近实际用户环境的条件下检测崩溃、性能下降和 UI 错位。支持 Android、iOS 和 Web 应用程序,兼容 Appium、Espresso、XCTest、Calabash 等主流测试框架。测试结果包含截图、视频、日志和性能数据,有助于高效重现问题和定位原因。

设备池与测试执行机制

Device Farm 的测试执行从配置设备池开始。设备池定义了测试目标物理设备的集合,可按操作系统版本、制造商、屏幕尺寸等条件筛选。例如,可以配置「Android 12 以上的 Samsung 设备」「iOS 16 以上的 iPhone」等设备池,重现目标用户的实际环境。创建测试运行(Run)后,上传的应用二进制文件(.apk / .ipa)和测试包会分发到池中的各设备并行执行。每台设备上的测试在独立环境中运行,不会残留上次测试的数据。执行期间可以实时查看状态,完成后会生成每台设备的截图、视频录制、logcat / syslog、CPU 和内存使用率等性能数据。计费模式有按设备分钟的按量计费和月度定额的无限计划两种,可根据测试频率选择。

自动化测试框架与测试套件

Device Farm 原生支持多种自动化测试框架。Android 支持 Appium(Java / Python / Node.js)、Espresso、Calabash、UI Automator;iOS 支持 Appium、XCTest(XCUITest)、Calabash。Web 应用程序测试使用 Selenium WebDriver,在 Chrome、Firefox 桌面浏览器上执行。在测试套件配置中,可以通过测试规范文件(testspec.yml)定义测试执行前后的钩子处理,包括依赖库安装、环境变量设置、测试前数据准备、测试后工件收集等自定义操作。使用内置的模糊测试(Built-in Fuzz),无需编写测试代码即可通过随机 UI 操作检测崩溃。测试结果按套件和测试用例汇总,可以从失败测试的截图和日志快速定位问题所在。

CI/CD 集成与测试结果分析

将 Device Farm 集成到 CI/CD 流水线中,可以在每次代码变更时自动执行真机测试。与 AWS CodePipeline 的集成提供了原生操作提供程序,只需在构建阶段之后添加 Device Farm 作为测试阶段即可完成配置。从 Jenkins、GitHub Actions、Bitrise 等第三方 CI 工具可以通过 AWS CLI 或 AWS SDK 调用 Device Farm API。在测试结果分析方面,通过 Artifacts API 批量下载截图、视频和日志,并导入到内部测试报告系统的工作流非常实用。跟踪性能数据(CPU、内存、网络、FPS)的时间序列变化,可以检测每次发布的性能回归。将测试结果导出到 S3 并用 Athena 进行汇总分析,按设备和操作系统版本可视化故障趋势也是有效的运营方式。

共有するXB!