

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

# Device Farm에서 Appium 테스트 자동 실행
<a name="test-types-appium"></a><a name="test-types-ios-appium-java-testng"></a><a name="test-types-ios-appium-java-junit"></a><a name="test-types-ios-appium-python"></a><a name="test-types-ios-appium-ruby"></a><a name="test-types-ios-appium-node"></a><a name="test-types-android-appium-java-testng"></a><a name="test-types-android-appium-java-junit"></a><a name="test-types-android-appium-python"></a><a name="test-types-android-appium-ruby"></a><a name="test-types-android-appium-node"></a><a name="test-types-web-app-appium-java-testng"></a><a name="test-types-web-app-appium-java-junit"></a><a name="test-types-web-app-appium-python"></a><a name="test-types-web-app-appium-ruby"></a><a name="test-types-web-app-appium-node"></a>

**참고**  
이 페이지에서는 Device Farm의 관리**형 서버 측** 실행 환경에서 Appium 테스트를 실행하는 방법을 다룹니다. 원격 액세스 세션 중에 로컬 **클라이언트 측** 환경에서 Appium 테스트를 실행하려면 [클라이언트 측 Appium 테스트를](appium-endpoint.md) 참조하세요.

이 섹션에서는 Device Farm의 관리형 서버 측 환경에서 실행하기 위한 Appium 테스트를 구성, 패키징 및 업로드하는 방법을 설명합니다. Appium은 네이티브 애플리케이션 및 모바일 웹 애플리케이션을 자동화하는 오픈 소스 도구입니다. 자세한 정보는 Appium 웹 사이트에서 [Appium 소개](http://appium.io/docs/en/latest/intro)를 참조하세요.

샘플 앱 및 작동 테스트에 대한 링크는 GitHub의 [Android용 Device Farm 샘플 앱](https://github.com/aws-samples/aws-device-farm-sample-app-for-android) 및 [iOS용 Device Farm 샘플 앱](https://github.com/aws-samples/aws-device-farm-sample-app-for-ios)을 참조하세요.

Device Farm에서의 테스트 및 서버 측 작동 방식에 대한 자세한 내용은 섹션을 참조하세요[AWS Device Farm의 테스트 프레임워크 및 내장 테스트](test-types.md).

## Appium 버전 선택
<a name="w2aac24c15c41"></a>

**참고**  
 특정 Appium 버전, Appium 드라이버 또는 프로그래밍 SDKs에 대한 지원은 테스트 실행을 위해 선택한 디바이스 및 테스트 호스트에 따라 달라집니다.

 Device Farm 테스트 호스트에는 보다 간단한 사용 사례를 위해 테스트를 더 빠르게 설정할 수 있도록 Appium이 사전 설치되어 있습니다. 그러나 테스트 사양 파일을 사용하면 필요한 경우 다양한 버전의 Appium을 설치할 수 있습니다.

### 시나리오 1: 사전 구성된 Appium 버전
<a name="w2aac24c15c41b7b1"></a>

 Device Farm은 테스트 호스트를 기반으로 다양한 Appium 서버 버전으로 사전 구성되어 제공됩니다. 호스트에는 디바이스 플랫폼의 기본 드라이버(Android의 경우 UiAutomator2, iOS의 경우 XCUITest)를 사용하여 사전 구성된 버전을 활성화하는 도구가 함께 제공됩니다.

```
phases:
  install:
    commands:
      - export APPIUM_VERSION=2
      - devicefarm-cli use appium $APPIUM_VERSION
```

 지원되는 소프트웨어 목록을 보려면의 주제를 참조하세요[사용자 지정 테스트 환경 내에서 지원되는 소프트웨어](custom-test-environments-hosts-software.md).

### 시나리오 2: 사용자 지정 Appium 버전
<a name="w2aac24c15c41b7b3"></a>

 Appium의 사용자 지정 버전을 선택하려면 `npm` 명령을 사용하여 설치합니다. 다음 예제에서는 최신 버전의 Appium 2를 설치하는 방법을 보여줍니다.

```
phases:
  install:
    commands:
      - export APPIUM_VERSION=2
      - npm install -g appium@$APPIUM_VERSION
```

### 시나리오 3: 레거시 iOS 호스트의 Appium
<a name="w2aac24c15c41b7b5"></a>

 에서를 사용하여 특정 Appium 버전을 [레거시 iOS 테스트 호스트](custom-test-environments-hosts-ios.md#legacy-ios-host)선택할 수 있습니다`avm`. 예를 들어 `avm` 명령을 사용하여 Appium 서버 버전을 로 설정하려면 이러한 명령을 테스트 사양 YAML 파일에 `2.1.2`추가합니다.

```
phases:
  install:
    commands:
      - export APPIUM_VERSION=2.1.2
      - avm $APPIUM_VERSION
```

## iOS 테스트를 위한 WebDriverAgent 버전 선택
<a name="test-types-appium-select-wda"></a>

 iOS 디바이스에서 Appium 테스트를 실행하려면 WebDriverAgent를 사용해야 합니다. iOS 디바이스에 설치하려면이 애플리케이션에 서명해야 합니다. Device Farm은 사용자 지정 테스트 환경 실행 중에 사용할 수 있는 WebDriverAgent의 미리 서명된 버전을 제공합니다.

 다음 코드 조각을 사용하여 XCTestUI 드라이버 버전과 호환되는 테스트 사양 파일 내에서 Device Farm의 WebDriverAgent 버전을 선택할 수 있습니다.

```
phases:
  pre_test:
    commands:
      - |-
        APPIUM_DRIVER_VERSION=$(appium driver list --installed --json | jq -r ".xcuitest.version" | cut -d "." -f 1);
        CORRESPONDING_APPIUM_WDA=$(env | grep "DEVICEFARM_APPIUM_WDA_DERIVED_DATA_PATH_V${APPIUM_DRIVER_VERSION}")
        if [[ ! -z "$APPIUM_DRIVER_VERSION" ]] && [[ ! -z "$CORRESPONDING_APPIUM_WDA" ]]; then
          echo "Using Device Farm's prebuilt WDA version ${APPIUM_DRIVER_VERSION}.x, which corresponds with your driver";
          DEVICEFARM_APPIUM_WDA_DERIVED_DATA_PATH=$(echo $CORRESPONDING_APPIUM_WDA | cut -d "=" -f2)
        else
          LATEST_SUPPORTED_WDA_VERSION=$(env | grep "DEVICEFARM_APPIUM_WDA_DERIVED_DATA_PATH_V" | sort -V -r | head -n 1)
          echo "Unknown driver version $APPIUM_DRIVER_VERSION; falling back to the Device Farm default version of $LATEST_SUPPORTED_WDA_VERSION";
          DEVICEFARM_APPIUM_WDA_DERIVED_DATA_PATH=$(echo $LATEST_SUPPORTED_WDA_VERSION | cut -d "=" -f2)
        fi;
```

 WebDriverAgent에 대한 자세한 내용은 Appium 설명서를 참조하세요[https://appium.github.io/appium-xcuitest-driver/9.10/guides/run-prebuilt-wda/](https://appium.github.io/appium-xcuitest-driver/9.10/guides/run-prebuilt-wda/).