ScriptBrowser
New Relic Synthetics のScriptBrowserはSelenium WebDriverJS で作成する必要があります。
ですが、全てのScriptをプログラムのようにコーディングする必要はありません。
New Relic Syntheticsの形式に対応したIDEや変換プラグインが利用できます
ScriptBrowserのScriptを作成できるツール
New Relic Syntheticsに対応したGUIツールとして以下の2つの方法が利用できます。
それぞれのツールの使い方をご紹介します。
Katalon Recorder
Katalon RecorderはWEBテスト自動化ツールを手がけるKatalon 社が提供しているSeleniumIDE互換のWEB操作レコーディングツールです。
操作方法
テストを行いたいWEBアプリを開きWEBブラウザのプラグインからKatalon Recorder のアイコンをクリックします。
Katalon Recorder の操作画面が出てきます
「Rec.」ボタンをクリックして、実際に操作を行い、操作が終わったら「STOP」ボタンをクリックします。
※クリックするとアニメーションが再生されます。
実際に行った操作が記録されます。
操作の中でクリック対象のボタンはHTML要素やCSS要素など複数の指定方法があります。
「Play」ボタンをクリックして目的通りに動作しない場合は要素指定を選択してみてください。
自動化ツールによる操作は人間が実際に操作を行うよりもかなり高速で実行されます。
このため、サイトによってはボタン要素等が選択可能になる前にクリックしようとして、失敗する場合がよくあります。
この場合はwaitコマンドをclickコマンドの前に挿入してelementの準備ができるまで待つように設定を行います。
シナリオの調整ができたらExportを行います。
Katalon Recorder はExport形式として標準でNew Relic Syntheticsをサポートしています。
表示されたScriptをコピーして、New Relic Synthetics のScriptBrowserのScriptに設定してください。
Selenium IDE + Synthetics Formatter for Selenium IDE
Selenium IDE はオープンソースのWEB操作レコーディング、テストツールです。そしてSynthetics Formatter for Selenium IDE はSelenium IDEのエクスポート機能にNew Relic Synthetics 形式を追加する拡張プラグインです。
操作方法
WEBブラウザのプラグインからSelenium IDE のアイコンをクリックします。
Projectの作成画面が現れます。
「Create a New Project」を選択して新しいProjectを作成します。
Projectに適当な名前を付けます。
Projectの起点となるURLを入力します。
Selenium IDEによって新しいウィンドウでターゲットのURLが開かれますので、記録したい操作を実施します。
操作が終わったらSelenium IDEのウィンドウを開き、STOPアイコンをクリックします。
※クリックするとアニメーションが再生されます。
Katalon Recorderと同じようにクリック要素の指定方法を選択することができます。
自動化ツールによる操作は人間が実際に操作を行うよりもかなり高速で実行されます。
このため、サイトによってはボタン要素等が選択可能になる前にクリックしようとして、失敗する場合がよくあります。
この場合はwaitコマンドをclickコマンドの前に挿入してelementの準備ができるまで待つように設定を行います。
シナリオの調整ができたらExportを行います。
Selenium IDEは.js ファイルとしてエクスポートされます。
任意のエディタでファイルを開いて、中身のScriptをNew Relic SyntheticsのScriptページに貼り付けてください。
操作が失敗する時のポイント
waitコマンドの利用
WEB操作レコーディングで記録した操作が失敗する場合、多くのケースでは目的のクリック対象が期待通りの状態になっていない事によって発生します。
期待通りの状態になっていないというのは、操作が早すぎる事によりまだ描画が終わっていない
あるいは、必須入力項目の入力が完了していない場合などです。
Katalon Recorder でもSelenium IDEでも、wait コマンドを適切に使うことによって、要素の準備ができるまで待つ事ができます。
pauseコマンドの利用
基本的にはwait コマンドの利用が推奨されています(正確な応答時間を測定する、応答速度の変化に対応できる)しかし、どうしても一定の時間が経過するまで操作を待ちたい場合にはpauseコマンドを利用して、指定されたミリ秒間操作を待つ事ができます。
pauseコマンドを利用しようとするとSelenium IDEでは代替手段がない場合にのみ使うように注意書きが表示されます。
New Relic Synthetics Scriptでの注意点
IDEで作成したレコーディングがNew Relic Syntheticsで上手く動かない場合があります。
その場合はSynthetics Scriptの中でwaitForElementをwaitForAndFindElementに書き換えるまたはその逆を行う事によって
成功する場合があります。
New Relic SyntheticsのUserAgnetの言語情報は2020年8月時点ではEnglishに固定されています。
ターゲットのWEBページがAccept-Language毎に挙動を変える仕様の場合、英語以外の言語での挙動をテストすることはできません。
まとめ
New Relic Synthetics のScriptBrowserはUser操作をSelenium WebDriverJSによって記述して実際の操作をテストすることができます。
Scriptで記述されているので、モニタリング内容の管理や変更を簡単に行う事ができます。
しかし、WEBサイトの複雑なシナリオを1からScriptだけで記述することは困難です。
New Relic SyntheticsではSelenium IDEによって実際の操作を記録して簡単にスクリプト化することもできますし、
その操作をコードとして管理することもできるので、GUIとCUI両方の利点を活かす事ができます。
本ブログに掲載されている見解は著者に所属するものであり、必ずしも New Relic 株式会社の公式見解であるわけではありません。また、本ブログには、外部サイトにアクセスするリンクが含まれる場合があります。それらリンク先の内容について、New Relic がいかなる保証も提供することはありません。