テスト計画フォローする同一URLの一部のページだけテスト対象にするこのページについてテストを行う際に、「URLは同じだが、内容の違うページがある。片方はテストを実行したいが、もう片方ではテストを実行したくない...」と困ったことはありませんか?本項では、そういった場合の解決法をご案内します。※エクスペリエンススクリプトを使った方法をご案内しています。※エクスペリエンススクリプトは使用方法を誤ると、デザインが反映されない・計測ができない等の問題が発生する可能性がありますので、ご利用は自己責任でお願いします。→ラウンド開始前に計測ができているか確認しましょう。※ここではサンプルコードを公開していますが、より複雑なコードの提供や、お客様のページに合わせたコードの提供は、サポート対象外となっております。こんなシチュエーションはありませんか?冒頭に書いたように、同じURLだが、どちらかのみテスト実行したい。例1)ログイン前・ログイン後でURLは一緒だが、ログイン後のページだけテスト対象にしたい例2)フォームの入力画面と確認画面のURLが同じだが、確認画面はテスト対象にしたくないこれらはエクスペリエンススクリプトを使えば実現できます。エクスペリエンススクリプトについてはこちらのヘルプをご覧ください。エクスペリエンススクリプトを記述するための準備エクスペリエンススクリプトを設定するまでの手順は以下の通りです。Chromeを使用します。今回デモのために、架空の通販ページをご用意しました。(架空の通販ページのため、実際にお買い物することはできません。動作するリンクはログイン/ログアウトと商品リンクのみとなっており、本物のログイン機能は実装されておりません。)テストケースは、「ログインユーザーのみテストを実行したい」とします。ログイン前もログイン後も、URLが同じなので、このままではログインしていないユーザーにもテストが実行されてしまいます。ログイン前とログイン後のページを見比べてみましょう。↓ログイン後↓ログイン後は、ユーザーの名前が表示されるようになりました。実際、こういった仕様のページは多いと思います。このように、見た目でわかる、ページ間の違いを見つけてください。2要素を見比べる違いを見つけたら、今度はその部分の要素を見比べます。windowsはF12、macではoption+command+iを押下して、Chromeの検証を開いてください。該当部分の要素を調べるには、下記の図のように、選択モードを使うと簡単です。ログイン前とログイン後で、要素を見比べてみます。↓ログイン後↓ログイン後のページでは、「username」というクラス名がつけられたspan要素が増えています。この要素の有無で、テストを実行する/しないを分けられそうです。3見つけた要素が固有のものかを確認する次に、先ほどログイン後のページで見つけた「username」というクラス名が、ログイン前では使われていないことを確認します。ログイン前のページへ戻り、command+f(windowsはcontrol+f)で要素を検索できるので、「.(ドット)username」でクラスを検索します。(IDを検索するときはID名に「#(シャープ)」をつけます。0」となっているので、ログイン前のページには「username」というクラス名を持つ要素が存在しないことがわかりました。これで、この要素の有無で、テストを実行する/しないを分けることが確実にできるようになりました。「ログイン済みのユーザーのみ、テストを行いたい=ページ内に「username」というクラス名を持つ要素が存在する時のみテストを行いたい」となります。これをエクスペリエンススクリプトで条件分岐すると、こうなります。{reject();}});});「.length」は、要素の数を取得します。要素が存在しない場合は「0」になるので、今回は0より大きい場合=「username」というクラス名を持つ要素が存在する場合にテストを実行するコードを書いています。エクスペリエンススクリプトに反映させます。ログイン前とログイン後のページを確認し、ログイン後のページのみでテストが実行されていることが確認できたら、完了です。(こちらの「古いエクスペリエンスが残っている?」を参考に、現在行われているテストを確認してください。)その他のエクスペリエンススクリプト参考になりそうな簡単なスクリプトを記載しますので、適宜内容を変更してお使いください。※エクスペリエンススクリプトは使用方法を誤ると、デザインが反映されない・計測ができない等の問題が発生する可能性がありますので、ご利用は自己責任でお願いします。※より複雑なコードの提供や、お客様のページに合わせたコードの提供は、サポート対象外となっております。コメントログインしてコメントを残してください。