

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 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 サーバーバージョンが事前設定されています。ホストには、デバイスプラットフォームのデフォルトドライバー (UiAutomator2 for Android、XCUITest for iOS) を使用して事前設定されたバージョンを有効にするツールが付属しています。

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

 では[レガシー iOS テストホスト](custom-test-environments-hosts-ios.md#legacy-ios-host)、 で特定の Appium バージョンを選択できます`avm`。たとえば、 `avm` コマンドを使用して Appium サーバーバージョンを に設定するには`2.1.2`、これらのコマンドをテスト仕様の YAML ファイルに追加します。

```
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/)を参照してください。

# Appium テストと Device Farm の統合
<a name="test-types-appium-integrate"></a>

Appium テストを AWS Device Farm と統合するには、次の手順に従います。Device Farm で Appium テストを使用する方法の詳細については、「[Device Farm で Appium テストを自動的に実行するAppium テストと Device Farm の統合](test-types-appium.md)」を参照してください。

## Appium テストパッケージを構成する
<a name="test-types-appium-prepare"></a>

テストパッケージを構成するには、次の手順を実行します。

------
#### [ Java (JUnit) ]

1. `pom.xml` を変更して、パッケージを JAR ファイルに設定します:

   ```
   <groupId>com.acme</groupId>
   <artifactId>acme-myApp-appium</artifactId>
   <version>1.0-SNAPSHOT</version>
   <packaging>jar</packaging>
   ```

1. テストを JAR ファイルにビルドするよう、`pom.xml` を変更して `maven-jar-plugin` を使用します。

   次のプラグインは、テストソースコード (`src/test` ディレクトリ内のもの) を JAR ファイルにビルドします:

   ```
   <plugin>
     <groupId>org.apache.maven.plugins</groupId>
     <artifactId>maven-jar-plugin</artifactId>
     <version>2.6</version>
     <executions>
       <execution>
         <goals>
           <goal>test-jar</goal>
         </goals>
       </execution>
     </executions>
   </plugin>
   ```

1. 依存関係を JAR ファイルとしてビルドするよう、`pom.xml` を変更して `maven-dependency-plugin` を使用します。

   次のプラグインは依存関係を `dependency-jars` ディレクトリにコピーします: 

   ```
   <plugin>
     <groupId>org.apache.maven.plugins</groupId>
     <artifactId>maven-dependency-plugin</artifactId>
     <version>2.10</version>
     <executions>
       <execution>
         <id>copy-dependencies</id>
         <phase>package</phase>
         <goals>
           <goal>copy-dependencies</goal>
         </goals>
         <configuration>
           <outputDirectory>${project.build.directory}/dependency-jars/</outputDirectory>
         </configuration>
       </execution>
     </executions>
   </plugin>
   ```

1. 次の XML アセンブリを `src/main/assembly/zip.xml` に保存します。

   次の XML は、構成時に、Maven がビルド出力ディレクトリと `dependency-jars` ディレクトリのルートにあるすべてを含む .zip ファイルをビルドするように指示するアセンブリ定義です: 

   ```
   <assembly
       xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
     <id>zip</id>
     <formats>
       <format>zip</format>
     </formats>
     <includeBaseDirectory>false</includeBaseDirectory>
     <fileSets>
       <fileSet>
         <directory>${project.build.directory}</directory>
         <outputDirectory>./</outputDirectory>
         <includes>
           <include>*.jar</include>
         </includes>
       </fileSet>
       <fileSet>
         <directory>${project.build.directory}</directory>
         <outputDirectory>./</outputDirectory>
         <includes>
           <include>/dependency-jars/</include>
         </includes>
       </fileSet>
     </fileSets>
   </assembly>
   ```

1. テストとすべての依存関係を単一の .zip ファイルにパッケージするよう、`pom.xml` を変更して `maven-assembly-plugin` を使用します。

   次のプラグインは、上記のアセンブリを使用して、**mvn package** が実行されるたびに、ビルド出力ディレクトリに `zip-with-dependencies` という名前の .zip ファイルを作成します: 

   ```
   <plugin>
     <artifactId>maven-assembly-plugin</artifactId>
     <version>2.5.4</version>
     <executions>
       <execution>
         <phase>package</phase>
         <goals>
           <goal>single</goal>
         </goals>
         <configuration>
           <finalName>zip-with-dependencies</finalName>
           <appendAssemblyId>false</appendAssemblyId>
           <descriptors>
             <descriptor>src/main/assembly/zip.xml</descriptor>
           </descriptors>
         </configuration>
       </execution>
     </executions>
   </plugin>
   ```

**注記**  
注釈が 1.3 でサポートされていないというエラーが表示された場合は、以下を `pom.xml` に追加します:  

```
<plugin>
  <artifactId>maven-compiler-plugin</artifactId>
  <configuration>
    <source>1.7</source>
    <target>1.7</target>
  </configuration>
</plugin>
```

------
#### [ Java (TestNG) ]

1. `pom.xml` を変更して、パッケージを JAR ファイルに設定します

   ```
   <groupId>com.acme</groupId>
   <artifactId>acme-myApp-appium</artifactId>
   <version>1.0-SNAPSHOT</version>
   <packaging>jar</packaging>
   ```

1. テストを JAR ファイルにビルドするよう、`pom.xml` を変更して `maven-jar-plugin` を使用します。

   次のプラグインは、テストソースコード (`src/test` ディレクトリ内のもの) を JAR ファイルにビルドします:

   ```
   <plugin>
     <groupId>org.apache.maven.plugins</groupId>
     <artifactId>maven-jar-plugin</artifactId>
     <version>2.6</version>
     <executions>
       <execution>
         <goals>
           <goal>test-jar</goal>
         </goals>
       </execution>
     </executions>
   </plugin>
   ```

1. 依存関係を JAR ファイルとしてビルドするよう、`pom.xml` を変更して `maven-dependency-plugin` を使用します。

   次のプラグインは依存関係を `dependency-jars` ディレクトリにコピーします: 

   ```
   <plugin>
     <groupId>org.apache.maven.plugins</groupId>
     <artifactId>maven-dependency-plugin</artifactId>
     <version>2.10</version>
     <executions>
       <execution>
         <id>copy-dependencies</id>
         <phase>package</phase>
         <goals>
           <goal>copy-dependencies</goal>
         </goals>
         <configuration>
           <outputDirectory>${project.build.directory}/dependency-jars/</outputDirectory>
         </configuration>
       </execution>
     </executions>
   </plugin>
   ```

1. 次の XML アセンブリを `src/main/assembly/zip.xml` に保存します。

   次の XML は、構成時に、Maven がビルド出力ディレクトリと `dependency-jars` ディレクトリのルートにあるすべてを含む .zip ファイルをビルドするように指示するアセンブリ定義です: 

   ```
   <assembly
       xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
     <id>zip</id>
     <formats>
       <format>zip</format>
     </formats>
     <includeBaseDirectory>false</includeBaseDirectory>
     <fileSets>
       <fileSet>
         <directory>${project.build.directory}</directory>
         <outputDirectory>./</outputDirectory>
         <includes>
           <include>*.jar</include>
         </includes>
       </fileSet>
       <fileSet>
         <directory>${project.build.directory}</directory>
         <outputDirectory>./</outputDirectory>
         <includes>
           <include>/dependency-jars/</include>
         </includes>
       </fileSet>
     </fileSets>
   </assembly>
   ```

1. テストとすべての依存関係を単一の .zip ファイルにパッケージするよう、`pom.xml` を変更して `maven-assembly-plugin` を使用します。

   次のプラグインは、上記のアセンブリを使用して、**mvn package** が実行されるたびに、ビルド出力ディレクトリに `zip-with-dependencies` という名前の .zip ファイルを作成します: 

   ```
   <plugin>
     <artifactId>maven-assembly-plugin</artifactId>
     <version>2.5.4</version>
     <executions>
       <execution>
         <phase>package</phase>
         <goals>
           <goal>single</goal>
         </goals>
         <configuration>
           <finalName>zip-with-dependencies</finalName>
           <appendAssemblyId>false</appendAssemblyId>
           <descriptors>
             <descriptor>src/main/assembly/zip.xml</descriptor>
           </descriptors>
         </configuration>
       </execution>
     </executions>
   </plugin>
   ```

**注記**  
注釈が 1.3 でサポートされていないというエラーが表示された場合は、以下を `pom.xml` に追加します:  

```
<plugin>
  <artifactId>maven-compiler-plugin</artifactId>
  <configuration>
    <source>1.7</source>
    <target>1.7</target>
  </configuration>
</plugin>
```

------
#### [ Node.JS ]

Appium Node.js テストをパッケージして Device Farm にアップロードするには、ローカルマシンに次のものをインストールする必要があります:
+ [Node Version Manager (nvm)](https://github.com/nvm-sh/nvm) 

  ​不要な依存関係がテストパッケージに含まれないように、テストを開発およびパッケージするときにこのツールを使用してください。
+ Node.js
+ npm-bundle (グローバルにインストール済み)

1. nvm が存在することを確認します。

   ```
   command -v nvm
   ```

   出力として `nvm` が表示されるはずです。

   詳細については、GitHub の「[nvm](https://github.com/nvm-sh/nvm)」を参照してください。

1. Node.js をインストールするには、このコマンドを実行します:

   ```
   nvm install node
   ```

   特定バージョンの Node.js を指定できます:​

   ```
   nvm install 11.4.0
   ```

1. 正しいバージョンのノードが使用されていることを確認します:

   ```
   node -v
   ```

1. **npm-bundle** をグローバルにインストールします:

   ```
   npm install -g npm-bundle
   ```

------
#### [ Python ]

1. 不要な依存関係がアプリケーションパッケージに含まれないように、テストの開発とパッケージのために [Python virtualenv](https://pypi.python.org/pypi/virtualenv) を設定することを強くお勧めします。

   ```
   $ virtualenv workspace
   $ cd workspace
   $ source bin/activate
   ```
**ヒント**  
グローバルサイトパッケージディレクトリからパッケージを継承するため、`--system-site-packages` オプションを使用して Python virtualenv を作成しないでください。テストで不要な依存関係を仮想環境に含めることになる場合があります。
これらのネイティブライブラリは、これらのテストが実行されるインスタンス上に存在する場合と存在しない場合があるため、ネイティブライブラリに依存する依存関係をテストで使用しないことも確認する必要があります。

1. 仮想環境に **py.test** をインストールします。

   ```
   $ pip install pytest
   ```

1. Appium Python クライアントを仮想環境にインストールします。

   ```
   $ pip install Appium-Python-Client
   ```

1. カスタムモードで別のパスを指定しない限り、Device Farm はテストが `tests/` に格納されると想定します。`find` を使用して、フォルダ内のすべてのファイルを表示できます:

   ```
   $ find tests/
   ```

   これらのファイルに、Device Farm で実行するテストスイートが含まれていることを確認します。

   ```
   tests/
   tests/my-first-tests.py
   tests/my-second-tests/py
   ```

1. 仮想環境のワークスペースフォルダからこのコマンドを実行して、テストを実行せずにテストのリストを表示します。

   ```
   $ py.test --collect-only tests/
   ```

   Device Farm で実行するテストが出力に表示されていることを確認します。​

1. tests/ folder 下にあるすべてのキャッシュファイルを消去します:

   ```
   $ find . -name '__pycache__' -type d -exec rm -r {} +
   $ find . -name '*.pyc' -exec rm -f {} +
   $ find . -name '*.pyo' -exec rm -f {} +
   $ find . -name '*~' -exec rm -f {} +
   ```

1. ワークスペースで次のコマンドを実行して、requirements.txt ファイルを生成します:

   ```
   $ pip freeze > requirements.txt
   ```

------
#### [ Ruby ]

Appium Ruby テストをパッケージして Device Farm にアップロードするには、ローカルマシンに次のものをインストールする必要があります:
+ [Ruby Version Manager (RVM)](https://rvm.io/rvm/install)

  ​不要な依存関係がテストパッケージに含まれないように、テストを開発およびパッケージするときにこのコマンドラインツールを使用してください。
+ Ruby
+ Bundler (この Gem には通常、Ruby がすでにインストールされています)。

1. 必要なキー、RVM、および Ruby をインストールします。手順については、RVM ウェブサイトの「[RVM のインストール](https://rvm.io/rvm/install)」を参照してください。

   インストールが完了したら、サインアウトしてから再度サインインして端末を再リロードします。​
**注記**  
RVM は bash シェル専用の関数としてロードされます。​

1. **rvm** が正しくインストールされたことを確認します。

   ```
   command -v rvm
   ```

   出力として `rvm` が表示されるはずです。

1. 特定バージョンの Ruby (例えば *2.5.3*) をインストールする場合は、次のコマンドを実行してください:​

   ```
   rvm install ruby 2.5.3 --autolibs=0
   ```

   リクエストされた Ruby のバージョンを使用していることを確認します:

   ```
   ruby -v
   ```

1. 対象のテストプラットフォーム用のパッケージをコンパイルするようにバンドラーを構成します:

   ```
   bundle config specific_platform true
   ```

1. .lock ファイルを更新して、テストの実行に必要なプラットフォームを追加します。
   + Android デバイスで実行するようにテストをコンパイルする場合は、次のコマンドを実行して Gemfile が Android テストホストの依存関係を使用するように構成します:

     ```
     bundle lock --add-platform x86_64-linux
     ```
   + iOS デバイスで実行するようにテストをコンパイルする場合は、次のコマンドを実行して、iOS テストホストの依存関係を使用するように Gemfile を構成します:

     ```
     bundle lock --add-platform x86_64-darwin
     ```

1. 通常、**bundler** gem はデフォルトでインストールされます。そうでない場合は、インストールします:

   ```
   gem install bundler -v 2.3.26
   ```

------

## 圧縮テストパッケージファイルを作成する
<a name="test-types-appium-create-a-zip"></a>

**警告**  
Device Farm では、圧縮されたテストパッケージ内のファイルのフォルダ構造が重要であり、一部のアーカイブツールでは ZIP ファイルの構造が暗黙的に変更されます。ローカルデスクトップのファイルマネージャー (Finder や Windows エクスプローラーなど) に組み込まれているアーカイブユーティリティを使用するよりも、以下に指定されているコマンドラインユーティリティに従うことをお勧めします。

次に、Device Farm のテストをバンドルします。

------
#### [ Java (JUnit) ]

テストのビルドとパッケージ:

```
$ mvn clean package -DskipTests=true
```

その結果 `zip-with-dependencies.zip` のファイルが作成されます。これはお客様のテストパッケージです。

------
#### [ Java (TestNG) ]

テストのビルドとパッケージ:

```
$ mvn clean package -DskipTests=true
```

その結果 `zip-with-dependencies.zip` のファイルが作成されます。これはお客様のテストパッケージです。

------
#### [ Node.JS ]

1. プロジェクトをチェックアウトします。

   プロジェクトのルートディレクトリにいることを確認します。​ ルートディレクトリで `package.json` を確認できます。

1. ローカルの依存関係をインストールするには、このコマンドを実行します。

   ```
   npm install
   ```

   このコマンドは、現在のディレクトリ内に `node_modules` フォルダも作成します。
**注記**  
この時点で、ローカルでテストを実行できるようにする必要があります。

1. このコマンドを実行して、現在のフォルダ内のファイルを \$1.tgz ファイルにパッケージします。ファイルの名前は、`package.json` ファイルの `name` プロパティを使用して付けられます。

   ```
   npm-bundle
   ```

   この tarball(.tgz) ファイルには、コードと依存関係がすべて含まれています。

1. このコマンドを実行して、前のステップで生成した tarball (\$1.tgz ファイル) を単一の zip アーカイブにバンドルします:

   ```
   zip -r MyTests.zip *.tgz
   ```

   これは、次の手順で Device Farm にアップロードする `MyTests.zip` ファイルです。

------
#### [ Python ]

Python 2  
pip を使用して、必要な Python パッケージ (「ホイールハウス」と呼ばれる) のアーカイブを生成します:  

```
$ pip wheel --wheel-dir wheelhouse -r requirements.txt
```
ホイールハウス、テスト、pip 要件を Device Farm の zip アーカイブにパッケージします:  

```
$ zip -r test_bundle.zip tests/ wheelhouse/ requirements.txt
```

Python 3  
テストと pip 要件を zip ファイルにパッケージします:  

```
$ zip -r test_bundle.zip tests/ requirements.txt
```

------
#### [ Ruby ]

1. 仮想 Ruby 環境を作成するには、次のコマンドを実行します:

   ```
   # myGemset is the name of your virtual Ruby environment
   rvm gemset create myGemset
   ```

1. 先ほど作成した環境を使用するには、次のコマンドを実行します:

   ```
   rvm gemset use myGemset
   ```

1. ソースコードを確認してください。

   プロジェクトのルートディレクトリにいることを確認します。​ ルートディレクトリで `Gemfile` を確認できます。

1. ローカルの依存関係と、`Gemfile` からのすべての Gem をインストールするには、このコマンドを実行します:

   ```
   bundle install
   ```
**注記**  
この時点で、ローカルでテストを実行できるようにする必要があります。テストをローカルで実行するには、このコマンドを使用します:  

   ```
   bundle exec $test_command
   ```

1. `vendor/cache` フォルダの Gem をパッケージします。

   ```
   # This will copy all the .gem files needed to run your tests into the vendor/cache directory
   bundle package --all-platforms
   ```

1. 次のコマンドを実行して、すべての依存関係とともにソースコードを単一の zip アーカイブにバンドルします:

   ```
   zip -r MyTests.zip Gemfile vendor/ $(any other source code directory files)
   ```

   これは、次の手順で Device Farm にアップロードする `MyTests.zip` ファイルです。

------

## テストパッケージを Device Farm にアップロードする
<a name="test-types-appium-upload"></a>

Device Farm コンソールを使用してテストをアップロードできます。

1. [https://console.aws.amazon.com/devicefarm](https://console.aws.amazon.com/devicefarm) で Device Farm コンソールにサインインします。

1. Device Farm ナビゲーションパネルで、**[モバイルデバイスのテスト]** を選択して、**[プロジェクト]** を選択します。

1. 新規ユーザーである場合は、**[新規プロジェクト]** を選択し、プロジェクト名を入力してから、**[送信]** を選択します。

   すでにプロジェクトがある場合は、それを選択して、テストをそのプロジェクトにアップロードできます。

1. プロジェクトを開き、**[実行を作成]** を選択します。

1. **[実行設定]** で、テストに適切な名前を付けます。これには、スペースまたは句読点の任意の組み合わせを含めることができます。

1.   
ネイティブの Android と iOS テストの場合  
**[実行設定]**で、Android (.apk) アプリケーションをテストする場合は **[Android アプリ]** を選択し、iOS (.ipa) アプリケーションをテストする場合は **[iOS アプリ]** を選択します。次に、**[アプリを選択]** で **[独自のアプリをアップロード]** を選択して、アプリケーションの配布可能パッケージをアップロードします。  
 ファイルは Android `.apk` または iOS `.ipa` のいずれかである必要があります。iOS アプリケーションは、シミュレーターではなく、実際のデバイス用に構築される必要があります。  
モバイルウェブアプリケーションのテストの場合  
**[実行設定]** で、**[ウェブアプリ]** を選択します。

1. **[テストを設定]** の **[テストフレームワークを選択]** セクションで、テストする Appium フレームワークを選択し、次に **[独自のテストパッケージをアップロード]** を選択します。

1. テストが含まれている .zip ファイルを参照して選択します。この .zip ファイルは「[Appium テストパッケージを構成する](#test-types-appium-prepare)」で説明されている形式に従う必要があります。

1. 手順に従ってデバイスを選択して、実行を開始します。詳細については、「[Device Farm でのテスト実行の作成](how-to-create-test-run.md)」を参照してください。

**注記**  
Device Farm で Appium テストは変更されません。

## テストのスクリーンショットを撮る (オプション)
<a name="test-types-appium-screenshots"></a>

テストの一部としてスクリーンショットを撮影できます。

Device Farm は、`DEVICEFARM_SCREENSHOT_PATH` プロパティをローカルファイルシステム上の完全修飾パスに設定します。Device Farm は、そこを Appium スクリーンショットの保存先とみなします。スクリーンショットが保存されているテスト固有のディレクトリは、実行時に定義されます。スクリーンショットは Device Farm レポートに自動的に取り込まれます。スクリーンショットを表示するには、Device Farm コンソールで、**[スクリーンショット]** セクションを選択します。

 Appium テストでのスクリーンショットの撮影の詳細については、Appium API ドキュメントの「[スクリーンショットを撮る](http://appium.io/docs/en/commands/session/screenshot/)」を参照してください。