mablで変数を活用する #mabljapan

mablや最近のテストサービスでは変数の設定や利用を簡単にできます。これによって、テスト内で使い回したい値や、テストごとに異なってほしい値などを変数として定義し、テストケースの独立性や再利用性を高められます。

変数のユースケース

  • EmailアドレスやユーザのログインIDなど、ランダムな値を生成したい場合
  • 画面に表示された値をテスト内で使いまわしたい場合
  • ユーザクレデンシャルのようなセキュリティ的に守りたい情報をテストで活用したい場合
  • カスタムJSコードを使って値を計算したい場合
  • 異なるシナリオでの妥当性を簡単にするため、データドリブンテストを実行したい場合
  • テスト間で値を使いまわしたい場合
  • 環境レベルで変数を管理したい場合(APIキーやエンドポイントなど)

mablにおける変数の概要

mablにおける変数は、3種類あります。

  • Environment variables(環境変数) – システムが予約している変数(例:app.url aや app.username)や、Planの設定もしくは環境変数設定によって定義される値
  • Test-generated variables(テストが生成する変数) – テスト実行中に生成される値。画面要素の innerTextから取得した値など
  • Data-driven variables(データドリブン変数) – これまでに実行したDataTableshared variable などから生成した値

変数を作る

変数はmablトレーナー下にある「{{x}}」から作成や管理が可能です。

変数設定の画面は上記のようになります。文字列、要素から取得、JS利用、メールアドレス、データソースが選択可能です。

ランダムな値を変数に設定する

文字列で乱数も簡単に作成可能です。上記のようなパターンを使えます。

  • {{alpha:2}} – アルファベット2文字
  • {{digit: 4}} – 数字4桁
  • {{alnum:6}} – アルファベット+数字6桁
  • {{aplhaUpper:5}} – アルファベット大文字のみ5桁
  • {{date}} – 日付
  • {{@var}} – 変数の呼び出し

たとえば「{{alnum:6}}@gmail.com」 というようにメールアドレスをランダムで作れます。

Javascriptで変数を作成・計算する

JavaScriptを使った変数設定はコードエディタを使ってJSを記述し、変数をコールバックして利用します。JSでできることはなんでもできるということです。

画面の値を変数に設定する

画面要素を取得したい場合は上記のようになります。カーソルで要素を選ぶだけで取得可能です。あとは変数名を定義して値を保存します。

変数を使う

変数を使う場合は上記のような画面になります。使う場合は、入力する場所を決めるか、URL内で利用するか選択します。

あとは定義した値を選ぶだけ。Previewでその中身も見れます。

クレデンシャル情報の利用

ユーザの認証情報などはLogin Credentialなどに保存しましょう。保存した値は以下のような名前で利用可能です。

  • “app.url” – テスト中のアプリのURL
  • “app.username” – Planで設定したクレデンシャル情報のユーザ名部分
    “app.password” – 上記と同じくパスワード部分

これらの情報にJavascriptからアクセスする場合は以下のようにします。

  • “mablInputs.variables.web.defaults.url”
  • “mablInputs.variables.web.defaults.credentials.username”
  • “mablInputs.variables.web.defaults.credentials.password”

参考: Using variables