Selenium IDEでScriptBrowserのScriptを作成する

ScriptBrowser

New Relic Synthetics のScriptBrowserはSelenium WebDriverJS で作成する必要があります。
ですが、全てのScriptをプログラムのようにコーディングする必要はありません。

New Relic Syntheticsの形式に対応したIDEや変換プラグインが利用できます

ScriptBrowserのScriptを作成できるツール

New Relic Syntheticsに対応したGUIツールとして以下の2つの方法が利用できます。

  1. Katalon Recorder (Selenium tests generator)
  2. Selenium IDE + Synthetics Formatter for Selenium IDE

それぞれのツールの使い方をご紹介します。

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株式会社 シニアテクニカルサポートエンジニア OSSの運用監視ソフトウェアの日本におけるテクニカルサポート、テクニカルトレーニングの立ち上げを行い、VMwareベースのクラウドサービス開発、AWSテクニカルサポート、クラウドアーキテクトを経て現職。 テクニカルサポート、テクニカルトレーニング、運用コンサルを専門領域としてお客様の運用負荷軽減を目指す。得意分野は運用設計、クラウド設計、OSSソフトウェア。 View posts by .