在真实移动设备上测试
一般性问题
AWS Device Farm 允许开发人员通过在 AWS 云中测试真实 Android 和 iOS 设备并与其进行交互来提高应用程序性能、客户满意度和加快上市时间。开发人员可以上传他们的应用程序,测试脚本并在数百个真实设备上并行运行自动测试,从而可在几分钟内获得结果、屏幕截图、视频和性能数据。他们还可以通过滑动、手势以及通过 Web 浏览器与设备进行交互来调试和重现客户问题。
问:哪些人应使用 AWS Device Farm?为什么?
AWS Device Farm 是专为要构建和测试移动应用程序并为其提供支持以提高应用程序性能的开发人员、QA 团队和客户支持代表设计的。鉴于当前设备型号繁多、固件和操作系统版本各异、运营商和制造商定制服务千差万别,再加上对远程服务和其他应用程序的依赖性,应用程序的新能变得日益重要和复杂。AWS Device Farm 通过在多个设备上执行测试来加速开发流程,使开发人员、QA 团队和支持专业人员能够执行自动测试和手动任务,例如重现客户问题、探索测试新功能和执行手动测试计划。此外,AWS Device Farm 还可节省大量成本,因为客户无需使用内部设备实验室、无需聘用实验室管理人员,也无需进行自动化基础设施开发。
问:AWS Device Farm 支持测试哪些类型的应用程序?
AWS Device Farm 支持测试原生和混合 Android、iOS 和 Web 应用程序以及跨平台应用程序,其中包括使用 PhoneGap、Titanium、Xamarin、Unity 和其他框架构建的应用程序。
问:AWS Device Farm 使用模拟器还是仿真器?
AWS Device Farm 测试在真实的设备上运行。此类设备既包括 OEM 设备,也包括运营商的自有品牌设备。
设置测试与远程访问会话
问:如何开始使用 AWS Device Farm?
请参阅我们的入门指南。
问:AWS Device Farm 控制台支持哪些浏览器?
AWS Device Farm 支持 Internet Explorer 9 或更高版本,以及最新版本的 Chrome、Firefox 和 Safari。
问:哪些浏览器支持测试 Web 应用程序?
Web 应用程序可在 Android 上的 Chrome 和 iOS 上的 Safari 中进行测试。
问:应用程序和测试的最大文件大小是多少?
AWS Device Farm 最大支持 4GB 的文件。
问:我是否需要检测自己的应用程序或提供源代码?
您无需进行检测或提供源代码即可运行内置测试。Android 应用程序可以按原样提交。构建 iOS 应用程序时,应将“iOS 设备”(而不是模拟器)设为目标。
问:我的应用程序、测试和其他文件是否会存储在服务器上? 如果是,会存储多久?
应用程序和测试包会在 30 天后自动移除。日志、视频录像和其他构件可存储 400 天。您随时可以通过 AWS Device Farm 控制台或 API,选择删除文件和结果。
问:AWS 如何在我的测试完成后清理设备?
测试执行完成后,我们会在每个设备上执行一系列清理任务,其中包括卸载您的应用程序。如果我们无法验证应用程序卸载或任何其他清理步骤的结果,那么该设备会被删除,不再可用。
虽然我们不断增设更多清理步骤并改进清理过程,但在某些情况下,数据可能会在会话之间保留,特别是您在应用程序环境外使用设备系统时。出于这个原因,并且由于 AWS Device Farm 会记录您在使用每个设备期间发生的活动的视频和日志,因此,建议您在自动测试和远程访问会话期间避免提供或输入敏感信息,诸如帐户信息(例如 Google 账户和 Apple ID)、个人信息和其他安全敏感信息。
问:你们是否会修改我的应用程序?
在 iOS 上,我们会使用通配符配置文件替换嵌入式预置配置文件,并对应用程序重新签名。如果您提供的话,那么我们会在安装前将辅助数据添加到应用程序包中,这样辅助数据就可以在您的应用程序沙盒中显示了。如果对 iOS 应用程序重新签名,则会撤销特定权限。这包括应用程序组、关联的域、Game Center、HealthKit、HomeKit、无线配件配置、App 内购买、App 间音频、Apple Pay、推送通知和 VPN 配置与控制。
在 Android 上,我们对应用程序重新签名。这可能会破坏依赖应用程序签名的功能,如 Google Maps Android API。此外,这样做还可能会触发 DexGuard 等产品的反盗版和防篡改检测。对于内置测试,我们可能会修改清单,以添加获取和保存屏幕截图所需的权限。
选择设备
问:AWS Device Farm 中提供了哪些设备? 你们如何选择产品队列中的设备?
AWS Device Farm 包含大量 Android、iOS 和 Fire OS 设备,且产品队列还在不断增加。我们会不断添加制造商发布的热门新设备,还会在新版操作系统发布时增加新设备。请参阅可用设备列表。
问:AWS Device Farm 是否包含来自欧洲、中国和印度各国市场的设备?
我们目前拥有来自印度的设备。我们将市场数据和客户反馈结合在一起,不断更新产品队列的内容。如果您想查看产品队列中未列出的设备,请告知我们。
问:我该如何选择设备? 我能否在同一台设备上进行重复测试?
对于自动测试,您可通过设备池这一集合形式选择设备。我们会自动提供一些精选设备池,但您也可以创建自己的设备池。在执行期间,测试会针对指定池中与您的应用程序和测试兼容的所有设备运行。对于远程访问,您可基于制造商、型号、运营商变体和操作系统版本选择所需设备。然后,您可以选择上传应用程序和其他数据,以及配置其他设备设置。Device Farm 会找到与您的请求匹配的可用设备,并在浏览器中显示该设备的显示屏。然后,您可以与该设备进行交互,并捕获屏幕截图和视频。
问:AWS Device Farm 测试设备上是否预安装了应用程序?
是的,测试设备上包含许多由设备制造商或运营商预安装的应用程序。
问:设备能否与 Internet 上的其他可用服务或系统通信?
可以。所有设备均拥有可访问 Internet 的 WiFi 连接。如果您的系统在内部(即在企业防火墙之后),可以允许 IP 范围 54.244.50.32-54.244.50.63。所有设备的流量将出自此范围内的 IP。
问:是否可以测试不同的运营商连接和条件?
尽管您不能测试实际的运营商连接,但您可以使用网络调整功能模拟连接类型和条件。在计划运行时,您可以选择现成的网络配置(如“3G”或“Lossy LTE”),也可以创建自己的网络配置,以控制吞吐量、抖动和损失等参数。来自设备的所有 WiFi 流量会在测试期间按照您选择的配置进行调整和操作。您也可以从测试脚本中更改网络参数,从而模拟动态环境。
问:我能否使用设备打电话或发送短信?
不能,设备没有连接到运营商网络,所以不能拨打电话或发送短信。
问:我能否使用设备摄像头?
可以,您可以使用设备的前置和后置摄像头。鉴于设备的安装方式,图像和视频可能会看上去模糊不清,并且发暗。
测试应用程序
问:我并没有自动测试脚本。内置测试有何用途?
借助内置兼容性测试套件,您可以在应用程序上安装、卸载、启动和运行 Fuzz。
问:Fuzz 有何用途?
启动后,Fuzz 便会立即在您的 UI 上执行模糊测试。它会迅速将用户的随机输入内容(触摸、轻扫、键盘输入)流式传输到您的应用程序中。您可以配置事件数、事件间延迟以及用于随机化事件的种子。对多个测试使用相同的种子会生成顺序相同的事件。
问:我使用自动化框架进行测试。你们支持哪些框架?
AWS Device Farm 支持对 Android 和 iOS 平台的本机、混合和 Web 应用程序进行测试。默认支持以下框架:Appium Java JUnit、Appium Java TestNG、Appium Python、Appium Ruby、Appium NodeJS、Instrumentation(包括 JUnit、Espresso 和大多数基于仪器的测试)和 XCTest(包括 XCUI 和 KIF)。有关更多信息和受支持框架的完整列表,请访问我们的文档。
问:你们支持哪些适用于 Web 应用程序的测试框架?
您可以运行用 Appium Java JUnit、Appium Java TestNG 或 Appium Python 编写的测试。
问:你们能否增加对修改后的框架或我自行设计的框架的支持?
我们一直都在评估需要支持的框架。请联系我们。
问:AWS Device Farm 如何确定在测试过程中进行屏幕截图的时间?
如果您使用的是受支持的自动化框架,则可以完全控制并决定进行屏幕截图的时间。这些屏幕截图会自动添加到您的报告中。
问:(Android) 设备上是否提供了 Google Play 服务? 安装的是哪个版本?
是的,Google Play 服务已安装在支持此类服务的设备上。此类服务会不断更新新版本。
问:(Android) 设备上是否有默认的 Google 账户?
没有,设备上没有有效的 Google 账户。
问:AWS Device Farm 是否支持自动记录和播放?还是需要我编写自己的脚本?
AWS Device Farm 支持包含脚本记录和播放工具的框架(如 Espresso 和 Robotium)。
问:(iOS) 我是否需要将你们提供的 UDID 添加到我的预置配置文件中?
否。AWS Device Farm 会自动替换预置配置文件,并对您的应用程序重新签名,以便可以在我们的设备上部署您的应用程序。
问:(iOS) 我的应用程序不包含调试符号。我能否将 dSYM 文件提供给 AWS Device Farm?
不能。不过,您可以下载日志,并在本地将堆栈跟踪符号化。
问:(Android) 我的应用程序遭到屏蔽。我是否还可以在 AWS Device Farm 上测试我的应用程序?
可以,如果您使用 ProGuard 的话。如果您将 DexGuard 与反盗版措施一起使用,那么我们将无法对您的应用程序进行重新签名,进而也就无法对其进行测试。
问:我的应用程序投放广告。这些广告会在设备上展示吗? 我的广告提供程序会将此标记为滥用行为并禁止我的账户吗?
虽然设备能访问 Internet,但我们无法保证广告会展示。我们建议您从 AWS Device Farm 上测试的生成文件中移除广告。
问:我能否将访问托管设备的计算机或其 Shell 作为测试的一部分? 我能否将它连接到 Internet?
可以。如果您使用的是客户端服务器框架(如 Calabash、Appium 或 UI Automation),则可以访问 Internet 并可从主机执行有限的 Shell 命令。
问:我想提供媒体或其他数据,以供我的应用程序使用。该怎么做?
您可以提供最大 4GB 的 .zip 存档。在 Android 上,它会被提取到外部存储器的根中;在 iOS 上,它会被提取到您的应用程序沙盒中。对于 Android 扩展文件 (OBB),我们会根据操作系统版本自动将文件放置在相应的位置上。有关详细信息,请参阅开发人员指南。
问:我的应用程序需要有依赖关系才能测试所有功能。我能否安装其他应用程序?
能,您可以选择多个应用程序及其安装顺序。这些关联的应用程序会在测试开始前进行安装。
问:我能否测试我的应用程序的升级流程? 如何安装我的旧版应用程序?
能,要测试升级流程,您可以先上传并安装您的旧版应用程序,然后再安装和测试新版应用程序。
问:我的应用程序使用定位服务。我能否指定设备的物理位置?
能,您可以提供纬度和经度坐标来覆盖设备的 GPS。
问:我能否运行本地化测试? 如何更改设备语言?
能,您可以提供区域设置(例如“zh_CN”)来覆盖设备上的默认区域设置。
问:需要等待多长时间才能开始测试?
测试会立即进入执行队列,通常会在几分钟内开始。如果一台或多台设备不可用,则这些设备的测试会一直处于执行队列中,直到设备可用时为止。其他设备的测试会继续运行。
问:测试时间上限是多长?
测试时间上限为 150 分钟。
查看结果
问:AWS Device Farm 测试报告中包含什么?
AWS Device Farm 测试报告中包含通过/未通过信息、崩溃报告、测试日志、设备日志、屏幕截图、视频和性能数据。报告中既包含每台设备的详细数据,也包含简略结果(例如特定错误的发生次数)。远程访问结果中包含日志和会话视频。
问:AWS Device Farm 报告中包含哪些设备日志?
AWS Device Farm 报告中包含完整的 logcat (Android) 和设备日志 (iOS),还包含来自设备主机和指定测试框架的日志。
问:我的测试生成并保存其他日志文件。我会在 AWS Device Farm 报告中看到这些文件吗?
如果您将数据写入 logcat (Android) 或设备日志 (iOS),则报告中会包含这些日志条目。虽然您可能使用设备或设备主机的 Internet 连接通过测试脚本传输文件,但 AWS Device Farm 不会收集任何非标准日志或其他构件。
定价
问:AWS Device Farm 的费用是多少?
定价以设备分钟数为依据,设备分钟数由每台选定设备上的测试持续时间来决定。AWS Device Farm 支持免费试用 1000 设备分钟。*此后,设备分钟数每增加一分钟,就会向客户收取 0.17 USD 的费用。随着测试需求的增长,您可以选用无限制的测试计划,即每台设备每月支付 250 USD 的固定费用,便可以进行无限量测试。
问:免费试用是如何操作的?
前 1000 设备分钟不收取费用。这是一次性试用,不能续订。一旦为您分配的试用结束,将按照每设备分钟 0.17 USD 的标准价格计费。
问:设备分钟数是什么?
设备分钟数是计费单位。设备分钟数是指在选定用于运行测试的每台设备上安装、执行和卸载您的应用程序和测试的时间(以分钟为单位)。无论设备、测试或应用程序的类型如何,单价都保持不变。我们只会对已完成且没有发生任何设备错误或系统错误的测试按设备分钟数收取费用。同样,对于远程访问会话,设备分钟数是基于从按照您的规格准备设备到从该设备上完全删除您放置的任何应用程序和数据所耗时间计量的。
您可以根据业务需求动态地增减使用量,而无需遵循任何上限或预付承诺。
问:免费试用是如何操作的?
前 1000 设备分钟不收取费用。*这是一次性试用,不能续订。一旦为您分配的试用结束,将按照每设备分钟 0.17 USD 的标准价格计费。
问:什么是无限制计划以及设备插槽是如何工作的?
无限制计划支持无限量的测试和远程访问,最低每月 250 USD。无限制定价取决于您为各种使用类型(即自动测试或远程访问)和各个设备系列(即 Android 或 iOS)购买的设备插槽数量,每个插槽每月的费用为 250 USD。设备插槽对应并行测试。
例如,如果您购买了 10 个 Android 自动化测试设备插槽并安排对 100 个 Android 设备执行一次测试,Device Farm 将同时对最多 10 个设备执行测试,直至针对所选设备进行的所有测试全部完成。购买更多插槽可使您更快地得到结果。无论您在一个月内执行多少次测试或发起多少个远程访问会话,都按照每个设备槽位每月 250 USD 的统一费率计费。您可以随时取消对一个或多个设备槽位的订阅,取消会在下一个续订日期 (与购买第一个活动设备槽位的日期相同的日期) 生效。您可以从 AWS Device Farm 控制台、AWS 命令行界面 (AWS CLI) 或 AWS Device Farm API 购买插槽。要了解更多信息,请参阅我们的文档。
问:如果我的测试需求改变,并且需要添加或删除设备插槽,将会怎样?
您可以随时添加设备插槽,它们是即时可用的。您也可以随时取消对一个或多个设备槽位的订阅,取消会在下一个续订日期(与您购买第一个活动设备槽位的日期相同的日期)生效。
问:如果我正在用无限量计划,还能否继续使用计量收费?
可以。创建测试时,您可以选择使用无限制设备,或者有限设备分钟数。由于并行测试并非只能使用计量收费,因此,您可以将使用自己的设备插槽执行测试的速度作为基准,灵活地加快测试执行速度。
问:什么是私有设备?
私有设备是您的账户专用的手机或平板电脑的物理实例。私有设备可以具有自定义的静态配置并可以运行自定义操作系统映像。我们可以代您部署每个设备,并在您的订阅结束时将其删除。
问:私有设备的订阅方式是什么,定价是多少?
您账户下的每个私有设备都被视为一个私有设备订阅。月度订阅价格按设备费用分为不同的级别,起价为 200 USD/月。在最短订阅期结束后,您可以随时选择取消订阅。如需了解更多信息,请联系我们。
问:能否同时使用私有设备和公共设备?
可以。在选择用于测试运行或远程访问会话的设备时,您将同时看到私有设备和公共设备。您也可以创建同时包含私有设备和公共设备的设备池。有关私有设备的更多信息,请联系我们。
在桌面浏览器上测试
问:什么是 Selenium?
Selenium 是一个自动执行 Web 浏览器交互的开源框架。您可以在此处了解有关 Selenium 的更多信息。
问:什么是在 AWS Device Farm 上执行桌面浏览器测试?
通过 Device Farm,可以在 AWS 云中托管的各个不同的桌面浏览器和浏览器版本上执行 Selenium 测试。Device Farm 对 Selenium 测试采用客户端执行模型,即,您的测试在您自己的本地计算机上执行,但将通过 Selenium API 与 AWS Device Farm 上托管的浏览器进行交互。
问:如何开始在 AWS Device Farm 上执行桌面浏览器测试?
要开始执行,请参阅此处的入门指南。
问:浏览器托管在什么操作系统上?
所有浏览器都托管在 Microsoft Windows Server 上运行的 EC2 Windows 实例上。
问:AWS Device Farm 支持哪些桌面浏览器?
可以在此处查看支持的桌面浏览器及浏览器版本的列表。
问:AWS Device Farm 支持哪些所需功能?
可以在此处查看 Device Farm 支持的 Selenium 所需功能列表。
问:哪些构件可用于排查测试故障?
Device Farm 生成整个测试的控制台日志、Web 驱动程序日志、操作日志和视频录像,以帮助您排查测试故障。
问:是否可以使用 AWS Device Farm 在真实移动设备上测试 Web 应用程序?
可以。Device Farm 支持使用 Appium 在真实移动设备上测试 Web 应用程序。请访问我们的 Appium Web 测试开发人员指南以了解更多信息。请注意,对于在真实移动设备上执行的测试,Device Farm 采用服务器端执行模型,因此您需要将测试上传到服务。
问:在 AWS Device Farm 上执行桌面浏览器测试有哪些限制?
可以从此处了解使用此功能的所有限制。
问:在 AWS Device Farm 上执行桌面浏览器测试的费用是多少?
定价按实例分钟数计算,实例分钟数根据在每个选定浏览器实例上的测试持续时间来决定。每个浏览器实例分钟数的费用是 0.005 USD。
问:什么是实例分钟数?
实例分钟数是在 Device Farm 上执行桌面浏览器测试的计费单位。实例分钟数用于衡量在选定用于运行测试的每个浏览器实例上执行测试所需的时间(以分钟为单位)。不论您选择的是哪种浏览器或哪个浏览器版本,单价不变,都是 0.005 USD。我们不向您收取启动、初始化或销毁托管浏览器的 EC2 实例所需时间的费用。