Device Farm でのテスト実行の作成 - AWS Device Farm

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

Device Farm でのテスト実行の作成

Device Farm コンソール AWS CLI、または Device Farm API を使用してテスト実行を作成できます。また、サポートされているプラグイン (例: Device Farm 用の Jenkins または Gradle プラグイン) も使用できます。プラグインの詳細については、「ツールとプラグイン」を参照してください。実行に関しては、「実行」を参照してください。

前提条件

Device Farm にプロジェクトが作成されている必要があります。「AWS Device Farm でプロジェクトを作成する」の指示に従ってから、このページに戻ります。

テスト実行を作成 (コンソール)

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

  2. ナビゲーションペインで、 [モバイルデバイスのテスト] を選択し、そして次に、[プロジェクト] を選択します。

  3. すでにプロジェクトがある場合は、テストをそのプロジェクトにアップロードできます。それ以外の場合は、[新規プロジェクト] を選択し、[プロジェクト名] を入力して、そして次に、[作成] を選択します。

  4. プロジェクトを開き、[新規実行を作成 を選択します。

  5. アプリケーションを選択する」ページで、[モバイルアプリケーション]、または [ウェブアプリケーション] を選択します。

    Device Farm コンソールでアプリケーションを選択します。
  6. アプリケーションファイルをアップロードします。ファイルをドラッグアンドドロップするか、最近のアップロードを選択することもできます。iOS アプリをアップロードする場合は、シミュレーターではなく、必ず [iOS デバイス] を選択してください。

  7. (オプション) [実行名] に名前を入力します。デフォルトで、Device Farm はアプリケーションのファイル名を使用します。

  8. [次へ] を選択します。

  9. 構成する」ページで、利用可能なテストスイートのいずれかを選択します。

    注記

    利用可能なテストがない場合は、[ビルトイン: ファズ] を選択して、標準のビルトインテストスイートを実行します。[ビルトイン: ファズ] を選択して、[イベント数][イベント調整]、および [ランダマイザーシード] ボックスが表示されたら、値を変更するか、そのままにすることができます。

    使用できるテストスイートの詳細については、「AWS Device Farm でのテストタイプの操作」を参照してください。

  10. [ビルトイン: ファズ] を選択しなかった場合は、[ファイルを選択] を選んで、テストが含まれるファイルを参照して選択します。

  11. テスト環境では、[標準環境でテストを実行] または [カスタム環境でテストを実行] を選択します。詳細については、「テスト環境」を参照してください。

  12. 標準のテスト環境を使用している場合は、ステップ 13 にスキップします。デフォルトのテスト仕様YAMLファイルでカスタムテスト環境を使用している場合は、ステップ 13 に進みます。

    1. カスタムテスト環境でデフォルトのテスト仕様を編集する場合は、編集 を選択してデフォルトのYAML仕様を更新します。

    2. テスト仕様を変更した場合、[新規として保存] を選択し、それを更新します。

  13. 録画またはパフォーマンスデータキャプチャオプションを構成する場合は、[高度な構成] を選択します。

    1. テスト中に動画を記録にするには、[録画を有効化] を選択します。

    2. デバイスのパフォーマンスデータをキャプチャするには、[アプリケーションのパフォーマンスデータキャプチャを有効化] を選びます。

    注記

    プライベートデバイスがある場合は、[プライベートデバイス専用の構成] も表示されます。

  14. [次へ を選択します。

  15. デバイスを選択する」ページで、次のいずれかを実行します:

    • ビルトインのデバイスプールを選択して [デバイスプール] に対してテストを実行するには、[上位デバイス] を選択します。

    • 独自のデバイスプールを作成してそのテストを実行するには、「デバイスプールを作成」の手順に従って操作を行った後、このページに戻ります。

    • [デバイスプール] ですでに独自のデバイスプールを作成した場合は、自分のデバイスプールを選択します。

    詳細については、「Device Farm でのAWSデバイスサポート」を参照してください。

  16. [次へ] を選択します。

  17. デバイス状態を指定する」ページでは:

    • 実行中に Device Farm が使用する他のデータを提供するには、[別途データを追加] の横の [ファイルを選択 を選択後、データが含まれる .zip ファイルを参照して選択します。

    • 実行中に Device Farm が使用する追加のアプリケーションをインストールするには、[他のアプリをインストール] の横の [ファイルを選択] を選択し、アプリを含む .apk または .ipa ファイルを参照して選択します。インストールする他のアプリケーションにもこの手順を繰り返します。インストール順序を変更するには、アップロードした後にアプリケーションをドラッグアンドドロップします。

    • 実行中に Wi-Fi、BluetoothGPS、、または NFCを有効にするかどうかを指定するには、無線状態を設定 の横にある適切なボックスを選択します。

    • 実行用のデバイスの緯度と経度をプリセットするには、[デバイスの場所] の横に座標を入力します。

    • 実行用のデバイスロケールをプリセットするには、[デバイスロケール] でロケールを選択します。

  18. [次へ を選択します。

  19. 実行を確認して開始する」ページで、テスト実行の実行タイムアウトを指定できます。無制限のテストスロットを使用している場合は、[計測されていないスロットで実行] が選択されていることを確認します。

  20. 実行タイムアウトを変更するには、値を入力するか、スライダーを使用します。詳細については、「AWS Device Farm でテスト実行の実行タイムアウトを設定する」を参照してください。

  21. [実行を確認して開始] を選択します。

Device Farm は、デバイスが利用可能になると、通常数分以内に実行を開始します。テスト実行中、Device Farm コンソールが実行テーブルに保留中アイコン Device Farm scheduled a job. を表示します。実行中の各デバイスも保留中アイコンで起動し、テストが開始されると実行中アイコン Device Farm progress indicator. に切り替わります。各テストが終了すると、テスト結果アイコンがデバイス名の横に表示されます。すべてのテストが完了すると、実行の横にある保留中アイコンがテスト結果アイコンに変わります。

テスト実行を停止したい場合は、「AWS Device Farm で実行を停止する」を参照してください。

テスト実行を作成 (AWS CLI)

を使用してテスト実行 AWS CLI を作成できます。

ステップ 1: プロジェクトを選択する

テスト実行は Device Farm プロジェクトに関連付ける必要があります。

  1. Device Farm プロジェクトを一覧表示するには、list-projects を実行します。プロジェクトがない場合は、「AWS Device Farm でプロジェクトを作成する」を参照してください。

    例:

    aws devicefarm list-projects

    このレスポンスには、Device Farm プロジェクトのリストが含まれています。

    { "projects": [ { "name": "MyProject", "arn": "arn:aws:devicefarm:us-west-2:123456789101:project:5e01a8c7-c861-4c0a-b1d5-12345EXAMPLE", "created": 1503612890.057 } ] }
  2. テスト実行に関連付けるプロジェクトを選択し、Amazon リソースネーム () を書き留めますARN。

ステップ 2: デバイスプールを選択する

デバイスプールを選択して、テスト実行を関連付ける必要があります。

  1. デバイスプールを表示するには、プロジェクト list-device-poolsを指定して を実行しますARN。

    例:

    aws devicefarm list-device-pools --arn arn:MyProjectARN

    このレスポンスには、ビルトイン Device Farm デバイスプール (例: Top Devices や、このプロジェクト用に以前作成したデバイスプール) が含まれます。

    { "devicePools": [ { "rules": [ { "attribute": "ARN", "operator": "IN", "value": "[\"arn:aws:devicefarm:us-west-2::device:example1\",\"arn:aws:devicefarm:us-west-2::device:example2\",\"arn:aws:devicefarm:us-west-2::device:example3\"]" } ], "type": "CURATED", "name": "Top Devices", "arn": "arn:aws:devicefarm:us-west-2::devicepool:example", "description": "Top devices" }, { "rules": [ { "attribute": "PLATFORM", "operator": "EQUALS", "value": "\"ANDROID\"" } ], "type": "PRIVATE", "name": "MyAndroidDevices", "arn": "arn:aws:devicefarm:us-west-2:605403973111:devicepool:example2" } ] }
  2. デバイスプールを選択し、その を書き留めますARN。

    また、デバイスプールを作成し、その後、このステップに戻ることもできます。詳細については、「デバイスプールを作成する (AWS CLI)」を参照してください。

ステップ 3: アプリケーションファイルをアップロードする

アップロードリクエストを作成し、Amazon Simple Storage Service (Amazon S3) の署名付きアップロードを取得するにはURL、以下が必要です。

  • プロジェクト ARN。

  • アプリケーションファイルの名前。

  • アップロードのタイプ。

詳細については、「create-upload」を参照してください。

  1. ファイルをアップロードするには、–-project-arn--name、および --type パラメータにより、create-upload を実行します。

    この例では、Android アプリケーション用のアップロードを作成します:

    aws devicefarm create-upload -–project-arn arn:MyProjectArn -–name MyAndroid.apk -–type ANDROID_APP

    レスポンスには、アプリのアップロードARNと署名付き が含まれますURL。

    { "upload": { "status": "INITIALIZED", "name": "MyAndroid.apk", "created": 1535732625.964, "url": "https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/ExampleURL", "type": "ANDROID_APP", "arn": "arn:aws:devicefarm:us-west-2:123456789101:upload:5e01a8c7-c861-4c0a-b1d5-12345EXAMPLE" } }
  2. アプリのアップロードARNと署名付き を書き留めますURL。

  3. Amazon S3 の署名付き を使用してアプリケーションファイルをアップロードしますURL。この例では、curl を使用して、Android .apk ファイルをアップロードします:

    curl -T MyAndroid.apk "https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/ExampleURL"

    詳細については、「Amazon Simple Storage Service ユーザーガイド」の「署名付き を使用したオブジェクトURLsのアップロード」を参照してください。

  4. アプリのアップロードのステータスを確認するには、 get-uploadを実行して、アプリのアップロードARNの を指定します。

    aws devicefarm get-upload –-arn arn:MyAppUploadARN

    レスポンスのステータスが SUCCEEDED になるまで待ってから、テストスクリプトパッケージをアップロードします。

    { "upload": { "status": "SUCCEEDED", "name": "MyAndroid.apk", "created": 1535732625.964, "url": "https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/ExampleURL", "type": "ANDROID_APP", "arn": "arn:aws:devicefarm:us-west-2:123456789101:upload:5e01a8c7-c861-4c0a-b1d5-12345EXAMPLE", "metadata": "{"valid": true}" } }

ステップ 4: テストスクリプトパッケージをアップロードする

次に、テストスクリプトパッケージをアップロードします。

  1. アップロードリクエストを作成して Amazon S3 の署名付きアップロード を取得するにはURL、–-project-arn、、--nameおよび --typeパラメータcreate-uploadを使用して を実行します。

    この例では、Appium Java TestNG テストパッケージアップロードを作成します:

    aws devicefarm create-upload –-project-arn arn:MyProjectARN -–name MyTests.zip –-type APPIUM_JAVA_TESTNG_TEST_PACKAGE

    レスポンスには、テストパッケージのアップロードARNと署名付き が含まれますURL。

    { "upload": { "status": "INITIALIZED", "name": "MyTests.zip", "created": 1535738627.195, "url": "https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/ExampleURL", "type": "APPIUM_JAVA_TESTNG_TEST_PACKAGE", "arn": "arn:aws:devicefarm:us-west-2:123456789101:upload:5e01a8c7-c861-4c0a-b1d5-12345EXAMPLE" } }
  2. テストパッケージのアップロードARNの と署名付き を書き留めますURL。

  3. Amazon S3 の署名付き を使用して、テストスクリプトパッケージファイルをアップロードしますURL。この例では、curl を使用して、圧縮された TestNG スクリプトファイルをアップロードします:

    curl -T MyTests.zip "https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/ExampleURL"
  4. テストスクリプトパッケージのアップロードのステータスを確認するには、 get-uploadを実行し、ステップ 1 からテストパッケージのアップロードARNの を指定します。

    aws devicefarm get-upload –-arn arn:MyTestsUploadARN

    レスポンスのステータスが SUCCEEDED となるまで待ってから、次のオプションのステップに進みます。

    { "upload": { "status": "SUCCEEDED", "name": "MyTests.zip", "created": 1535738627.195, "url": "https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/ExampleURL", "type": "APPIUM_JAVA_TESTNG_TEST_PACKAGE", "arn": "arn:aws:devicefarm:us-west-2:123456789101:upload:5e01a8c7-c861-4c0a-b1d5-12345EXAMPLE", "metadata": "{"valid": true}" } }

ステップ 5: (オプション) カスタムテスト仕様をアップロードする

標準のテスト環境でテストを実行している場合、このステップはスキップします。

Device Farm では、サポートされているテストタイプごとに、デフォルトのテスト仕様ファイルを保持しています。次に、デフォルトのテスト仕様をダウンロードし、カスタムのテスト環境でテストを実行するために必要なカスタムテスト仕様アップロードを作成します。詳細については、「テスト環境」を参照してください。

  1. ARN デフォルトのテスト仕様のアップロードを見つけるには、 list-uploadsを実行してプロジェクト を指定しますARN。

    aws devicefarm list-uploads --arn arn:MyProjectARN

    このレスポンスには、デフォルトのテスト仕様ごとのエントリが含まれます:

    { "uploads": [ { { "status": "SUCCEEDED", "name": "Default TestSpec for Android Appium Java TestNG", "created": 1529498177.474, "url": "https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/ExampleURL", "type": "APPIUM_JAVA_TESTNG_TEST_SPEC", "arn": "arn:aws:devicefarm:us-west-2:123456789101:upload:5e01a8c7-c861-4c0a-b1d5-12345EXAMPLE" } } ] }
  2. リストからデフォルトのテスト仕様を選択します。アップロードを書き留めますARN。

  3. デフォルトのテスト仕様をダウンロードするには、 get-uploadを実行してアップロード を指定しますARN。

    例:

    aws devicefarm get-upload –-arn arn:MyDefaultTestSpecARN

    レスポンスには、デフォルトのテスト仕様URLをダウンロードできます。

  4. この例では、curl を使用してデフォルトのテスト仕様をダウンロードし、MyTestSpec.yml という名前で保存します:

    curl "https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/ExampleURL" > MyTestSpec.yml
  5. デフォルトのテスト仕様を編集して、テスト要件を満たします。以降のテスト実行では変更後のテスト仕様を使用します。このステップをスキップして、デフォルトのテスト仕様をカスタムのテスト環境でそのまま使用します。

  6. カスタムテスト仕様のアップロードを作成するには、テスト仕様名create-upload、テスト仕様タイプ、プロジェクト を指定して を実行しますARN。

    この例では、Appium Java TestNG のカスタムテスト仕様のアップロードを作成します:

    aws devicefarm create-upload --name MyTestSpec.yml --type APPIUM_JAVA_TESTNG_TEST_SPEC --project-arn arn:MyProjectARN

    レスポンスには、テスト仕様のアップロードARNと署名付き が含まれますURL。

    { "upload": { "status": "INITIALIZED", "category": "PRIVATE", "name": "MyTestSpec.yml", "created": 1535751101.221, "url": "https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/ExampleURL", "type": "APPIUM_JAVA_TESTNG_TEST_SPEC", "arn": "arn:aws:devicefarm:us-west-2:123456789101:upload:5e01a8c7-c861-4c0a-b1d5-12345EXAMPLE" } }
  7. ARN テスト仕様のアップロードと署名付き の を書き留めますURL。

  8. Amazon S3 の署名付き を使用してテスト仕様ファイルをアップロードしますURL。この例では、 curlを使用して Appium JavaTestNG テスト仕様をアップロードします。

    curl -T MyTestSpec.yml "https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/ExampleURL"
  9. テスト仕様のアップロードのステータスを確認するには、 get-uploadを実行してアップロードを指定しますARN。

    aws devicefarm get-upload –-arn arn:MyTestSpecUploadARN

    レスポンスのステータスが SUCCEEDED になるまで待ってから、テスト実行のスケジュール設定を行います。

    { "upload": { "status": "SUCCEEDED", "name": "MyTestSpec.yml", "created": 1535732625.964, "url": "https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/ExampleURL", "type": "APPIUM_JAVA_TESTNG_TEST_SPEC", "arn": "arn:aws:devicefarm:us-west-2:123456789101:upload:5e01a8c7-c861-4c0a-b1d5-12345EXAMPLE", "metadata": "{"valid": true}" } }

    カスタムテスト仕様を更新するには、ARNテスト仕様のアップロードを指定して update-uploadを実行します。詳細については、「update-upload」を参照してください。

ステップ 6: テスト実行をスケジュール設定する

を使用してテスト実行をスケジュールするには AWS CLI、 を実行しschedule-run、以下を指定します。

カスタムテスト環境でテストを実行する場合は、ステップ 5 ARNのテスト仕様も必要です。

標準のテスト環境での実行をスケジュール設定するには
  • プロジェクト schedule-run、デバイスプール ARN、アプリケーションアップロード ARN、テストパッケージ情報を指定してARN、 を実行します。

    例:

    aws devicefarm schedule-run --project-arn arn:MyProjectARN --app-arn arn:MyAppUploadARN --device-pool-arn arn:MyDevicePoolARN --name MyTestRun --test type=APPIUM_JAVA_TESTNG,testPackageArn=arn:MyTestPackageARN

    レスポンスには、テスト実行のステータスをチェックするためにARN使用できる実行が含まれています。

    { "run": { "status": "SCHEDULING", "appUpload": "arn:aws:devicefarm:us-west-2:123456789101:upload:5e01a8c7-c861-4c0a-b1d5-12345appEXAMPLE", "name": "MyTestRun", "radios": { "gps": true, "wifi": true, "nfc": true, "bluetooth": true }, "created": 1535756712.946, "totalJobs": 179, "completedJobs": 0, "platform": "ANDROID_APP", "result": "PENDING", "devicePoolArn": "arn:aws:devicefarm:us-west-2:123456789101:devicepool:5e01a8c7-c861-4c0a-b1d5-12345devicepoolEXAMPLE", "jobTimeoutMinutes": 150, "billingMethod": "METERED", "type": "APPIUM_JAVA_TESTNG", "testSpecArn": "arn:aws:devicefarm:us-west-2:123456789101:upload:5e01a8c7-c861-4c0a-b1d5-12345specEXAMPLE", "arn": "arn:aws:devicefarm:us-west-2:123456789101:run:5e01a8c7-c861-4c0a-b1d5-12345runEXAMPLE", "counters": { "skipped": 0, "warned": 0, "failed": 0, "stopped": 0, "passed": 0, "errored": 0, "total": 0 } } }

    詳細については、「schedule-run」を参照してください。

カスタムテスト環境での実行をスケジュール設定するには
  • ステップは、--test パラメータの追加 testSpecArn 属性を伴い、標準テスト環境用のステップとほとんど同じです。

    例:

    aws devicefarm schedule-run --project-arn arn:MyProjectARN --app-arn arn:MyAppUploadARN --device-pool-arn arn:MyDevicePoolARN --name MyTestRun --test testSpecArn=arn:MyTestSpecUploadARN,type=APPIUM_JAVA_TESTNG,testPackageArn=arn:MyTestPackageARN
テスト実行のステータスを確認するには
  • get-run コマンドを使用して、実行 を指定しますARN。

    aws devicefarm get-run --arn arn:aws:devicefarm:us-west-2:111122223333:run:5e01a8c7-c861-4c0a-b1d5-12345runEXAMPLE

詳細については、「get-run」を参照してください。で Device Farm を使用する方法については、 AWS CLI「」を参照してくださいAWS CLI リファレンス

テスト実行を作成 (API)

手順は、 AWS CLI セクションで説明されている手順と同じです。「テスト実行を作成 (AWS CLI)」を参照してください。

を呼び出すには、この情報が必要ですScheduleRunAPI。

注記

カスタムテスト環境でテストを実行する場合は、テスト仕様のアップロード も必要ですARN。詳細については、「ステップ 5: (オプション) カスタムテスト仕様をアップロードする」および「CreateUpload」を参照してください。

Device Farm の使用については、API「」を参照してくださいDevice Farm の自動化

次のステップ

Device Farm コンソールでテスト実行が完了すると、クロックアイコン Device Farm scheduled a job. が成功などの結果アイコン The test succeeded. に変わります。テストが完了した時点で実行のレポートが表示されます。詳細については、「AWS Device Farm のレポート」を参照してください。

レポートを使用するには、「Device Farm でのテストレポートによる作業」の手順に従います。