モバイルアプリケーションのテストと監視

このサイトでは、Mobile Application Testing はサポートされていません。

概要

Mobile Application Testing は、実際のデバイスを使用して Android および iOS アプリケーションの主要なビジネスフローをテストし、監視することができます。 Datadog はこれらのテストを実際のデバイス上で実行し、アプリケーションの主要なワークフローをステップごとにリアルに再現します。各ステップのスクリーンショットや合否の詳細な結果が提供されるため、チームは不具合がどこで起きたかを迅速に把握できます。 モバイルアプリテストは、スケジュール設定に基づいて、オンデマンドで、または CI/CD パイプライン内で直接実行できます。

Datadog でモバイルアプリテストを作成するには、Digital Experience > New Test に移動し、Mobile Application Test を選択します。

Synthetic モバイルテストの作成

構成

You may create a test using one of the following options:

  • Create a test from a template:

    1. あらかじめ設定されているテンプレートのいずれかにカーソルを合わせ、View Template をクリックします。すると、テスト詳細・リクエスト詳細・アラート条件・ステップなど、事前に入力された構成情報が表示されるサイドパネルが開きます。
    2. +Create Test をクリックして構成ページを開き、あらかじめ設定された構成オプションを確認および編集します。ここで提示されるフィールドは、テストを一から作成する場合と同じです。
    3. 右上にある Save & Quit をクリックして、モバイルアプリケーションテストを送信します。

  • Build a test from scratch:

    1. + テンプレートをクリックし、ドロップダウンメニューからモバイルアプリケーションを選択します。まだ作成していない場合は、Synthetic Monitoring & Continuous Testing Settings ページApplications List section でモバイルアプリケーションを作成してください。
    2. バージョンを選択するか、Always run latest version をクリックすると、テストが実行されるたびにモバイルアプリ ケーションの最新バージョンが使用されます。
    3. テストの名前を追加します。
    4. テストに関連する環境と追加タグを選択します。与えられた <KEY> に対して <VALUE> をフィルターするには <KEY>:<VALUE> フォーマットを使用します。
    5. テストを実行するデバイスを選択します。
    6. テストの再試行条件を設定します。
    7. 基本的な時間間隔をクリックしてテスト頻度を設定するか、テスト頻度とアラート条件をテストモニター用にカスタマイズします。
    8. テストモニターの名前を入力し、通知するサービスまたはチームメンバーを選択し、メッセージ通知を追加します。
    9. Save & Edit Recording をクリックして、モバイルアプリケーションテストを送信します。

スニペット

新しいモバイルアプリケーションテストを構成する際は、スニペットを使用すると、OS バージョン・デバイスサイズ・メーカー・稼働時間などを手動で選択する代わりに自動的に入力できます。利用可能なスニペットは以下のとおりです。

  • Device Size: 特定のサイズの画面でモバイルアプリケーションテストを自動的に実行します。

    • Multi-screen size
    • Tablet (タブレット)
    • Large Screen (iOS のみ)
    • Standard Screen (iOS のみ)
    • Small Screen (iOS のみ)
  • OS Version: iOS または Android アプリを複数バージョンで自動的にテストします。この選択は、モバイルアプリケーションの種類に応じて iOS か Android のいずれかに切り替わります。

  • Device Manufacturer (Android のみ): 複数のデバイスメーカーにわたって Android アプリを自動的にテストします。

  • Uptime: 利用可能な最短間隔 (15 分ごと) でテストを自動的に設定します。


モバイルアプリテストの作成画面左側に表示されるスニペット例のスクリーンショット

変数

Create local variables

To create a local variable, click Create a Local Variable. You can select one of the following available builtins to add to your variable string:

{{ numeric(n) }}
Generates a numeric string with n digits.
{{ alphabetic(n) }}
Generates an alphabetic string with n letters.
{{ alphanumeric(n) }}
Generates an alphanumeric string with n characters.
{{ date(n unit, format) }}
Generates a date in one of Datadog’s accepted formats with a value corresponding to the UTC date the test is initiated at + or - n units.
{{ timestamp(n, unit) }}
Generates a timestamp in one of Datadog’s accepted units with a value corresponding to the UTC timestamp the test is initiated at +/- n units.
{{ uuid }}
Generates a version 4 universally unique identifier (UUID).
{{ public-id }}
Injects the Public ID of your test.
{{ result-id }}
Injects the Result ID of your test run.

To obfuscate local variable values in test results, select Hide and obfuscate variable value. Once you have defined the variable string, click Add Variable.

グローバル変数を使用する

モバイルアプリテストの詳細の Starting URLAdvanced Options、およびテストの記録で Settings で定義されているグローバル変数を使用してローカル変数を定義することができます。利用可能な変数のリストを表示するには、目的のフィールドに {{ と入力してください。

記録を開始する前に、ユーザージャーニーに組み込む変数を定義します。

記録中に利用可能な変数を注入することができます。モバイルテストの記録で変数を使用する方法については、モバイルアプリのテストステップを参照してください。

テストの再試行

通知アラートをトリガーする前に、テストが失敗するまでの時間を指定できます。

  • 失敗した場合、Y ミリ秒後に X 回再試行します。

スケジュールとアラート

デフォルトでは、モバイルアプリテストはオンデマンドテスト用に設定されており、これらのテストは CI パイプラインで直接実行できます。

モバイルテストのスケジュールとアラート条件

アラート条件をカスタマイズして、アラートを送信する頻度や、テストが通知アラートを送信する状況を定義できます。

  • X 分間いずれかのアサーションが失敗すると、アラートがトリガーされます。

テストモニターを構成する

設定されたアラート条件に従って、通知が送信されます。このセクションを使用して、チームにメッセージを送る方法と内容を定義します。

  1. モバイルアプリテストのメッセージを入力します。このフィールドでは、標準のマークダウン形式のほか、以下の条件付き変数を使用できます。

    条件付き変数説明
    {{#is_alert}}モニターがアラートを発する場合に表示します。
    {{^is_alert}}モニターがアラートを発しない限り表示します。
    {{#is_recovery}}モニターが alert から回復したときに表示します。
    {{^is_recovery}}モニターが alert から回復しない限り表示します。
    {{#is_renotify}}モニターが再通知したときに表示します。
    {{^is_renotify}}モニターが再通知しない限り表示します。
    {{#is_priority}}モニターが優先順位 (P1~P5) に一致したときに表示します。
    {{^is_priority}}モニターが優先順位 (P1~P5) に一致しない限り表示します。

    通知メッセージには、このセクションで定義されたメッセージや、失敗した場所に関する情報が記載されます。

  2. 通知するメンバーやサービスを選択します。

  3. 再通知の頻度を指定します。テストの失敗を再通知しない場合は、Never renotify if the monitor has not been resolved オプションを使用してください。

  4. Save & Edit Recording をクリックして、テスト構成を保存し、モバイルアプリのテストステップを記録します。

詳しくは、Synthetic テストモニターの使用をご覧ください。

不安定性

不安定さはエンドツーエンドテストにおける痛点です。テストの失敗は、実際のアプリケーションの問題ではなく、ID に影響を与える妥当なフロントエンドのコード変更が原因となる場合があります。

Datadog では、不安定なテストを防ぐために、ロケータのセットを活用したアルゴリズムを使って、モバイルアプリテストで要素をターゲットにしています。UI の小さな変更により、要素が変更されることがあります (例えば、別の場所に移動する)。モバイルアプリテストは、変更によって影響を受けない参照ポイントに基づいて、自動的に要素の位置を再確認します。

テストが正常に実行されると、モバイルアプリテストは壊れたロケータを更新された値で再計算 (または「自己修復」) します。これにより、単純な UI の更新でテストが壊れることがなく、テストがモバイルアプリケーションの UI に自動的に適応することを保証します。

CI でテストを実行する

必要に応じてテスト synthetics.json ファイルグローバルコンフィギュレーション synthetics-ci.config ファイルmobileApplicationVersionFilePath オプションを定義することで、CI パイプラインでモバイルアプリのテストを実行できます。グローバルコンフィギュレーションファイルのオプションは、テストコンフィギュレーションファイルのオプションよりも優先されます。

この例では、aaa-aaa-aaa テストは application/path にあるオーバーライドアプリケーションのバージョンで実行されます。

// myTest.synthetics.json
{
  "tests": [
    {
      "id": "aaa-aaa-aaa",
      "config": {
        "mobileApplicationVersionFilePath": "application/path"
      }
    }
  ]
}

次に、$ datadog-ci synthetics run-tests --config synthetics-ci.config を実行します。

詳しくは、Continuous Testing と CI/CD をご覧ください。

権限

デフォルトでは、Datadog 管理者および Datadog 標準ロールを持つユーザーのみが、Synthetic モバイルアプリテストを作成、編集、削除できます。Synthetic モバイルアプリテストの作成、編集、削除アクセスを取得するには、ユーザーをこれら 2 つのデフォルトのロールのいずれかにアップグレードします。

カスタムロール機能を使用している場合は、synthetics_read および synthetics_write 権限を含むカスタムロールにユーザーを追加します。

アクセス制限

Use granular access control to limit who has access to your test based on roles, teams, or individual users:

  1. Open the permissions section of the form.
  2. Click Edit Access.
Set permissions for your test from Private Locations configuration form
  1. Click Restrict Access.
  2. Select teams, roles, or users.
  3. Click Add.
  4. Select the level of access you want to associate with each of them.
  5. Click Done.
Note: You can view results from a Private Location even without Viewer access to that Private Location.
Access levelView test configurationEdit test configurationView test resultsRun test
No access
ViewerYesYes
EditorYesYesYesYes

参考資料