Amazon Device Farm 测试操作参考 - Amazon CodePipeline
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

Amazon Device Farm 测试操作参考

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

注意:Device Farm 和的 CodePipeline 操作 GitHub不适用于中国(北京)和中国(宁夏)区域。要参考其他可用操作,请参阅 产品和服务与 CodePipeline

操作类型

  • 类别: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。

要获取项目的可用设备池ARNs,包括顶级设备ARN的, Amazon 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_用户界面

注意

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

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

RadioBluetoothEnabled

必需:否

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

RecordAppPerformanceData

必需:否

一个布尔值,用于指示是否在测试期间记录设备性能数据,例如CPUFPS、和内存性能。

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" },

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