• /
  • ログイン
  • 無料アカウント

スクリプト化ブラウザモニターの概要

Syntheticsモニタリングのスクリプト化されたブラウザを使用して、ウェブサイト内の移動や特定のアクションの実行、特定の要素があることの確認を行うブラウザのスクリプト化により、カスタムのユーザー体験を模倣、監視できます。使用可能な関数のリストについては、「スクリプト化ブラウザのリファレンス」をご覧ください。

スクリプト化モニターにはSelenium WebDriverJSを利用しています。スクリプトを実行するたびに、New Relicはウェブサイト内を移動し、スクリプトの各ステップを実行する、完全に仮想化されたSelenium駆動のGoogle Chromeブラウザを作成します。Syntheticsモニタリングには、スクリプトの作成を単純化する関数、ロケーター、その他の要素を入力補完するIDE形式のスクリプトエディタが搭載されています。

URLにアクセスする

すべてのスクリプトは、モニターがアクセスすべきURLを指定するところから開始します。URLを指定するには、$browser.get("url")を呼び出します:

$browser.get("https://mywebsite.com");

連続操作を行う

WebDriverJSは非同期であるため、スクリプトのアクションが順不同に実行される場合があります。順序通りに実行されるようにスクリプトアクションを強制するには、各アクションをthen(function(){})コールにラップします:

$browser.get("https://my-website.com").then(function(){
    return $browser.findElement($driver.By.linkText("Configuration Panel"));
});

複数のアクションを順に接続するには、各アクションをthen(function(){})コールにラップし、コール同士をつなげます。

$browser.get("https://my-website.com").then(function(){
    return $browser.findElement($driver.By.linkText("Configuration Panel"));
}).then(function(){
    return $browser.findElement($driver.By.partialLinkText("Configuration Pa"));
});

要素を特定する

モニター対象のURLを指定した後、通常はページ要素を個別に特定することになるでしょう。要素を検索してページ上にその要素が存在することを確認し、ページ要素を操作することができます。

要素は、classidlink textname、またはXpathでも検索することができます。これらの属性を見つけるには、ブラウザの開発者ツールを使用するか、対象Webサイトのソースコードを確認してください。ロケーター関数のリストについては、「ロケーター: ページ要素の検索」をご覧ください。

要素を操作する

スクリプト化モニターはSeleniumを使用して実際にGoogle Chromeブラウザを操作するため、スクリプト化モニターはユーザーと同じようにページ要素を操作することができます。たとえば、モニターはリンクのクリック、検索ボックスへのテキストの入力などを行うことができます。使用可能なアクションのリストについては、「ActionSequence: 複数アクションのリンク」をご覧ください。

まず、ページ要素を特定してからインタラクション関数をコールしてください。

待機処理とタイムアウト

画像や複雑な動的コンテンツなど、大きなページ要素の読み込みには時間がかかる場合があります。これによって、まだ読み込まれていない要素をモニターが処理したり、特定したりしようとしたときにスクリプトが失敗する可能性があります。

この問題を回避するには、指定のページ要素が読み込まれるまでスクリプトを停止する待ち条件を設定するか、または手動でアクションを順番に実行します。条件のリストについては、「条件: 一時停止と条件待ち」をご覧ください。

重要

最大で3分間実行された後、New Relicはスクリプトを手動で停止します。

スクリプトの結果をログに記録する

モニター結果を手動でスクリプトログに記録することもできます。スクリプトのトラブルシューティングにはログを利用します。スクリプトのどのステップが失敗しているかを知るには、スクリプトに各キーステップとともにログ機能を組み込みます。

解析サービスのブロックを解除する

Syntheticsはデフォルトで一般的な解析サービスのスクリプトをブロックします。指定サービスのスクリプトの実行を許可することができます。これによって該当サービスのスクリプトを実行し、実際のユーザーがアクセスした場合と同様のデータを収集することができます。

//Allow Google Analytics scripts to run
$browser.addHostnameToWhitelist(hostnameArr: ['google-analytics.com']);

//Visit https://my-website.com
$browser.get('https://my-website.com');

ユーザーエージェントのカスタマイズ

スクリプト化ブラウザのユーザーエージェントをカスタマイズして、アプリケーションのブラウザ固有の修正が適切に機能していることを確認するか、内部サイトを絞り込むためにセキュリティメカニズムをバイパスします。

//Simulate Internet Explorer 10.6
$browser.addHeader('User-Agent', 'Mozilla/5.0 (compatible; MSIE 10.6; Windows NT 6.1; Trident/5.0; InfoPath.2; SLCC1; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 2.0.50727) 3gpp-gba UNTRUSTED/1.0');
//Visit http://httpbin.org/user-agent
$browser.get('http://httpbin.org/user-agent');

重要

これは、サーバーへのリクエストのユーザーエージェントHTTPヘッダーを変更しているに過ぎません。navigator.userAgentの値は変更されません。

追加モジュールをインポートする

多数の一般的なNode.jsのモジュールをインポートして、テストスイートの強化やテストデータの自動挿入、複雑な関数の簡略化を行うことができます。詳細については、「Node.jsモジュールのインポート」をご覧ください。

その他のヘルプ

さらに支援が必要な場合は、これらのサポートと学習リソースを確認してください:

問題を作成するこのページを編集する
Copyright © 2020 New Relic Inc.