本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在 Device Farm 中创建测试运行
你可以使用 Device Farm 控制台或 Device Farm API 来创建测试运行。 AWS CLI您也可以使用支持的插件,如适用于 Device Farm 的 Jenkins 或 Gradle 插件。有关插件的更多信息,请参阅 工具和插件。有关运行的信息,请参阅运行。
先决条件
您在 Device Farm 中必须有一个项目。按照在 Device Farm 中AWS创建项目中的说明操作,然后返回此页。
创建测试运行(控制台)
登录 DeviceFarm 控制台,网址为 https://console.aws.amazon.com/devicef
arm。 -
在导航窗格中,选择移动设备测试,然后选择项目。
-
如果您已具有项目,可以将您的测试上传到现有项目。否则,选择新建项目,输入项目名称,然后选择创建。
-
打开您的项目,然后选择 Create a new run (创建新运行)。
-
在选择应用程序页面上,选择移动应用程序或 Web 应用程序。
-
上传您的应用程序文件。您也可以拖放文件或选择最近上传的文件。如果您要上传 iOS 应用程序,请确保选择 iOS device (iOS 设备),而不是模拟器。
-
(可选)在 Run name (运行名称) 中输入名称。默认情况下,Device Farm 使用应用程序文件名。
-
选择下一步。
-
在 Configure (配置) 页面上,选择可用的测试套件之一。
注意
如果您没有任何可用的测试,请选择 Built-in: Fuzz (内置: 模糊) 来运行标准的内置测试套件。如果您选择了 Built-in: Fuzz (内置: 模糊) 并且出现了 Event count (事件计数)、Event throttle (事件限制) 和 Randomizer seed (随机程序种子) 框,则可以更改或保留值。
有关可用测试套件的信息,请参阅在 Dev AWS ice Farm 中测试框架和内置测试。
-
如果您没有选择内置: 模糊,请选择选择文件,然后浏览到并选择包含您的测试的文件。
-
对于您的执行环境,请选择在标准环境中运行测试或自定义您的测试环境。有关更多信息,请参阅 在 Dev AWS ice Farm 中测试环境。
-
如果您使用的是标准测试环境,请跳到步骤 13。如果您使用的是带有默认测试规范YAML文件的自定义测试环境,请跳至步骤 13。
-
如果要在自定义测试环境中编辑默认测试规范,请选择编辑以更新默认YAML规范。
-
如果您更改了测试规范,请选择另存为新版本以更新测试规范。
-
-
如果您要配置视频录制或性能数据捕获选项,请选择 Advanced Configuration (高级配置)。
-
选择启用视频记录以在测试期间启用视频记录。
-
选择启用应用程序性能数据捕获以启用从设备捕获性能数据。
注意
如果您有私有设备,还将显示特定于私有设备的配置。
-
-
选择下一步。
-
在 Select devices (选择设备) 页面上,执行下列操作之一:
-
要选择内置设备池以对其运行测试,请为 Device pool (设备池) 选择 Top Devices (主要设备)。
-
要创建您自己的设备池以对其运行测试,请按照创建设备池中的说明操作,然后返回到此页面。
-
如果您在前面创建了自己的设备池,请为 Device pool (设备池) 选择您的设备池。
有关更多信息,请参阅 Device Farm 中的AWS设备支持。
-
-
选择下一步。
-
在 Specify device state (指定设备状态) 页面上:
-
要为 Device Farm 提供其他将在运行期间使用的数据,请在添加额外数据旁边选择选择文件,然后浏览到并选择包含这些数据的 .zip 文件。
-
要安装 Device Farm 将在运行期间使用的其他应用程序,请在安装其他应用程序旁边选择选择文件,然后浏览到并选择包含该应用程序的 .apk 或 .ipa 文件。为您要安装的其他应用程序重复此操作。在上传应用程序之后,您可以拖放应用程序来更改应用程序的安装顺序。
-
要指定运行期间NFC是否启用 Wi-Fi GPS、蓝牙或,请在 “设置无线电状态” 旁边选中相应的复选框。
-
要为运行预设设备纬度和经度,请在 Device location (设备位置) 旁边输入坐标。
-
要为运行预设设备区域设置,请在设备区域设置中选择区域设置。
注意
目前,设置设备无线电状态和区域设置仅适用于 Android 原生测试。
-
-
选择下一步。
-
当您到达检查和开始运行页面时,可以指定测试运行的执行超时值。如果您使用的是无限制测试槽,请确认选择 Run on unmetered slots (在非计量槽上运行)。
-
输入值或使用滑块条来更改执行超时值。有关更多信息,请参阅 在 Dev AWS ice Farm 中为测试运行设置执行超时。
-
选择 Confirm and start run (确认并启动运行)。
Device Farm 将在设备可用后立即启动运行,通常在几分钟内启动。在测试运行期间,Device Farm 控制台会在运行表中显示一个待处理图标
。运行中的每台设备也将以待处理图标开始,然后在测试开始时切换到正在运行的图标
。每次测试完成后,设备名称旁边都会显示一个测试结果图标。完成所有测试后,运行旁边的待处理图标将变为测试结果图标。
如果您想停止测试运行,请参阅 在 Device Farm 中AWS停止运行。
创建测试运行 (AWS CLI)
您可以使用 AWS CLI 来创建测试运行。
步骤 1:选择一个项目
您必须将您的测试运行与一个 Device Farm 项目关联。
-
要列出您的 Device Farm 项目,请运行 list-projects。如果您没有项目,请参阅在 Device Farm 中AWS创建项目。
示例:
aws devicefarm list-projects
响应中将包含您的 Device Farm 项目的列表。
{ "projects": [ { "name": "MyProject", "arn": "arn:aws:devicefarm:us-west-2:123456789101:project:5e01a8c7-c861-4c0a-b1d5-12345EXAMPLE", "created": 1503612890.057 } ] }
-
选择要与您的测试运行关联的项目,并记下其 Amazon 资源名称 (ARN)。
步骤 2:选择一个设备池
您必须选择一个设备池以与您的测试运行关联。
-
要查看您的设备池,请运行list-device-pools,指定您的项目ARN。
示例:
aws devicefarm list-device-pools --arn
arn:MyProjectARN
响应中将包含内置的 Device Farm 设备池,如 Top Devices,以及之前为此项目创建的任何设备池:
{ "devicePools": [ { "rules": [ { "attribute": "ARN", "operator": "IN", "value": "[\"arn:aws:devicefarm:us-west-2::device:example1\",\"arn:aws:devicefarm:us-west-2::device:example2\",\"arn:aws:devicefarm:us-west-2::device:example3\"]" } ], "type": "CURATED", "name": "Top Devices", "arn": "arn:aws:devicefarm:us-west-2::devicepool:example", "description": "Top devices" }, { "rules": [ { "attribute": "PLATFORM", "operator": "EQUALS", "value": "\"ANDROID\"" } ], "type": "PRIVATE", "name": "MyAndroidDevices", "arn": "arn:aws:devicefarm:us-west-2:605403973111:devicepool:example2" } ] }
-
选择一个设备池,并记下它ARN。
您也可以创建一个设备池,然后返回到此步骤。有关更多信息,请参阅 创建设备池 (AWS CLI)。
步骤 3:上传您的应用程序文件
要创建您的上传请求并获得亚马逊简单存储服务 (Amazon S3) Simple Service 的预签名URL上传,您需要:
-
你的项目ARN。
-
您的应用程序文件的名称。
-
上传的类型。
有关更多信息,请参阅 create-upload。
-
要上传文件,请使用
–-project-arn
、--name
和--type
参数运行 create-upload。此示例将创建一个用于 Android 应用程序的上传:
aws devicefarm create-upload -–project-arn arn:MyProjectArn -–name
MyAndroid.apk
-–type ANDROID_APP响应包括您的应用程序上传ARN和预签名URL。
{ "upload": { "status": "INITIALIZED", "name": "MyAndroid.apk", "created": 1535732625.964, "url": "https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/ExampleURL", "type": "ANDROID_APP", "arn": "arn:aws:devicefarm:us-west-2:123456789101:upload:5e01a8c7-c861-4c0a-b1d5-12345EXAMPLE" } }
-
记下应用程序上传ARN和预签名URL。
-
使用预签名URL的 Amazon S3 上传您的应用程序文件。本示例使用 curl 上传 Android .apk 文件:
curl -T MyAndroid.apk "https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/ExampleURL"
有关更多信息,请参阅 Amazon 简单存储服务用户指南URLs中的使用预签名上传对象。
-
要检查您的应用程序上传状态,请运行get-upload并指定应用程序上传ARN的状态。
aws devicefarm get-upload –-arn arn:MyAppUploadARN
等到响应中的状态为 SUCCEEDED 之后,再上传您的测试脚本程序包。
{ "upload": { "status": "SUCCEEDED", "name": "MyAndroid.apk", "created": 1535732625.964, "url": "https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/ExampleURL", "type": "ANDROID_APP", "arn": "arn:aws:devicefarm:us-west-2:123456789101:upload:5e01a8c7-c861-4c0a-b1d5-12345EXAMPLE", "metadata": "{"valid": true}" } }
步骤 4:上传您的测试脚本程序包
接下来,您将上传测试脚本程序包。
-
要创建您的上传请求并获取 Amazon S3 预签名上传URL,请create-upload使用
–-project-arn
--name
、和--type
参数运行。此示例将创建一个 Appium Java TestNG 测试程序包上传:
aws devicefarm create-upload –-project-arn
arn:MyProjectARN
-–nameMyTests.zip
–-type APPIUM_JAVA_TESTNG_TEST_PACKAGE响应包括您的测试包上传ARN和预签名URL。
{ "upload": { "status": "INITIALIZED", "name": "MyTests.zip", "created": 1535738627.195, "url": "https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/ExampleURL", "type": "APPIUM_JAVA_TESTNG_TEST_PACKAGE", "arn": "arn:aws:devicefarm:us-west-2:123456789101:upload:5e01a8c7-c861-4c0a-b1d5-12345EXAMPLE" } }
-
记下已上传ARN的测试包和预签名URL的。
-
使用预签名URL的 Amazon S3 上传您的测试脚本包文件。此示例使用 curl 上传压缩 Appium TestNG 脚本文件:
curl -T MyTests.zip "https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/ExampleURL"
-
要检查测试脚本包上传的状态,请运行get-upload并指定步骤 1 中上传ARN的测试包。
aws devicefarm get-upload –-arn arn:MyTestsUploadARN
等到响应中的状态为 SUCCEEDED 之后,再继续执行下一个可选步骤。
{ "upload": { "status": "SUCCEEDED", "name": "MyTests.zip", "created": 1535738627.195, "url": "https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/ExampleURL", "type": "APPIUM_JAVA_TESTNG_TEST_PACKAGE", "arn": "arn:aws:devicefarm:us-west-2:123456789101:upload:5e01a8c7-c861-4c0a-b1d5-12345EXAMPLE", "metadata": "{"valid": true}" } }
步骤 5:上传您的自定义测试规范(可选)
如果您要在标准测试环境中运行测试,请跳过此步骤。
Device Farm 会为每个支持的测试类型维护默认测试规范文件。接下来,您将下载默认测试规范,并使用它来创建自定义测试规范上传,以在自定义测试环境中运行测试。有关更多信息,请参阅 在 Dev AWS ice Farm 中测试环境。
-
要查找默认测试规范ARN的上传内容,请运行list-uploads并指定您的项目ARN。
aws devicefarm list-uploads --arn
arn:MyProjectARN
响应中包含每个默认测试规范的条目:
{ "uploads": [ { { "status": "SUCCEEDED", "name": "Default TestSpec for Android Appium Java TestNG", "created": 1529498177.474, "url": "https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/ExampleURL", "type": "APPIUM_JAVA_TESTNG_TEST_SPEC", "arn": "arn:aws:devicefarm:us-west-2:123456789101:upload:5e01a8c7-c861-4c0a-b1d5-12345EXAMPLE" } } ] }
-
从列表中选择您的默认测试规范。记下它的上传ARN。
-
要下载您的默认测试规范,请运行get-upload并指定上传ARN。
示例:
aws devicefarm get-upload –-arn
arn:MyDefaultTestSpecARN
响应中包含一个预签名,您可以在URL其中下载默认测试规范。
-
此示例使用 curl 下载默认测试规范,并将其另存为
MyTestSpec.yml
:curl "https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/ExampleURL" > MyTestSpec.yml
-
您可以根据自己的测试要求编辑默认的测试规范,然后在未来的测试运行中使用修改后的测试规范。跳过此步骤可在自定义测试环境中按原样使用默认的测试规范。
-
要上传您的自定义测试规范,请运行create-upload,指定您的测试规范名称、测试规范类型和项目ARN。
此示例将创建 Appium Java TestNG 自定义测试程序包的上传:
aws devicefarm create-upload --name MyTestSpec.yml --type APPIUM_JAVA_TESTNG_TEST_SPEC --project-arn
arn:MyProjectARN
响应包括上传ARN和预签名的URL测试规范:
{ "upload": { "status": "INITIALIZED", "category": "PRIVATE", "name": "MyTestSpec.yml", "created": 1535751101.221, "url": "https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/ExampleURL", "type": "APPIUM_JAVA_TESTNG_TEST_SPEC", "arn": "arn:aws:devicefarm:us-west-2:123456789101:upload:5e01a8c7-c861-4c0a-b1d5-12345EXAMPLE" } }
-
记下要上传ARN的测试规范和预签名URL的。
-
使用预签名URL的 Amazon S3 上传您的测试规范文件。此示例用于curl上传 Appium JavaTest NG 测试规范:
curl -T MyTestSpec.yml "https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/ExampleURL"
-
要检查您的测试规范上传状态,请运行get-upload并指定上传ARN。
aws devicefarm get-upload –-arn
arn:MyTestSpecUploadARN
等到响应中的状态为 SUCCEEDED 之后,再安排您的测试运行。
{ "upload": { "status": "SUCCEEDED", "name": "MyTestSpec.yml", "created": 1535732625.964, "url": "https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/ExampleURL", "type": "APPIUM_JAVA_TESTNG_TEST_SPEC", "arn": "arn:aws:devicefarm:us-west-2:123456789101:upload:5e01a8c7-c861-4c0a-b1d5-12345EXAMPLE", "metadata": "{"valid": true}" } }
要更新您的自定义测试规范,请运行update-upload,指定测试规范ARN的上传时间。有关更多信息,请参阅 update-upload。
步骤 6:安排测试运行
要安排测试运行,请运行 AWS CLIschedule-run,请指定:
如果您在自定义测试环境中运行测试,则还需要步骤 5 中的测试规范ARN。
安排在标准测试环境中执行运行
-
运行schedule-run,指定您的项目ARN、设备池ARN、应用程序上传ARN和测试包信息。
示例:
aws devicefarm schedule-run --project-arn
arn:MyProjectARN
--app-arnarn:MyAppUploadARN
--device-pool-arnarn:MyDevicePoolARN
--nameMyTestRun
--test type=APPIUM_JAVA_TESTNG,testPackageArn=arn:MyTestPackageARN
响应中包含一个运行ARN,你可以用它来检查测试运行的状态。
{ "run": { "status": "SCHEDULING", "appUpload": "arn:aws:devicefarm:us-west-2:123456789101:upload:5e01a8c7-c861-4c0a-b1d5-12345appEXAMPLE", "name": "MyTestRun", "radios": { "gps": true, "wifi": true, "nfc": true, "bluetooth": true }, "created": 1535756712.946, "totalJobs": 179, "completedJobs": 0, "platform": "ANDROID_APP", "result": "PENDING", "devicePoolArn": "arn:aws:devicefarm:us-west-2:123456789101:devicepool:5e01a8c7-c861-4c0a-b1d5-12345devicepoolEXAMPLE", "jobTimeoutMinutes": 150, "billingMethod": "METERED", "type": "APPIUM_JAVA_TESTNG", "testSpecArn": "arn:aws:devicefarm:us-west-2:123456789101:upload:5e01a8c7-c861-4c0a-b1d5-12345specEXAMPLE", "arn": "arn:aws:devicefarm:us-west-2:123456789101:run:5e01a8c7-c861-4c0a-b1d5-12345runEXAMPLE", "counters": { "skipped": 0, "warned": 0, "failed": 0, "stopped": 0, "passed": 0, "errored": 0, "total": 0 } } }
有关更多信息,请参阅 schedule-run。
安排在自定义测试环境中执行运行
-
所用的步骤几乎与标准测试环境中的步骤相同,只是
--test
参数中多了一个testSpecArn
属性。示例:
aws devicefarm schedule-run --project-arn
arn:MyProjectARN
--app-arnarn:MyAppUploadARN
--device-pool-arnarn:MyDevicePoolARN
--nameMyTestRun
--test testSpecArn=arn:MyTestSpecUploadARN
,type=APPIUM_JAVA_TESTNG
,testPackageArn=arn:MyTestPackageARN
检查您的测试运行的状态
-
使用get-run命令并指定运行ARN:
aws devicefarm get-run --arn arn:aws:devicefarm:us-west-2:111122223333:run:5e01a8c7-c861-4c0a-b1d5-12345runEXAMPLE
有关更多信息,请参阅 get-run。有关将 Device Farm 与配合使用的信息 AWS CLI,请参阅AWS CLI 参考文档。
创建测试运行 (API)
这些步骤与本 AWS CLI 节中描述的步骤相同。请参阅 创建测试运行 (AWS CLI)。
您需要这些信息才能拨打 ScheduleRun
API:
-
一个项目ARN。请参阅 创建项目 (API)和
CreateProject
。 -
应用程序上传ARN。请参阅
CreateUpload
。 -
上传测试包ARN。请参阅
CreateUpload
。 -
设备池ARN。请参阅 创建设备池和
CreateDevicePool
。
注意
如果您在自定义测试环境中运行测试,则还需要上传测试规范ARN。有关更多信息,请参阅步骤 5:上传您的自定义测试规范(可选) 和CreateUpload
。
有关使用 Device Farm 的信息API,请参阅自动化 Device Farm。
后续步骤
在 Device Farm 控制台中,运行完成后,时钟图标
变为结果图标,例如成功
。测试完成后,将立即显示与运行对应的报告。有关更多信息,请参阅 Dev AWS ice Farm 中的报告。
要使用报告,请按照在 Device Farm 中查看测试报告中的说明操作。