ブラウザ合成モニタリングの主な目的は、ブラウザベースのテストを実行することです。ユーザの場所でブラウザをテストするため、ブラウザ合成では世界中の場所にエージェントが提供されています。ただし、スクリプトは、次のセクションで説明するセキュリティ上の理由により、別の場所で実行されます。

スクリプトに関する考慮事項

合成ジョブで構成されたブラウザは、共有 Windows マシン上で実行されます。合成スクリプトはネイティブ Python で記述されるため、共有 Windows マシンでは実行されません。代わりに、各合成スクリプトは、構成されたブラウザの場所にマップされている場所の Docker コンテナ内で分離されて実行されます。エージェントとスクリプトを分離することにより、スクリプトによって処理されるデータの安全性が保証され、エージェントのパフォーマンスに影響しません。

合成ジョブへの影響

エージェント/ブラウザの場所とスクリプトが実行される場所が合成ジョブにどのように影響する可能性があるのかを把握しておく必要があります。たとえば、実行コンテナの場所と構成されているブラウザが同じ地域にない場合、ネットワーク遅延の発生が予想される可能性があります。また、Python Requests ライブラリを使用して HTTP リクエストを作成している場合は、どこからリクエストが作成されているかを把握しておく必要があります。 

以下のセクションでは、ジョブがどのように影響を受けるかについて、いくつかの洞察を提供します。

URL の評価

URL の評価は、サイトの可用性をテストするために使用されます。スクリプトは実行されないため、影響を受けません。

合成スクリプト

スクリプトでは、さまざまなライブラリを使用して HTTP リクエストを作成できます。WebDriver API は、HTTP リクエストを作成するブラウザを模倣するために使用されます。cURL のようなリクエストを作成して REST API をテストしたりデータを取得したりするには、Requests ライブラリなどの HTTP ライブラリを使用できます。次の表に、スクリプトの実行方法と、発生する可能性のある問題の種類を示します。

スクリプトの実行フロー発生する可能性のある問題
  1. スクリプトを合成ジョブに追加し、次でブラウザの場所を構成します。Controller UI.
  2. 合成ジョブは、合成サーバに送信されます。
  3. 合成ジョブを実行する準備ができたら、次のようになります。
    1. Docker コンテナが作成されます。
    2. Docker コンテナは、選択した地域のエージェントと通信します。
    3. スクリプトはコンテナ内で実行されます。
  4. スクリプトコマンドは、リモート WebDriver を使用してブラウザで実行されます。
  5. スクリプトの実行が完了すると、エージェントはブラウザメトリックを収集し、コントローラ UI に送信します。
  6. Controller UI は、合成ジョブからメトリックを受信して表示します。

WebDriver API は、Web ページの機能をテストするために使用されます。Docker コンテナとブラウザの場所が異なる場合、スクリプトの実行と結果の間でネットワーク遅延が発生することがあります。

スクリプトは別の場所で実行されているため、ネットワーク遅延によってスクリプトの実行が完了するまでの時間が長くなることがあります。ただし、このプロセスによって収集されたブラウザテストの結果はこの遅延の影響を受けないため、結果は信頼性が高くなります。not

スクリプトの実行フロー発生する可能性のある問題
  1. スクリプトを合成ジョブに追加し、次でブラウザの場所を構成します。Controller UI.
  2. 合成ジョブは、合成サーバに送信されます。
  3. 合成ジョブを実行する準備ができたら、次のようになります。
    1. Docker コンテナが作成されます。
    2. Docker コンテナは、選択した地域のエージェントと通信します。
    3. スクリプトはコンテナ内で実行されます。
  4. スクリプトの実行が完了すると、エージェントはコントローラ UI にスクリプトの出力を送信します。
  5. Controller UI は、スクリプトコンソールで合成ジョブの出力を受信して表示します。

Requests ライブラリなど、HTTP リクエストを作成するために WebDriver 以外のものを使用している場合は、HTTP リクエストをどこから作成しているかを把握しておく必要があります。

また、コントローラ UI がブラウザメトリックのみをキャプチャすることを理解しておく必要があります。このため、スクリプトコンソールでリクエストの出力をキャプチャする必要がある場合があります。




実行コンテナとブラウザの場所のマッピング

使用可能なブラウザ(合成エージェント)の場所、リージョン、クラウドプロバイダー、および IP アドレスのリストについては、「SaaS ドメインと IP 範囲」を参照してください。