This product is not supported for your selected Datadog site. ().

概要

ステップは、テストで実行したいインタラクションやアサーションを 1 つずつ記録したものです。ステップを定義するには、Start Recording をクリックして通常どおりデバイスを操作するか、Assertion または Interaction をクリックして手動でステップを作成します。

デバイスの起動

ステップの記録と追加を開始するには、ドロップダウンメニューからモバイルアプリのテストを開始するデバイスを選択し、Launch Device をクリックします。

モバイルテストを実行するデバイスを選択する

Show only available devices. Available devices load faster (利用可能なデバイスのみを表示します。利用可能なデバイスの読み込みが速くなります) を選択すると、最も利用可能なデバイスが表示され、テストの待ち時間が短縮されます。

通知

Launch a device to start recording モーダルで緑色の Device Connection Notification ボタンをクリックすると、デバイスの準備ができたときと、デバイスが非アクティブでタイムアウトになるときの通知を有効にすることができます。

自動記録されたステップ

Start Recording をクリックすると、Datadog がデバイス上の操作を自動的に記録し、左側のステップ一覧に表示します。

記録を停止するには、Stop Recording をクリックします。

手動で追加したステップ

デバイスを直接操作してステップを自動作成する方法に加えて、要素インスペクターアサーションインタラクション を使って手動でステップを作成することもできます。また、記録済みのステップをクリックして内容を更新したり、ステップ一覧で上下にドラッグして ステップを並べ替える こともできます。

Element Inspector

Element Inspector を使うと、要素階層を可視化したり、属性をコピーしたり、XML を使って対象要素を指定しながらインタラクション ステップを生成したりできます。

この機能は、テスト レコーダーを開いてデバイスを起動し、Element Inspector ボタンをクリックすると利用できます。Element Inspector では、次のことができます。

  • 要素ツリーを可視化: アプリケーション内の要素階層を全体として表示し、構造を整理して把握できます。
  • 属性をコピー: 要素名や XPATH 値などの属性を、インスペクターから直接コピーできます。
  • 要素をターゲット化: 要素ツリー内で対象要素を選択して、tapscroll などのステップを生成できます。

アサーション

アサーションによって、テストフローの特定のセクションで表示される (または表示されない) コンテンツを検証できます。

モバイルテストにおけるアサーションのオプション

ステップを作成するには、アサーションタイプを選択します。

要素のコンテンツをテストする

このアサーションステップを作成すると、モバイルアプリテストでページ要素を選択し、特定の値が含まれているかどうかを確認することができます。

テキストがアクティブ画面に存在することをテストする

このアサーションステップを作成すると、Value フィールドに指定したテキストが、記録中の現在のページに存在することをモバイルアプリテストで確認することができます。

テキストがアクティブ画面に存在しないことをテストする

このアサーションステップを作成すると、Value フィールドに指定したテキストが、記録中の現在のページに存在しないことをモバイルアプリテストで確認することができます。

インタラクション

デバイスを操作してステップを自動記録するだけでなく、Interaction をクリックして手動でステップを作成することもできます。

インタラクションステップを追加するためのアクションタイプを選択

ダブルタップ

モバイルアプリケーションのダブルタップで要素を操作すると、ステップが記録されます。

デバイスの回転

ステップに名前を付け、Portrait または Landscape モードを選択します。

モバイルテストでのデバイス回転ステップの記録

スクロール

モバイルアプリテストでは、操作が必要な要素まで自動的にスクロールします。ほとんどの場合、手動でスクロールステップを追加する必要はありません。スクロールステップを使用するのは、無限スクロールのような追加の操作を発生させる必要がある場合です。

モバイルアプリテストで縦横にスクロールさせたいピクセル数を指定します。

モバイルテスト記録のスクロールステップ

デフォルトでは、Scroll ステップは、ページ全体をスクロールします。特定の要素 (例えば、特定の <div>) でスクロールする必要がある場合、Starting Element をクリックして、モバイルアプリテストでスクロールさせたい要素を選択します。

Scroll to element

このアクションでは、指定した要素まで横方向または縦方向にスクロールできます。

タップ

モバイルアプリケーションのタップで要素を操作すると、ステップが記録されます。

テキストを入力する

モバイルアプリケーションのテキスト入力フィールドを操作して、名前を追加し、値を設定すると、ステップが記録されます。

手動で追加したステップで利用可能なすべての変数を表示するには、入力フィールドに {{ と入力します。

モバイルテストにおける変数を使用するためのテキスト入力ステップ

自動記録されたステップで変数を使用するには、ステップ名を追加して変数値を指定し、記録中に変数値を入力します。

戻るを押す

モバイル アプリケーションの下にある Back ボタンを操作すると、ステップが記録されます。Android のみで利用できます。

Extract variable from element

このアクションでは、要素の値を抽出して変数として保存できます。

ディープリンクを開く

ステップに名前を追加し、ディープリンク URI を入力します。

モバイルテストでのディープリンクを開くステップの記録

Restart application

このアクションを使うと、アプリケーションを再起動できます。 アプリケーションの再インストールは行わず、いったん終了してから再度起動します。

待機

ページやページ要素の読み込みに 60 秒以上かかることがわかっている場合、最大値 300 秒の待機ステップを追加することができます。

モバイルテストでの待機ステップの記録

デフォルトでは、モバイルアプリテストは、ステップまたは次のステップを実行する前に、ページが完全に読み込まれるのを 60 秒のタイムアウトで待ちます。この追加時間は、モバイルアプリのテスト記録のすべての実行に体系的に追加されます。

Toggle Wi-Fi

このアクションでは、テスト中に Wi-Fi を有効化または無効化し、インターネット接続の有無によるアプリケーションの動作を確認できます。

Toggle Wi-Fi のインタラクション ステップ

HTTP リクエスト

モバイル アプリ テストでは、HTTP リクエストの実行、アサーションの追加レスポンスからの変数抽出 を行えます。制限付きネットワーク を使用している場合は、必要な IP アドレス範囲を許可リスト (allowlist) に追加し、Synthetic Monitoring の Mobile テストで HTTP ステップが実行できるようにしてください。

: Synthetic Monitoring の Mobile テストから HTTP ステップをコピーして、Synthetic Monitoring の Browser テストで再利用できます。ただし、Browser テストから Mobile テストへのステップ コピーはサポートされていません。

モバイル アプリ テストのインタラクション (HTTP テストの実行)

HTTP リクエストを定義するには、

  1. テストしたい URL を入力します。

  2. オプションで、Advanced Options を指定します。

    • Follow redirects: このオプションを選択すると、HTTP テストが最大 10 回のリダイレクトを追従します。
    • Ignore server certificate error: SSL 証明書の検証でエラーが発生しても、HTTP テストを継続する場合にこのオプションを選択します。
    • Request headers: HTTP リクエストに追加するヘッダーを定義します。デフォルトのヘッダー (たとえば、user-agent ヘッダー) をオーバーライドすることもできます。
    • Cookies: HTTP リクエストに追加するクッキーを定義します。<COOKIE_NAME1>=<COOKIE_VALUE1>; <COOKIE_NAME2>=<COOKIE_VALUE2> の形式を使用して複数のクッキーを設定します。
    • Client certificate: クライアント証明書と関連する秘密キーをアップロードして、mTLS を介して認証します。
    • HTTP Basic Auth: HTTP 基本認証資格情報を追加します。
    • Digest Auth: ダイジェスト認証の資格情報を追加します。
    • AWS Signature: AWS Access Key ID と Secret Access Key を追加します。
    • NTLM: NTLM 認証の資格情報を追加します。NTLMv2 と NTLMv1 の両方をサポートします。
    • OAuth 2.0: Grant Type (Client credentials または Resource owner password) を選択します。
    • Encode parameters: エンコーディングが必要なクエリパラメーターの名前と値を追加します。
    • Body type: HTTP リクエストに追加するリクエスト本文のタイプ (text/plainapplication/jsontext/xmltext/htmlapplication/x-www-form-urlencodedGraphQL、または None) を選択します。
    • Request body: HTTP リクエストの本文を追加します。リクエスト本文のサイズ上限は最大 50 KB です。
    • Proxy URL: HTTP リクエストが通過する必要があるプロキシの URL (http://<YOUR_USER>:<YOUR_PWD>@<YOUR_IP>:<YOUR_PORT>) を指定します。
    • Proxy Header: プロキシへの HTTP リクエストに含めるヘッダーを追加します。
    • Do not save response body: レスポンスの本文が実行時に保存されないようにするには、このオプションを選択します。これは、テスト結果に機密データが表示されないようにするために役立ちますが、障害のトラブルシューティングが困難になる可能性があります。セキュリティに関する完全な推奨事項については、Synthetic モニタリングデータセキュリティを参照してください。

  3. Send をクリックしてリクエストを送信すると、レスポンスのプレビューが表示されます。

HTTP リクエストを実行
アサーションの追加

アサーションは、期待されるテスト結果を定義するものです。Send をクリックすると、テストのレスポンスに基づいて status coderesponse time、および headercontent-type に関する基本的なアサーションが追加されます。モバイル アプリ テストの HTTP ステップでは、アサーションは任意です。

タイプ演算子値の型
bodycontainsdoes not containisis not
matchesdoes not match
jsonpathxpath
String
Regex
String, Regex
headercontainsdoes not containisis not
matchesdoes not match
文字列
正規表現
response timeis less than整数 (ms)
status codeisis not整数

HTTP リクエストでは、brdeflategzipidentitycontent-encoding ヘッダーを使用して本文を解凍することが可能です。

  • テストがレスポンス本文にアサーションを含まない場合、本文のペイロードはドロップし、Synthetics Worker で設定されたタイムアウト制限内でリクエストに関連するレスポンスタイムを返します。

  • テストがレスポンス本文に対するアサーションを含み、タイムアウトの制限に達した場合、Assertions on the body/response cannot be run beyond this limit というエラーが表示されます。

ブラウザテストが成功または失敗するためのアサーションを定義する

New Assertion をクリックするか、応答プレビューを直接クリックすることで、ステップごとに最大 20 個のアサーションを作成できます。

応答から変数を抽出する

オプションで、応答ヘッダーまたは本文をパースすることにより、HTTP リクエストの応答から変数を抽出します。変数の値は、HTTP リクエストステップが実行されるたびに更新されます。一度作成すると、この変数はブラウザテストの次のステップで使用することができます。

変数のパースを開始するには、Extract a variable from response content をクリックします。

  1. Variable Name を入力します。変数名に使用できるのは大文字、数字、アンダースコアのみです。また、3 文字以上にする必要があります。

  2. 変数をレスポンスのヘッダーから抽出するか、本文から抽出するか決定します。

    • レスポンスヘッダーから値を抽出する場合は、HTTP リクエストのレスポンスヘッダー全体を変数として使用するか、regex で解析します。
    • レスポンスボディから値を抽出する場合は、HTTP リクエストの完全なレスポンスボディをそのまま変数の値として利用するか、regexJSONPathXPath で解析します。
応答から抽出された変数

テストステップの追加構成の詳細については、モバイルアプリのテストステップの詳細オプションを参照してください。

サブテスト

既存のワークフローを再利用するために、他のモバイルアプリテストの中でモバイルアプリテストを実行し、最大 2 レベルまで入れ子にすることができます。

既存のモバイルアプリテストをサブテストとして使用するには、Subtest をクリックし、ドロップダウンメニューからモバイルアプリテストを選択し、Add Subtest をクリックします。

サブテストとして追加するモバイルテストを選択

サブテストにある変数を親テストでオーバーライドするには、親テストレベルで作成された変数が、サブテストに存在する変数と同じ名前であることを確認してください。変数は、常に最初に代入された値を使用します。

サブテストの高度なオプションの詳細については、モバイルアプリテストステップの高度なオプションを参照してください。

サブテストを独立して実行することに意味がない場合は、一時停止することができます。このテストは親テストの一部として引き続き呼び出され、個別には実行されません。詳しくは、ブラウザのテストジャーニーをテストスイート全体で再利用するを参照ください。

ステップ プレビュー

モバイル テストにサブテストを追加するときは、steps ドロップダウンをクリックすると、サブテスト内の各ステップのプレビューを確認できます。

サブテストを追加し、既存のサブテストを選択するか steps から抽出する

サブテストをモバイル テストに追加した後は、サブテストをクリックすると、サブテスト内の各ステップのプレビューをもう一度表示できます。

サブテストを選択するとステップのプレビューが表示される

変数

Create local variables

To create a local variable, click + All steps > Variables. 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.

: サブテストを別のテストにインポートすると、サブテスト内で定義された変数はメイン テストに引き継がれます。 これらの変数を上書きするには、親テスト側で、サブテスト内の変数と同じ名前の変数を作成してください。

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

モバイル アプリ テストの詳細画面では、Advanced OptionsSettings で定義したグローバル変数 を使用できるほか、記録中にローカル変数を定義することもできます。利用可能な変数の一覧を確認するには、該当フィールドに {{ と入力します。

記録を開始する前に、ユーザー ジャーニーで使用する変数をあらかじめ定義しておいてください。

記録中に、利用可能な変数をテスト ステップへ直接挿入できます。

ステップ順序の管理

個々のステップをドラッグアンドドロップして新しいステップを手動で並べ替える代わりに、記録の特定の段階でテストステップにカーソルをセットし、追加のステップを挿入することができます。

  1. 記録済みの 2 つのテスト ステップの間にカーソルを合わせ、Add Steps here をクリックします。テスト ステップの上に青い線が表示されます。
  2. テストステップを追加記録するか、ステップを手動で追加します。
  3. テスト ステップの上に追加ステップを挿入し終えたら、Clear をクリックして終了します。

記録を編集する

保存したモバイル レコーディングを編集する手順は次のとおりです。

  • Synthetic Monitoring > Tests. に移動します。
  • 保存済みのモバイル テストをクリックします。
  • 左側パネルのビデオ アイコンをクリックし、続けて “edit recording” をクリックします。
  • 削除または再生する複数のステップまたは単一のステップを選択し、Save & Quit をクリックします。
モバイル レコーディングを編集し、複数選択機能を使用している様子

参考資料