「データパターン」の機能を使うと、1つのテストスクリプトを入力データのパターンを変えて何度も繰り返し実行する、いわゆる「データ駆動テスト」を行うことができます。
目次
- データパターンの設定
- テストの実行と結果の確認
- CSV形式でデータパターンの設定
- APIを使ったデータパターンの設定
- 条件分岐コマンドを使用する
- 変数つきのロケータを使用する
- データパターンに改行を含める
- 制限事項
- 参考
データパターンの設定
テストケース編集画面のテスト編集メニューから「データパターン設定」を選び(図1)
図1 データパターン設定
表示されたダイアログで変数名とデータのパターンを定義します。例えば図2では、変数UNAMEと変数GENDERに対し、2つのデータパターンを定義しています。パターンを定義したら、「OK」ボタンを押して編集内容を保存します。
図2 データパターンを定義
続いて、実行するスクリプトを作成します。スクリプト中では、${UNAME}や${GENDER}の形式で、データパターンの変数を参照することができます。(図3)
図3 データパターン変数を参照するスクリプト
テストの実行と結果の確認
作成したテストを実行すると、各データパターンに対しテストが繰り返し実行されることが分かります。テスト結果の一覧画面では図4のように全データパターンの成功・失敗件数の内訳を、テスト結果の詳細画面では図5のようにデータパターンごとのテスト結果を確認することができます。
図4 テスト結果一覧画面
図5 テスト結果詳細画面
一括実行で特定のデータパターンを実行したい場合は、「3[2], 3[3]」のように指定します。
例えば、「3[2]」はテストケース番号が「3」であるテストケースの2番目のデータパターンを指定します。
CSV形式でデータパターンの設定
データパターンが多い場合、CSVファイルの方が簡単に設定できます。
右上「︙」を押し、「CSV形式でアップロード」より設定します。
図6 データパターン設定画面
この場合CSVファイルは以下のようになり、「,」で各データを区切ります。
図7 CSVファイル例
APIを使ったデータパターンの設定
データパターンを多数のテストケースに設定したい場合やデータパターンの内容が頻繁に変わってそのたびに設定が必要になる場合、MagicPod Web APIを使って効率的にCSVファイルからデータパターンをアップロードすることができます。MagicPod Web APIを直接利用する方法とmagicpod-api-clientを利用する方法がありますが、1コマンドで処理を完了できるため、magicpod-api-clientを用いた方法を推奨しています。
magicpod-api-clientでアップロードする
magicpod-api-clientの基本的な使用方法についてはこちらをご確認ください。
本コマンドにて指定したテストケースへデータパターンのCSVファイルをアップロードできます。
./magicpod-api-client upload-data-pattern-csv -t {API_token} -o {organization_name} -p {project_name} --test_case_number 10 --csv_file_path data-pattern.csv
upload-data-pattern-csvコマンドの詳細については以下コマンドを実行しご確認ください。
./magicpod-api-client help upload-data-pattern-csv
MagicPod Web APIでアップロードする
MagicPod Web APIの基本的な使用方法についてはこちらをご確認ください。
1. POST APIをリクエスト
/v1.0/{organization_name}/{project_name}/test-cases/{test_case_number}/start-upload-data-patterns/
細かなパラメータの設定方法については、APIドキュメントをご参照ください。
アップロードの処理が開始されます。戻り値としてbatch_task_idが返るのでこのidを元に手順2でバッチタスクの完了状況をウォッチします。
2. GET APIを繰り返しリクエスト
/v1.0/{organization_name}/{project_name}/batch-task/{batch_task_id}/
戻り値が「succeeded」もしくは「 failed」になるまで定期的に本APIをリクエストします。succeededになったらアップロード完了です。failedの場合はerrors属性にエラーの内容が表示されますので、内容を確認してください。
条件分岐コマンドを使用する
データごとにチェックする選択肢を変えるといったテストが作成できます。例えば以下のチェックボックスがありデータごとにチェックの有無を変えたいケースがあるとします。
図8 チェックボックス
その場合、「朝食の有無」という変数を設定し、変数の値に応じて条件分岐させることで実現することができます。条件分岐コマンドについては条件分岐の活用をご覧ください。
図9 データパターン設定
図10 「変数の値が一致する場合」コマンドを用いてチェックボックスにチェックを入れるステップ例
図11 「変数の値が一致する場合」コマンドを用いてチェックボックスのチェックを外すステップ例
変数つきのロケータを使用する
データパターンの変数に応じて要素のロケータを変えるといったテストが作成できます。例えば以下の3つのチェックボックスのチェック対象をデータごとに変えたいケースがあり、各項目にはソースコード上でid属性がセットされているとします。
図12 チェックボックス
その場合、まず「オプションのid」という変数を設定し、各データにid名を入力します。
図13 データパターン設定
その後、変数つきのロケータを追加し、そのロケータの要素に対してクリックコマンドを入れてください。この方法によりデータごとのクリック対象変更を実現することができます。変数つきのロケータの追加方法については新しいロケータを追加するをご覧ください。
図14 変数つきのロケータ
図15 ステップ例
データパターンに改行を含める
データパターンには、以下のように改行を含めることができます。
▼入力
▼出力
なお、テキストエディタを使用してCSVファイル形式でデータパターンを作成する場合は、""内に改行を含めてください。
制限事項
データパターンの上限
300回の繰り返しが上限となります。
ただし一括実行の上限時間が9.5時間であるため、テストケースの実行時間によっては300回の実行が難しい場合があります。
画像差分の承認
データパターンが設定されたテストケースでも「画像差分がないか確認」コマンドを使うことができますが、データパターンごとの期待値画像を設定することはできません。
本件についてはMagicPod Product Portalに起票しています。機能追加をご希望の場合はこちらのカードにご投票ください。