変数の使用方法

変数は、動的な値を必要とするテストシナリオに対処するのに役立ちます。また、テストとの値の受け渡しや複数のテスト間での値の受け渡しにも役立つため、テストが短くなり、トラブルシューティングとメンテナンスも簡単になります。

ユースケース

  • mabl Mailboxを使用した電子メールアドレスの電子メールテストなど、ランダムな値を生成する。
  • テスト対象アプリケーションの要素情報から値を抽出する。
  • 変数を介してテストに渡されるユーザー資格情報を安全に管理する。
  • カスタムJavaScriptコードを使用して日付を計算し、他の値を導き出す。
  • データ駆動型テストを実行して、さまざまなシナリオを簡単に検証する。
  • テスト間で変数値を共有する。
  • 環境レベル (APIキー、エンドポイント) で値を管理し、テスト全体でそれらを使用する。
  • 変数と数値に数学演算を適用する。

変数の概要

mablで変数を扱うときには、次の3つのカテゴリに分けて考えることができます。

  • 環境変数 - システム予約変数 (例: app.url、app.username) をはじめとする変数。プラン設定または定義された環境変数のいずれかから値を導き出します。
  • テスト生成変数 - たとえばinnerTextのようなエレメントプロパティから抽出するなどして、テスト実行中に値が生成される変数。
  • データ駆動型変数 - mabl DataTableまたは共有変数など、前回のテスト実行のデータソースから値が導き出される変数。

変数の追加

  1. トレーニング済みの新しいテストを開始し、mabl Trainerを開きます。
  2. 下部の [{x}] ボタンを探してマウスカーソルを合わせ、[Create] をクリックして変数を作成します。
  3. 新しい画面が表示され、そこで動的な値のソースを変数に割り当てて名前を付けることができます。現在、ランダムな文字列パターン、エレメントのプロパティ、カスタムJavaScriptコード、またはデータソースを使用して変数を生成できます。

ランダムな値を使用する変数の追加

文字列テンプレートによる変数の作成では、ランダムマクロを使用して疑似ランダム文字列を生成できます。パターンには、ランダムマクロを複数使用でき、それらのマクロはランダムな文字列に置き換えられます。マクロを囲むには、{{macro}} のように二重中括弧を使用します。現在、次の5つのランダムな文字列をサポートしています。alpha (大文字と小文字)、alphaLower (a~z)、alphaUpper (A~Z)、digit (0~9)、alnum (英数字、つまりアルファベットと数字の組み合わせ) です。アルファベットとともに、生成する文字列の長さを指定する必要があります。次に、パターンと各パターンによって生成されるランダムな文字列の例をいくつか示します。

{{digit:2}} inch monitor
87 inch monitor

{{alnum:8}}
G7Wz8pU1

テストが実行されるたびに、生成された変数ごとに新しいランダムな値が生成されます。
ランダムな値で変数を作成するには:

  1. [Variable name] フィールドに変数の名前を入力します。
  2. [Set variable from] フィールドで、[String template] セレクターを選択します。
  3. 上記の情報に基づき、目的のパターンを追加します。
  4. 下の網掛けのボックスを調べて、目的の出力と一致することを確認します。
  5. [OK] ボタンを押して変数を保存します。

基本的な数学演算を使用する変数の追加

数値または変数を使用する基本的な数学演算を評価した結果から変数を作成します。{{...}} に含まれる数学演算が評価され、結果の数値が変数として保存されます。

現在サポートされている演算は次のとおりです。

  • 加算 (+)
  • 減算 (-)
  • 乗算 (*)
  • 除算 (/)
    数値と変数に適用される基本的な数学演算の例を以下に示します。

{{@numberOne + 2}}
{{3 +2}}
{{@numberOne + @numberThree}}

数学演算と変数から変数を作成するには:

  1. {{...}} の中に、変数@numberFive、演算 (+)、および別の数値 (2) を入力します。
  2. [Variable name] フィールドに変数の名前を入力します。
  3. 下の影付きのボックスを調べて、目的の出力と一致することを確認します。
  4. [OK] ボタンを押して変数を保存します。

カスタムJavaScript変数の追加

カスタムJavaScriptスニペットを使用して、変数値を生成できます。結果は網掛けの出力ボックスに表示されます。このプロセスの詳細については、カスタムJavaScriptスニペットを使用して、変数値を生成できます。結果は網掛けの出力ボックスに表示されます。このプロセスの詳細については、「TrainerでのJavaScriptステップの使用」ヘルプドキュメントの「JavaScriptによる変数の定義」セクションを参照してください。

エレメントプロパティ変数の追加

プロパティ変数とは、ページ上で見つかったエレメントからプロパティを抽出して値を設定する変数です。現在サポートされている唯一のプロパティは、エレメントのinnerTextです。

プロパティ変数を使用するには、次の手順を実行します。

  1. [Set variable from] セレクターから [Element property] を選択します。
  2. マウスポインターのアイコンをクリックします。
  3. ページ上のエレメントを選択します。
  4. [Property] セレクターで、innerText、class、tagNameなど、変数を設定するエレメントプロパティを選択します。
  5. [OK] ボタンをクリックして、エレメントプロパティ変数を保存します。

変数の使用方法

  1. 1つ以上の変数を定義した場合、[(x)] ボタンをクリックしてポップアップメニューの [Use] をクリックすると、変数を使用できるようになります。
  2. 変数を入力値として使用するか、アクセスするURLとして使用するかを選択します。後者をクリックすると、自動的にステップが追加されます。
  1. 変数を入力値として使用する場合は、[Input value] ボタンをクリックします。
  2. 変数の値を挿入するテキストエレメント (入力フィールドまたはテキスト領域) をページから選択します。挿入する変数の選択を求められます。
  1. [Use variable] をクリックすると、ページで選択したエレメントに変数の値が挿入されます。

変数内での変数の使用

URL、メールアドレスなど、1つの元の変数に基づいて複数の変数を作成しなければならない場合があります。変数内に変数を追加する機能により、その処理が簡単になります。

  1. 上記の手順に従って最初の変数を作成します。プロセスは同じです。
  2. 別の変数を作成し、新しい名前を割り当てます。
  3. 作成する変数の土台部分を入力します。
  4. 標準パターンに従って、最初の変数を追加する場所に {{@theFirstVariable}} と入力します。たとえば、emailという変数の場合、{{@email}} と入力します。
  5. 以下に示すように、下のボックスは変数プレビューで更新されます。

資格情報を変数として使用

プランを追加するときに一連の資格情報を指定すると、mablは自動ログイン機能を実行します。つまり、mabl自身でアプリケーションにログインする方法を見つけようとします。しかし、ユーザーがトレーニングを希望する場合、アプリケーションの資格情報がTrainerから変数としてアクセス可能になるため、資格情報をログインフィールドに適用できます。

資格情報は、テストスクリプトとは別に保存されます。保存中および転送中は暗号化されます。複数のプランを設定して、テスト実行時に別々の資格情報を提供することもできます。

資格情報変数は、設定に関連し、自動的に定義される新しいクラスの変数の例です。これらの変数の値を編集することはできませんが、生成される変数パターン ("{{@ app.url}}" など) やカスタムJavaScriptなどで他の変数と同じように使用できます。

現在、次の変数がサポートされています。

"app.url" - テスト対象アプリケーションのURL
"app.defaults.username" - プランで指定されたアプリケーションログインユーザー名
"app.defaults.password" - プランで指定されたアプリケーションログインパスワード
"app.test_run_id" - 個別のテスト実行のID

カスタムJSステップでこれらの変数を使用する場合は、次のように参照できます。

"mablInputs.variables.web.defaults.url"
"mablInputs.variables.web.defaults.credentials.username"
"mablInputs.variables.web.defaults.credentials.password"
"mablInputs.variables.web.defaults.test_run_id"


Did this page help you?