• /
  • EnglishEspañol日本語한국어Português
  • ログイン今すぐ開始

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

スクリプト化されたブラウザはカスタムのユーザー体験をエミュレートするもので、ウェブサイト内のナビゲーションや特定のアクションの実行、特定の要素があることの確認を行うようにブラウザをスクリプト化できます。スクリプト化モニターはSeleniumウェブドライバで駆動されます。スクリプトを実行するたびに、New Relicはウェブサイト内を移動し、スクリプトの各ステップを実行する、完全に仮想化されたSelenium駆動のChromeブラウザまたはFirefoxブラウザを作成します。外形監視には、スクリプトの作成を単純化する関数、ロケーター、その他の要素を入力補完するIDE形式のスクリプトエディタが搭載されています。利用可能な全関数の一覧については、スクリプト化ブラウザのリファレンスを参照してください。

スクリプト化ブラウザモニターを作成する方法

  1. one.newrelic.com > All capabilities > Synthetic monitoringに移動します。

  2. Create monitorをクリックします。

  3. さまざまな場所でのサイトの可用性と機能をテストするには、User flow / functionalityタイルを選択します

    Create monitor - User flow / functionality
  4. モニターを設定します。必要なフィールドに入力してください。モニターの名前を追加します。テストするブラウザとエミュレートされたデバイスを選択します。

    Create monitor - configure monitor
  5. Select locationsをクリックして、モニターをテストする場所を選択します

    Create monitor - select locations
  6. Write scriptをクリックして、モニターに実行させるアクションを記述するスクリプトを追加します。 モニターは、作業に使用できるサンプルスクリプトをエディターに事前に入力します。または、これを削除して最初から開始することもできます

  7. スクリプトをテストする場合は、 Validateをクリックします。 スクリプトによっては数分かかる場合があります

  8. Save monitorをクリックします。

URLにアクセスする

すべてのスクリプトは、モニターがナビゲートする必要があるURLを指定することで開始します。URLを指定するには、$webDriver.get("url")を呼び出します。

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

連続操作を行う

WebDriverJSは非同期であるため、スクリプトのアクションが順不同に実行される場合があります。順序通りに実行されるようにスクリプトアクションを強制するには、awaitキーワードを使用します。

await $webDriver.get("https://my-website.com");
await $webDriver.findElement($selenium.By.linkText("Configuration Panel"));

各アクションをthen(function(){})呼び出しでラップすることもできます。 ただし、その場合、ラップされた関数は、スクリプトが進む前に各非同期関数が完了するように、各非同期関数をreturn必要があります。

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

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

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

要素を特定する

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

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

要素を操作する

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

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

待機処理とタイムアウト

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

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

重要

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

結果を手動でスクリプトログに記録する

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

重要

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

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

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

//Allow Google Analytics scripts to run
await $urlFilter.addToAllowList(['google-analytics.com']);
//Visit https://my-website.com
await $webDriver.get('https://my-website.com');

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

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

//Simulate Internet Explorer 10.6
$headers.add('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
await $webDriver.get('http://httpbin.org/user-agent');

重要

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

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

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

重要

For Non-Legacy Runtimes

スクリプト環境には書き込み保護されたディレクトリが含まれています。スクリプトでファイルを保存する必要がある場合は、ファイル名の先頭に次のいずれかのパスを追加します。

  • runtime/input-output/input/
  • runtime/input-output/output/
Copyright © 2024 New Relic株式会社。

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