テストの実行時間を短縮するための方法について説明します。
目次
1.ブラウザとモバイルアプリ共通
1-1.待機コマンドの変更
「秒間待つ」コマンドで長時間待機している箇所が多ければ、「UI要素が存在するまで待つ」などの条件で待機するコマンドに変更します。※コマンド一覧
1-2.初期化
「ログインしていなければログインする」「既存データがあれば削除する」など必要がある時だけ初期化します(テスト間の依存性が高まる可能性があるので注意が必要です)。
既存データの削除など、検証したいことと直接関係ない事前・事後処理については、画面から実施するのではなくサーバ側でテスト用Web APIを用意してそちらを利用します。メンテナンス性も高まります。
1-3.並列実行
テスト間の依存関係がなければ、ラベルとブラウザパターン・端末パターンを併用しテストを並列に実行します。
1.ラベルを作成する
プロジェクトページの設定 > テストケースラベルより「追加」を押します。
好きな名前を入力して「作成」を押します。
2.ラベルをテストケースに付与する
付与したいテストケースの情報タブを開き、該当のラベルにチェックを入れて「更新」を押します。
ラベルを付与できたら
3.一括実行設定を編集する
既存もしくは新しい一括実行設定にて、「+」ボタンを押してパターンを追加します。
一方にはテストケースラベル「フローA」を含むにドラッグ&ドロップし
もう一方も同様に「フローB」を含むように設定します。
そして共通設定の実行方法を「並列に実行」へ切り替えます。スタンダードプランの場合同時2並列が可能ですが、オプションを追加することによって最大10並列まで可能です。
ラベルではなくテストケース番号でも指定することができ、こちらはテストケースの実行順も指定することができます。
参考: 特定のテストケースのみを一括実行したい - 1.テストケース番号を指定して一括実行
2.モバイルアプリのみ
2-1.ロケータの変更
xpathロケータは低速になりがちなので、できるだけaccessibility idやios class chainロケータを使用します(MagicPodが標準で提案するロケータはそうなっています)。
accessibility idの付与(iOS) を参考に、アプリ側でできるだけ多くの要素にidentifierを付与し、MagicPod上でaccessibility idロケータを使えるようにします。accessibility idロケータが使えないと、より低速なxpath等を使わざるを得なくなります。
2-2.要素の数を減らす
テスト対象要素を探す速度は、UIツリー上に存在する要素の数に概ね比例します(見た目上非表示でもツリー上に存在してしまうと遅くなります)。アプリの実装を工夫し、余計な要素を生成しない、裏側に非表示要素やダミー要素を大量に持たない、などすると、テスト実行速度が改善する場合があります。