

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# AWS Device Farm 測試動作參考
<a name="action-reference-DeviceFarm"></a>

在管道中，您可以設定測試動作，使用 AWS Device Farm 在裝置上執行和測試您的應用程式。Device Farm 使用測試裝置集區和測試架構來測試特定裝置上的應用程式。如需有關 Device Farm 動作支援之測試架構類型的資訊，請參閱[在 AWS Device Farm 中使用測試類型](https://docs.aws.amazon.com/devicefarm/latest/developerguide/test-types.html)。

**Topics**
+ [

## 動作類型
](#action-reference-DeviceFarm-type)
+ [

## 組態參數
](#action-reference-DeviceFarm-config)
+ [

## Input artifacts (輸入成品)
](#action-reference-DeviceFarm-input)
+ [

## 輸出成品
](#action-reference-DeviceFarm-output)
+ [

## 服務角色許可： AWS Device Farm 動作
](#edit-role-devicefarm)
+ [

## 動作宣告
](#action-reference-DeviceFarm-example)
+ [

## 另請參閱
](#action-reference-DeviceFarm-links)

## 動作類型
<a name="action-reference-DeviceFarm-type"></a>
+ 類別：`Test`
+ 擁有者：`AWS`
+ 提供者：`DeviceFarm`
+ 版本：`1`

## 組態參數
<a name="action-reference-DeviceFarm-config"></a>

**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
```

**應用程式**  
必要：是  
輸入成品中應用程式檔案的名稱和位置。例如：`s3-ios-test-1.ipa`

**TestSpec**  
條件式：是  
輸入成品中測試規格定義檔案的位置。這是自訂模式測試的必要項目。

**DevicePoolArn**  
必要：是  
Device Farm 裝置集區 ARN。  
若要取得專案可用的裝置集區 ARNs，包括熱門裝置的 ARN，請使用 AWS CLI 輸入下列命令：  

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

**TestType**  
必要：是  
指定測試支援的測試架構。以下是 的有效值清單`TestType`：  
+ **APPIUM\$1JAVA\$1JUNIT**
+ **APPIUM\$1JAVA\$1TESTNG**
+ **APPIUM\$1NODE**
+ **APPIUM\$1RUBY**
+ **APPIUM\$1PYTHON**
+ **APPIUM\$1WEB\$1JAVA\$1JUNIT**
+ **APPIUM\$1WEB\$1JAVA\$1TESTNG**
+ **APPIUM\$1WEB\$1NODE**
+ **APPIUM\$1WEB\$1RUBY**
+ **APPIUM\$1WEB\$1PYTHON**
+ **BUILTIN\$1FUZZ**
+ **INSTRUMENTATION**
+ **XCTEST**
+ **XCTEST\$1UI**
CodePipeline 中的 動作不支援下列測試類型：`REMOTE_ACCESS_RECORD`、 `WEB_PERFORMANCE_PROFILE`和 `REMOTE_ACCESS_REPLAY`。
如需有關 Device Farm 測試類型的資訊，請參閱[在 Device Farm 中使用 AWS 測試類型](https://docs.aws.amazon.com/devicefarm/latest/developerguide/test-types.html)。

**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**  
必要：否  
以地理座標系統度表示的裝置經度。

## Input artifacts (輸入成品)
<a name="action-reference-DeviceFarm-input"></a>
+ **成品數量：** `1`
+ **描述：**要提供給測試動作的一組成品。Device Farm 會尋找要使用的建置應用程式和測試定義。

## 輸出成品
<a name="action-reference-DeviceFarm-output"></a>
+ **成品數量：**`0`
+ **描述：**輸出成品不適用於此動作類型。

## 服務角色許可： AWS Device Farm 動作
<a name="edit-role-devicefarm"></a>

當 CodePipeline 執行動作時，CodePipeline 服務角色政策需要下列許可，適當範圍縮小至管道資源 ARN，以維持最低權限的存取。例如，將下列項目新增至您的政策陳述式：

```
{
    "Effect": "Allow",
    "Action": [
        "devicefarm:ListProjects",
        "devicefarm:ListDevicePools",
        "devicefarm:GetRun",
        "devicefarm:GetUpload",
        "devicefarm:CreateUpload",
        "devicefarm:ScheduleRun"
    ],
    "Resource": "resource_ARN"
},
```

## 動作宣告
<a name="action-reference-DeviceFarm-example"></a>

------
#### [ 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"
},
```

------

## 另請參閱
<a name="action-reference-DeviceFarm-links"></a>

以下相關資源可協助您使用此動作。
+ [在 Device Farm 中使用測試類型](https://docs.aws.amazon.com/devicefarm/latest/developerguide/test-types.html) – *Device Farm 開發人員指南*中的此參考章節提供有關 Device Farm 支援的 Android、iOS 和 Web 應用程式測試架構的更多說明。
+ [Device Farm 中的動作](https://docs.aws.amazon.com/devicefarm/latest/APIReference/Welcome.html) – *Device Farm API 參考中的 API* 呼叫和參數可協助您使用 Device Farm 專案。
+ [教學課程：建立使用 建置和測試 Android 應用程式的管道 AWS Device Farm](tutorials-codebuild-devicefarm.md) – 本教學課程提供範例建置規格檔案和範例應用程式，以使用 GitHub 來源建立管道，該來源使用 CodeBuild 和 Device Farm 建置和測試 Android 應用程式。
+ [教學課程：建立使用 測試 iOS 應用程式的管道 AWS Device Farm](tutorials-codebuild-devicefarm-S3.md) – 本教學課程提供範例應用程式，以使用 Amazon S3 來源建立管道，以使用 Device Farm 測試建置的 iOS 應用程式。