

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

# Device Farm と Gradle ビルドシステムとの統合
<a name="aws-device-farm-android-gradle-plugin"></a>

このプラグインによって、AWS Device Farm は Android Studio の Gradle ビルドシステムと統合されます。詳細については、「[Gradle](https://gradle.org)」を参照してください。

**注記**  
Gradle Plugin をダウンロードするには、「[GitHub](https://github.com/awslabs/aws-device-farm-gradle-plugin)」に移動し、[Device Farm Gradle プラグインの構築](#aws-device-farm-gradle-plugin-building)の手順に従います。

Device Farm Gradle Plugin により、Android Studio 環境から Device Farm 機能が提供されます。Device Farm によってホストされる現行の Android 電話やタブレットでテストを開始できます。

このセクションには、Device Farm Gradle Plugin をセットアップして使用する一連の手順が含まれます。

**Topics**
+ [依存関係](#aws-device-farm-gradle-plugin-dependencies)
+ [ステップ 1: AWS Device Farm Gradle プラグインの構築](#aws-device-farm-gradle-plugin-building)
+ [ステップ 2: AWS Device Farm Gradle プラグインのセットアップ](#aws-device-farm-gradle-plugin-setting-up)
+ [ステップ 3: Device Farm Gradle プラグインで IAM ユーザーを作成する](#aws-device-farm-gradle-plugin-generating-iam-user)
+ [ステップ 4: テストタイプの構成](#aws-device-farm-gradle-plugin-configuring-test-types)

## 依存関係
<a name="aws-device-farm-gradle-plugin-dependencies"></a>

**ランタイム**
+ Device Farm Gradle プラグインには AWS Mobile SDK 1.10.15 以降が必要です。SDK の詳細とインストールについては、「[AWS Mobile SDK](https://aws.amazon.com/mobile/sdk/)」を参照してください。
+ Android ツールビルダーテスト api 0.5.2
+ Apache Commons Lang3 3.3.4

**ユニットテストの場合**
+ Testng 6.8.8
+ Jmockit 1.19
+ Android Gradle 1.3.0 ツール

## ステップ 1: AWS Device Farm Gradle プラグインの構築
<a name="aws-device-farm-gradle-plugin-building"></a>

このプラグインによって、AWS Device Farm が Android Studio の Gradle ビルドシステムと統合されます。詳細については、「[Gradle](https://gradle.org)」を参照してください。

**注記**  
プラグインの構築はオプションです。プラグインは、Maven Central を通じて発行されます。Gradle がプラグインを直接ダウンロードするよう許可する場合は、この手順をスキップして、[ステップ 2: AWS Device Farm Gradle プラグインのセットアップ](#aws-device-farm-gradle-plugin-setting-up)に進みます。

**プラグインを構築するには**

1. 「[GitHub](https://github.com/awslabs/aws-device-farm-gradle-plugin)」に移動して、リポジトリのクローンを作成します。

1. `gradle install`を使用してプラグインを構築します。

   プラグインはローカルの maven リポジトリにインストールされます。

次のステップ: [ステップ 2: AWS Device Farm Gradle プラグインのセットアップ](#aws-device-farm-gradle-plugin-setting-up)

## ステップ 2: AWS Device Farm Gradle プラグインのセットアップ
<a name="aws-device-farm-gradle-plugin-setting-up"></a>

リポジトリのクローン作成とプラグインのインストールをまだ行っていない場合は、以下の手順を参照して実行してください。[Device Farm Gradle プラグインの構築](#aws-device-farm-gradle-plugin-building)

**AWS Device Farm Gradle Pluginを構成するには**

1. `build.gradle` の依存関係リストにプラグインアーティファクトを追加します。

   ```
       buildscript {
   
           repositories {        
               mavenLocal()            
               mavenCentral()            
           }
   
           dependencies {        
               classpath 'com.android.tools.build:gradle:1.3.0'           
               classpath 'com.amazonaws:aws-devicefarm-gradle-plugin:1.0'            
           }        
       }
   ```

1. `build.gradle` ファイルのプラグインを構成します。以下のテスト固有の構成がガイドとして役立ちます。

   ```
   apply plugin: 'devicefarm'
   
   devicefarm {
   
       // Required. The project must already exist. You can create a project in the AWS Device Farm console.
       projectName "My Project" // required: Must already exist.
   
       // Optional. Defaults to "Top Devices"
       // devicePool "My Device Pool Name"
       
       // Optional. Default is 150 minutes
       // executionTimeoutMinutes 150
       
       // Optional. Set to "off" if you want to disable device video recording during a run. Default is "on"
       // videoRecording "on"
       
       // Optional. Set to "off" if you want to disable device performance monitoring during a run. Default is "on"
       // performanceMonitoring "on"
       
       // Optional. Add this if you have a subscription and want to use your unmetered slots
       // useUnmeteredDevices()
       
       // Required. You must specify either accessKey and secretKey OR roleArn. roleArn takes precedence. 
       authentication {
           accessKey "AKIAIOSFODNN7EXAMPLE"
           secretKey "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
           
           // OR
           
           roleArn "arn:aws:iam::111122223333:role/DeviceFarmRole"
       }
   
       // Optionally, you can 
       // - enable or disable Wi-Fi, Bluetooth, GPS, NFC radios
       // - set the GPS coordinates
       // - specify files and applications that must be on the device when your test runs
       devicestate {
           // Extra files to include on the device.
           // extraDataZipFile file("path/to/zip")
           
           // Other applications that must be installed in addition to yours. 
           // auxiliaryApps files(file("path/to/app"), file("path/to/app2"))
           
           // By default, Wi-Fi, Bluetooth, GPS, and NFC are turned on.
           // wifi "off"
           // bluetooth "off"
           // gps "off"
           // nfc "off"
           
           // You can specify GPS location. By default, this location is 47.6204, -122.3491
           // latitude 44.97005
           // longitude -93.28872
       }
    
       // By default, the Instrumentation test is used.
       // If you want to use a different test type, configure it here.
       // You can set only one test type (for example, Calabash, Fuzz, and so on)
    
       // Fuzz
       // fuzz { }
   
       // Calabash
       // calabash { tests file("path-to-features.zip") }
          
   }
   ```

1. 次のタスク (`gradle devicefarmUpload`) を使用して Device Farm テストを実行します。

   ビルド出力で Device Farm コンソールへのリンクが出力され、テストの実行をモニタリングできます。

次のステップ: [Device Farm Gradle プラグインでの IAM ユーザーの作成](#aws-device-farm-gradle-plugin-generating-iam-user)

## ステップ 3: Device Farm Gradle プラグインで IAM ユーザーを作成する
<a name="aws-device-farm-gradle-plugin-generating-iam-user"></a>

AWS Identity and Access Management (IAM) は、 AWS リソースを操作するためのアクセス許可とポリシーを管理するのに役立ちます。このトピックでは AWS Device Farm リソースにアクセスする権限を持つ IAM ユーザーの作成方法について説明します。

手順 1 と 2 を実行していない場合は、IAM ユーザーを作成する前に完了してください。

Device Farm へのアクセスに AWS ルートアカウントを使用しないことをお勧めします。代わりに、 AWS アカウントに新しい IAM ユーザーを作成 (または既存の IAM ユーザーを使用) し、その IAM ユーザーで Device Farm にアクセスします。

**注記**  
次の手順を完了するために使用する AWS ルートアカウントまたは IAM ユーザーには、次の IAM ポリシーを作成し、IAM ユーザーにアタッチするアクセス許可が必要です。詳細については、「[ポリシーを使った作業](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies_manage.html)」を参照してください。

**IAM で適切なアクセスポリシーを持つ、新しいユーザーを作成するには**

1. IAM コンソール ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)) を開きます。

1. **[ユーザー]** を選びます。

1. **[新規ユーザーを作成]** を選びます。

1. 任意のユーザー名を入力します。

   例えば、**GradleUser**。

1. **[作成]** を選びます。

1. **[認証情報をダウンロード]** を選び、後で簡単に取得できる場所に保存します。

1. **[閉じる]** を選びます。

1. リスト内でユーザー名を選びます。

1. **[権限]** で、右側にある下矢印をクリックして **[インラインポリシー]** ヘッダーを展開します。

1.  **[こちらをクリック]** を選ぶと、「**表示するインラインポリシーはありません」と表示されます。作成するには、ここをクリックしてください**。

1. 「**権限を設定**」画面で **[カスタムポリシー]** を選びます。

1. **[選択]** を選びます。

1. ポリシーに名前を付けます (例: **AWSDeviceFarmGradlePolicy**)。

1. 次のポリシーを **[ポリシードキュメント]** に貼り付けます。

------
#### [ JSON ]

****  

   ```
       {
           "Version":"2012-10-17",		 	 	 
           "Statement": [
               {
                   "Sid": "DeviceFarmAll",
                   "Effect": "Allow",
                   "Action": [ "devicefarm:*" ],
                   "Resource": [ "*" ]
               }
           ]
       }
   ```

------

1. **[ポリシーを適用]** を選びます。

次のステップ: 次は「[テストタイプの構成](#aws-device-farm-gradle-plugin-configuring-test-types)」です。

詳細については、「[IAM ユーザーの作成 (AWS マネジメントコンソール)](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_SettingUpUser.html#Using_CreateUser_console)」または「[設定](setting-up.md)」を参照してください。

## ステップ 4: テストタイプの構成
<a name="aws-device-farm-gradle-plugin-configuring-test-types"></a>

デフォルトでは、AWS Device Farm Gradle プラグインは[Android および AWS Device Farm のインストルメンテーション](test-types-android-instrumentation.md)テストを実行します。独自のテストを実行、または追加のパラメーターを指定する場合は、テストタイプを構成できます。このトピックでは、利用可能な各テストタイプに関する情報と、使用のための構成に向けて Android Studio で行う必要がある内容について説明します。Device Farm で利用可能なテストタイプの詳細については、「[AWS Device Farm のテストフレームワークと組み込みテスト](test-types.md)」を参照してください。

まだ行っていない場合は、テストタイプを構成する前に手順 1～3 を完了します。

**注記**  
[デバイススロット](how-to-purchase-device-slots.md)を使用している場合、デバイススロット機能はデフォルトで無効になっています。

### Appium
<a name="configuring-test-types-appium"></a>

Device Farm は、Android 向け Appium Java JUnit および TestNG のサポートを提供します。
+ [Appium (Java (JUnit))](https://docs.aws.amazon.com//devicefarm/latest/developerguide/test-types-appium.html)
+ [Appium (Java (TestNG))](https://docs.aws.amazon.com//devicefarm/latest/developerguide/test-types-appium.html)

`useTestNG()` または `useJUnit()` を選択します。デフォルトとなる `JUnit` は、特別に指定する必要はありません。

```
    appium {
        tests file("path to zip file") // required
        useTestNG() // or useJUnit()
    }
```

### Built-in: ファズ
<a name="configuring-test-types-built-in-fuzz"></a>

Device Farm では、ランダムにユーザーインターフェイスイベントをデバイスに送信し、その結果をレポートする組み込み Fuzz テストタイプが提供されます。

```
    fuzz {

       eventThrottle 50 // optional default
       eventCount 6000  // optional default
       randomizerSeed 1234 // optional default blank

     }
```

詳細については、「[Device Farm のビルトイン Fuzz テストの実行 (Android と iOS)](test-types-built-in-fuzz.md)」を参照してください。

### インストルメンテーション
<a name="configuring-test-types-instrumentation"></a>

Device Farm では、Android 向けインストルメンテーション (JUnit、Espresso、Robotium、または任意の実装ベーステスト) のサポートが提供されます。詳細については、「[Android および AWS Device Farm のインストルメンテーション](test-types-android-instrumentation.md)」を参照してください。

Gradle でインストルメンテーションテストを実行する場合、Device Farm では、**[androidTest]** ディレクトリから生成された `.apk` ファイルをテストのソースとして使用します。

```
    instrumentation { 

        filter "test filter per developer docs" // optional

    }
```