AWS Device Farm - AWS CodePipeline

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

AWS Device Farm

在您的管道中,您可以配置用于 AWS Device Farm 在设备上运行和测试应用程序的测试操作。Device Farm 使用设备测试池和测试框架在特定设备上测试应用程序。有关 Device Farm 操作支持的测试框架类型的信息,请参阅在 Device Farm 中 AWS 使用测试类型

操作类型

  • 类别:Test

  • 拥有者:AWS

  • 提供方:DeviceFarm

  • 版本:1

配置参数

AppType

必需:是

您要测试的操作系统和应用程序类型。以下是有效值列表:

  • iOS

  • Android

  • Web

ProjectId

必需:是

Device Farm 项目 ID。

要查找您的项目 ID,请在 Device Farm 控制台中选择您的项目。在浏览器中,复制新项目的 URL。URL 包含项目 ID。项目 ID 是 URL 中位于 projects/ 之后的值。在下面的示例中,项目 ID 为 eec4905f-98f8-40aa-9afc-4c1cfexample

https://<region-URL>/devicefarm/home?region=us-west-2#/projects/eec4905f-98f8-40aa-9afc-4c1cfexample/runs
App

必需:是

您的输入构件中应用程序文件的名称和位置。例如:s3-ios-test-1.ipa

TestSpec

条件:是

测试规范定义文件在输入构件中的位置。这是自定义模式测试所必需的。

DevicePoolArn

必需:是

Device Farm 设备池 ARN。

要获取项目可用的设备池 ARN,包括热门设备的 ARN,请 AWS 使用 CLI 输入以下命令:

aws devicefarm list-device-pools --arn arn:aws:devicefarm:us-west-2:account_ID:project:project_ID
TestType

必需:是

为您的测试指定受支持的测试框架。以下是 TestType 的有效值列表:

  • APPIUM_JAVA_JUNIT

  • APPIUM_JAVA_TESTNG

  • APPIUM_NODE

  • APPIUM_RUBY

  • APPIUM_PYTHON

  • APPIUM_WEB_JAVA_JUNIT

  • APPIUM_WEB_JAVA_TESTNG

  • APPIUM_WEB_NODE

  • APPIUM_WEB_RUBY

  • APPIUM_WEB_PYTHON

  • BUILTIN_FUZZ

  • INSTRUMENTATION

  • XCTEST

  • XCTEST_UI

注意

CodePipeline: WEB_PERFORMANCE_PROFILEREMOTE_ACCESS_RECORD和中的操作不支持以下测试类型REMOTE_ACCESS_REPLAY

有关 Device Farm 测试类型的信息,请参阅使用 AWS Device Farm 中的测试类型

RadioBluetoothEnabled

必需:否

用于指示是否在测试开始时启用蓝牙的布尔值。

RecordAppPerformanceData

必需:否

用于指示是否在测试期间记录设备性能数据(如 CPU、FPS 和内存性能)的布尔值。

RecordVideo

必需:否

用于指示是否在测试期间录制视频的布尔值。

RadioWifiEnabled

必需:否

用于指示是否在测试开始时启用 Wi-Fi 的布尔值。

RadioNfcEnabled

必需:否

用于指示是否在测试开始时启用 NFC 的布尔值。

RadioGpsEnabled

必需:否

用于指示是否在测试开始时启用 GPS 的布尔值。

测试

必需:否

您的源位置中测试定义文件的名称和路径。路径相对于测试的输入项目的根。

FuzzEventCount

必需:否

模糊测试要执行的用户接口事件数,介于 1 到 10,000 之间。

FuzzEventThrottle

必需:否

在执行下一个用户接口事件之前,模糊测试等待的毫秒数,介于 1 到 1,000 之间。

FuzzRandomizerSeed

必需:否

供模糊测试用来将用户接口事件随机化的种子。对后续模糊测试使用相同的数字会使事件序列相同。

CustomHostMachineArtifacts

必需:否

主机上存储自定义构件的位置。

CustomDeviceArtifacts

必需:否

设备上存储自定义构件的位置。

UnmeteredDevicesOnly

必需:否

用于指示在此步骤中运行测试时是否仅使用非计量设备的布尔值。

JobTimeoutMinutes

必需:否

测试在超时前将在每台设备上执行的分钟数。

Latitude

必需:否

以地理坐标系度数表示的设备的纬度。

Longitude

必需:否

以地理坐标系度数表示的设备的经度。

输入构件

  • 构件数:1

  • 描述:要提供给测试函数使用的一组构件。Device Farm 会查找要使用的已构建应用程序和测试定义。

输出构件

  • 构件数:0

  • 描述:输出构件不适用于此操作类型。

操作声明

YAML
Name: Test Actions: - Name: TestDeviceFarm ActionTypeId: null category: Test owner: AWS provider: DeviceFarm version: '1' RunOrder: 1 Configuration: App: s3-ios-test-1.ipa AppType: iOS DevicePoolArn: >- arn:aws:devicefarm:us-west-2::devicepool:0EXAMPLE-d7d7-48a5-ba5c-b33d66efa1f5 ProjectId: eec4905f-98f8-40aa-9afc-4c1cfEXAMPLE TestType: APPIUM_PYTHON TestSpec: example-spec.yml OutputArtifacts: [] InputArtifacts: - Name: SourceArtifact Region: us-west-2
JSON
{ "Name": "Test", "Actions": [ { "Name": "TestDeviceFarm", "ActionTypeId": null, "category": "Test", "owner": "AWS", "provider": "DeviceFarm", "version": "1" } ], "RunOrder": 1, "Configuration": { "App": "s3-ios-test-1.ipa", "AppType": "iOS", "DevicePoolArn": "arn:aws:devicefarm:us-west-2::devicepool:0EXAMPLE-d7d7-48a5-ba5c-b33d66efa1f5", "ProjectId": "eec4905f-98f8-40aa-9afc-4c1cfEXAMPLE", "TestType": "APPIUM_PYTHON", "TestSpec": "example-spec.yml" }, "OutputArtifacts": [], "InputArtifacts": [ { "Name": "SourceArtifact" } ], "Region": "us-west-2" },

下列相关资源在您使用此操作的过程中会有所帮助。