• ログイン今すぐ開始

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

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

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

Selenium IDEを使用してワークフローを記録し、New Relicで必要な形式でエクスポートする方法については、この短いYouTubeビデオをご覧ください(3分49秒)。

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でも検索できます。これらの属性を検索するには、ブラウザの開発者ツールを使用、またはウェブサイトのソースコードを確認してください。ロケーター関数のリストについては、ロケーター: ページ要素の検索をご覧ください。

要素を操作する

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

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

待機処理とタイムアウト

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

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

重要

最大で3分間のランタイム後、New Relicはスクリプトを手動で停止します。

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

モニター結果を手動でスクリプトログに記録することもできます。ログ記録を使用してスクリプトのトラブルシューティングを行う:スクリプトのどのステップが失敗しているかを知るには、スクリプトに各キーステップとともにログ関数を含めます。

重要

最大ログ長は50,000バイトです。50,000バイトを超えるスクリプトログは切り捨てられます。

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

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 © 2022 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.