

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# AWS Device Farm 테스트 작업 참조
<a name="action-reference-DeviceFarm"></a>

파이프라인에서가 디바이스에서 애플리케이션을 실행하고 테스트하는 AWS Device Farm 데 사용하는 테스트 작업을 구성할 수 있습니다. Device Farm은 디바이스의 테스트 풀과 테스트 프레임워크를 사용하여 특정 디바이스에서 애플리케이션을 테스트합니다. Device Farm 작업에서 지원하는 테스트 프레임워크 유형에 대한 자세한 내용은 [Work with Test Types in AWS Device Farm](https://docs.aws.amazon.com/devicefarm/latest/developerguide/test-types.html)을 참조하세요.

**Topics**
+ [작업 유형](#action-reference-DeviceFarm-type)
+ [구성 파라미터](#action-reference-DeviceFarm-config)
+ [입력 아티팩트](#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**  
필수 항목 여부: 예  
테스트 중인 애플리케이션의 OS 및 유형입니다. 유효한 값 목록은 다음과 같습니다.  
+ `iOS`
+ `Android`
+ `Web`

**ProjectId**  
필수 항목 여부: 예  
Device Farm 프로젝트 ID입니다.  
프로젝트 ID를 찾으려면 Device Farm 콘솔에서 프로젝트를 선택합니다. 브라우저에서 새 프로젝트의 URL을 복사합니다. URL에 프로젝트 ID가 포함되어 있습니다. 프로젝트 ID는 `projects/` 뒤에 있는 URL의 값입니다. 다음 예제에서 프로젝트 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의 작업에서 지원되지 않는 테스트 유형은 `WEB_PERFORMANCE_PROFILE`, `REMOTE_ACCESS_RECORD` 및 `REMOTE_ACCESS_REPLAY`입니다.
Device Farm 테스트 유형에 대한 자세한 내용은 [AWS Device Farm에서 테스트 유형을 사용한 작업](https://docs.aws.amazon.com/devicefarm/latest/developerguide/test-types.html)을 참조하세요.

**RadioBluetoothEnabled**  
필수 여부: 아니요  
테스트 시작 시 Bluetooth를 활성화할지 여부를 나타내는 부울 값입니다.

**RecordAppPerformanceData**  
필수 여부: 아니요  
테스트 중에 CPU, FPS, 메모리 성능과 같은 기기 성능 데이터를 기록할지 여부를 나타내는 부울 값입니다.

**RecordVideo**  
필수 여부: 아니요  
테스트 중에 비디오를 녹화할지 여부를 나타내는 부울 값입니다.

**RadioWifiEnabled**  
필수 여부: 아니요  
테스트 시작 시 Wi-Fi를 활성화할지 여부를 나타내는 부울 값입니다.

**RadioNfcEnabled**  
필수 여부: 아니요  
테스트 시작 시 NFC를 활성화할지 여부를 나타내는 부울 값입니다.

**RadioGpsEnabled**  
필수 여부: 아니요  
테스트 시작 시 GPS를 활성화할지 여부를 나타내는 부울 값입니다.

**테스트**  
필수 여부: 아니요  
소스 위치에 있는 테스트 정의 파일의 이름 및 경로입니다. 경로는 테스트용 입력 아티팩트의 루트와 상대적입니다.

**FuzzEventCount**  
필수 여부: 아니요  
fuzz 테스트가 수행할 사용자 인터페이스 이벤트 수로, 1에서 10,000 사이입니다.

**FuzzEventThrottle**  
필수 여부: 아니요  
다음 사용자 인터페이스 이벤트를 수행하기 전에 fuzz 테스트가 대기할 시간을 밀리초 단위로 나타내는 숫자로, 1에서 1,000 사이입니다.

**FuzzRandomizerSeed**  
필수 여부: 아니요  
사용자 인터페이스 이벤트를 무작위화하는 데 사용할 fuzz 테스트의 시드입니다. 후속 fuzz 테스트에 동일한 숫자를 사용하면 동일한 이벤트 시퀀스가 생성됩니다.

**CustomHostMachineArtifacts**  
필수 여부: 아니요  
사용자 지정 아티팩트가 저장될 호스트 시스템의 위치입니다.

**CustomDeviceArtifacts**  
필수 여부: 아니요  
사용자 지정 아티팩트가 저장될 디바이스의 위치입니다.  


**UnmeteredDevicesOnly**  
필수 여부: 아니요  
이 단계에서 테스트를 실행할 때 무제한 디바이스만 사용할지 여부를 나타내는 부울 값입니다.

**JobTimeoutMinutes**  
필수 여부: 아니요  
시간 초과되기 전에 디바이스당 테스트 실행이 실행되는 시간(분)입니다.

**위도**  
필수 여부: 아니요  
지리 좌표계 각도로 표시되는 디바이스의 위도입니다.

**경도**  
필수 여부: 아니요  
지리 좌표계 각도로 표시되는 디바이스의 경도입니다.

## 입력 아티팩트
<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 및 웹 애플리케이션 테스트 프레임워크에 대한 자세한 설명을 제공합니다.
+ [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) - 이 자습서는 CodeBuild 및 Device Farm을 사용하여 Android 앱을 빌드 및 테스트하는 GitHub 소스가 있는 파이프라인을 생성하기 위한 샘플 빌드 사양 파일과 샘플 애플리케이션을 제공합니다.
+ [자습서:를 사용하여 iOS 앱을 테스트하는 파이프라인 생성 AWS Device Farm](tutorials-codebuild-devicefarm-S3.md) - 이 자습서에서는 Device Farm으로 빌드된 iOS 앱을 테스트하는 Amazon S3 소스로 파이프라인을 생성하는 샘플 애플리케이션을 제공합니다.