ログインフローで Persist browser state after flow execution(フロー実行後にブラウザの状態を保持)設定をオンにすると、クラウドプラン実行内の1つのテストがログインし、後続のテストは再度ログインする代わりにそのセッションから開始します。この記事では、ログインフローのセッションをプラン実行の残りのテストと共有するための設定方法を説明します。
セッションの共有は、プラン内の多くのテストが同じユーザーでログインする場合、ログインに時間がかかる場合、またはテストごとではなく実行ごとに1回だけ取得したいワンタイムコードにログインが依存する場合に役立ちます。設定は次の3つのステップで行います。
この設定が適用される範囲と適用されない範囲については、制限事項をご覧ください。
設定をオンにする
mablトレーナーまたはクイック編集モードで、ログインフローを含むテストを開き、次の手順を実行します。
- 鉛筆アイコンをクリックしてフローを編集します。
- [基本設定] タブで、Persist browser state after flow execution をオンにします。
- [OK] をクリックします。
この設定はフローのすべてのインスタンスに適用されるため、そのフローを呼び出すテストを変更する必要はありません。
設定全体をmablエージェントに任せることもできます。ログインフローのブラウザの状態を保持するようエージェントに依頼すると、エージェントが設定をオンにし、ログインステップを条件付きステップで囲みます。エージェントが最初から作成するログインフローには、この両方があらかじめ含まれています。
フローのログインステップを条件付きステップで囲む
フローは、ブラウザがすでにセッションを保持している場合でも、すべてのテストで実行されます。常にユーザー名とパスワードを入力するログインフローは、その場合にログインページが表示されていないため失敗します。ログインページが表示されている場合にのみ成立する条件付きステップでログインステップを囲んでください。
- ログインページにのみ存在する要素([サインイン] ボタンなど)を確認するIFステップを追加します。
- クレデンシャルを入力してフォームを送信するステップを、IFの中に移動します。
- 条件付きステップの後に、ユーザーがログインしていることを示すもの(アカウントメニューなど)に対するアサーションを追加します。
アサーションは条件付きステップの中ではなく後に配置してください。そうすることで、フローがログインした場合でも、セッションがすでに存在していた場合でも、アサーションが実行されます。完了したら、テストを保存します。
プランの残りのテストの前にログインを実行する
セッションデータは最初のテストがログインフローを完了した後にのみ保存されるため、同時に開始したテストはそれぞれ自分でログインします。実行全体で1回だけログインするには、ログイン専用のプランステージを用意します。
- 最初のステージ - ログインフローを実行するテストをここに配置し、認証済みセッションをキャプチャして保存します。
- 後続のステージ - 同じログインフローとクレデンシャルを使用するテストを、後のステージに配置します。
後続のステージのテストがログインフローに到達すると、mablは保存されたセッションデータを自動的に適用します。フロー内の条件付きステップはfalseと評価され、テストはログイン済みの状態から続行されます。
保存されるセッションには、Cookie、ローカルストレージ、IndexedDBが含まれます。セッションの保存または読み込みが何らかの理由で失敗した場合、フローは従来どおり実行され、テストには影響しません。
制限事項
- セッションの詳細を保存できるのはブラウザフローのみです。
- 共有されたセッションの詳細は、mablクラウドでのプラン実行でのみ利用できます。
- 保存された状態を読み込むには、テストが同じアプリケーションとクレデンシャルを使用している必要があります。
- ループするフローは対象外です。ループに対して設定をオンにしても効果はありません。