Device Farm と Gradle ビルドシステムとの統合 - AWS Device Farm

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

Device Farm と Gradle ビルドシステムとの統合

Device Farm Gradle プラグインは、Android Studio の Gradle ビルドシステムと AWS Device Farm の統合を提供します。詳細については、「Gradle」を参照してください。

注記

Gradle プラグインをダウンロードするには、 に移動GitHubし、「」の手順に従いますDevice Farm Gradle プラグインの構築

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

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

依存関係

ランタイム

  • Device Farm Gradle プラグインには AWS Mobile 1.10.15 SDK 以降が必要です。の詳細と のインストールについてはSDK、AWS「モバイル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 プラグインを構築する

このプラグインは、Android Studio の Gradle ビルドシステムと AWS Device Farm の統合を提供します。詳細については、「Gradle」を参照してください。

注記

プラグインの構築はオプションです。プラグインは、Maven Central を通じて発行されます。Gradle がプラグインを直接ダウンロードするよう許可する場合は、この手順をスキップして、ステップ 2: AWS Device Farm Gradle プラグインを設定するに進みます。

プラグインを構築するには
  1. に移動GitHubし、リポジトリのクローンを作成します。

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

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

次のステップ: ステップ 2: AWS Device Farm Gradle プラグインを設定する

ステップ 2: AWS Device Farm Gradle プラグインを設定する

リポジトリのクローン作成とプラグインのインストールをまだ行っていない場合は、以下の手順を参照して実行してください。Device Farm Gradle プラグインの構築

AWS Device Farm Gradle プラグインを設定するには
  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' } }
  2. 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") } }
  3. 次のタスク (gradle devicefarmUpload) を使用して Device Farm テストを実行します。

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

次のステップ: Device Farm Gradle プラグインでのIAMユーザーの生成

ステップ 3: Device Farm Gradle プラグインでIAMユーザーを生成する

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

まだ実行していない場合は、IAMユーザーを生成する前にステップ 1 と 2 を完了してください。

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

注記

次の手順を完了するために使用する AWS ルートアカウントまたはIAMユーザーには、次のIAMポリシーを作成してIAMユーザーにアタッチするアクセス許可が必要です。詳細については、「ポリシーによる作業」を参照してください。

で適切なアクセスポリシーを使用して新しいユーザーを作成するには IAM
  1. でIAMコンソールを開きますhttps://console.aws.amazon.com/iam/

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

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

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

    例えば、GradleUser と指定します。

  5. [作成] を選びます。

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

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

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

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

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

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

  12. [選択] を選びます。

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

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

    { "Version": "2012-10-17", "Statement": [ { "Sid": "DeviceFarmAll", "Effect": "Allow", "Action": [ "devicefarm:*" ], "Resource": [ "*" ] } ] }
  15. [ポリシーを適用] を選びます。

次のステップ: 次は「テストタイプの構成」です。

詳細については、IAM「ユーザーの作成 (AWS Management Console)」または「」を参照してください設定

ステップ 4: テストタイプの構成

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

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

注記

デバイススロットを使用している場合、デバイススロット機能はデフォルトで無効になっています。

Appium

Device Farm は、Appium Java JUnitと TestNG for Android をサポートしています。

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

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

Built-in: ファズ

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

fuzz { eventThrottle 50 // optional default eventCount 6000 // optional default randomizerSeed 1234 // optional default blank }

詳細については、「Device Farm の組み込みファズテストの実行 (Android および iOS)」を参照してください。

インストルメンテーション

Device Farm は、Android 用の計測 (JUnit、エスプレッソ、ロボット、または計測ベースのテスト) をサポートしています。詳細については、「Android および AWS Device Farm の計測」を参照してください。

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

instrumentation { filter "test filter per developer docs" // optional }