HTTP(S) ロード テストでは、1 つの URL に対する同時要求が生成されます。 ターゲット URL をチェックして、適切なコンテンツ、エラー、およびリンクの切断を確認します。 POST および GET 要求、Cookie、フォーム送信、カスタム ヘッダー、パスワードで保護されたサイト (基本的な HTTP/HTTPS 承認、Cookie/スクリプト承認メカニズム)、およびタイムアウトしきい値をサポートしています。 HTTP(S) ロード テストでは 、IPv4 プロトコルと IPv6 プロトコルの両方がサポートされています。
HTTP(S) 要求パラメーターをコンテキスト パラメーター に変換して値を渡すことができます (たとえば、ロード テスト デバイス内の別の要求の応答から取得)。 URL、ヘッダー、リクエストコンテンツ(ポスト、プット、パッチのメソッド)、および準備スクリプトとポストスクリプトのコンテキストパラメータを設定できます。 詳細については、「 HTTP(S) 要求でコンテキスト パラメータを使用する方法」を参照してください。
URL
テストする URL を入力します。 アドレスは、ブラウザで使用する場合と同じように、http://www.example.com。http:// または https:// を住所の先頭に含める必要があります。 URL の最後に GET パラメーターを含めることができます。
時間検証のしきい値 (秒)
システムがエラーを返す前にターゲットリソースからの応答を待機する秒数を入力します。 この値を空白のままにすると、デフォルトのタイムアウトは 120 秒です。
要求の種類
「 要求タイプ 」フィールドで、最も一般的に使用される HTTP メソッドの 1 つを選択して、Web ページにモニター要求を送信できます。 HTTP 要求でペイロードを送信する必要がある場合は、対応するフィールドに入力します (詳細については、「 要求本文 」の章を参照してください)。 ペイロードは、 トレース (RFC2616) を除くすべてのタイプの要求で指定および送信できます。
URL リダイレクト
[ リダイレクトに従う ] オプションが [はい]に設定されている場合、システムは 301 応答で送信される URL のパスに従い、各リダイレクトを個別の HTTP 要求と見なします。 これにより、最初の URL と後続の応答の両方の応答時間を含む、テスト結果で完全なリダイレクト チェーン (要求がリダイレクトされるすべてのリンク) を実行できます。初期 URL だけでなく、チェーン内のすべての URL をテストする必要がある場合は、[ リダイレクトに従 う] オプションを有効にすることをお勧めします。 たとえば、リダイレクト チェーン内の URL ごとに SSL 証明書チェックを実行すると便利です。
初期 URL のみをテストする場合は、[ リダイレクトに従う ] オプションを無効にします。
コンテンツの検証
コンテンツ検証キーワードは、期待されるコンテンツが Web ページに読み込まれたことを確認するために使用されます。 [キーワード]フィールドでは、Web ページのコンテンツで検索する 1 つ以上の単語または語句を指定できます。 予期されるキーワードが見つからない場合、タスクはエラーを返します。
キーワード フィールドには複数の文字列を入力できます。 入力する値は、次のように論理式で区切ることができます。
{[("keyword1"&"keyword2")|!"keyword3"]}
どこ:
{[ – キーワード式の開始。
[}- キーワード式の終了。
() – 括弧をグループ化します。
& – 論理 AND;
|– 論理 OR;
!– 論理ではない;
“文字列” – キーワード。
正常なキーワード式には、次のように開始および終了の角かっこを含める必要があります。
{["keyword"]}
基本認証
基本認証スキームは、ユーザーが一部のWebサイトのコンテンツにアクセスできるようにするために使用されます。 ログイン資格情報が要求ヘッダーと共に Web サーバーに渡されます。
- ユーザー名: HTTP/S の基本認証またはダイジェスト アクセス認証のユーザー名が含まれています。
- ユーザーパスワード: HTTP/S基本認証またはダイジェストアクセス認証のパスワードが含まれています。
基本認証は、ベアラー トークンを含むベアラー認証やアクセス トークンを使用する OAuth 2.0 などの他の認証スキームと混同しないでください。
詳細については、基本認証ユーザー名とパスワードおよびモニタリング OAuth 2.0 ベースの API に関する記事を参照してください。
ヘッダー
このオプションを使用すると、カスタム ヘッダーを追加できます。 たとえば、コンテンツタイプヘッダーで、送信されるデータの MIME タイプと要求を定義できます。
Content-Type: text/html
要求に Content-Type ヘッダーが指定されていない場合、要求は既定のコンテンツ タイプ アプリケーション/x-www-form-urlencodedで送信されます。
DNS オプション
DNS オプション機能を使用すると、監視タスク中にドメイン ネーム サーバー (DNS) 要求を実行する方法をユーザーが選択できます。 [ カスタム DNS ホスト] セクションで、IP アドレスとホスト名のカスタム マッピングを指定します。 移行中に Web サイトをロード テストすると便利です。 したがって、すべてのユーザーが使い慣れた IP アドレスで使用し続けている間に、新しいサーバーで Web サイトをテストできます。
このオプションは、LoadView オンサイトエージェントではサポートされないことに注意してください。 オンサイト エージェントのカスタム DNS ホストをセットアップする方法の詳細なガイドラインについては、マイクロソフトのナレッジ ベースの「 オンサイト エージェントを使用してロード テスト用のカスタム DNS ホストをセットアップする方法 」を参照してください。
ポスト(プット、パッチ)データ
Dotcom-Monitor を使用すると、HTTP(S) 要求 (トレース要求を除く) でペイロードを送信できます。 HTTP 要求本文内のコンテンツは、”生” データ (JSON、XML など) または静的な名前値コレクション (フォームデータ) として送信できます。
名前と値のコレクションを操作するには、セクションの上部にある 詳細 スイッチャーを使用して詳細入力モードをオンにし、対応するフィールドに要求パラメーターの名前と値を指定します。
JSON オブジェクトなどのリクエストと共に「生」データを送信するには、入力フィールドに JSON ペイロードを入力します。 要求本文を動的に変更することもできます。 たとえば、現在の日時を POST 要求の一部として送信したり、JSON ペイロードの現在のセッション ID をリモート サーバーに渡したりする必要がある場合などです。 ドットコムモニターは、Razor 構文とデータ マスクを使用して、HTTP 要求のペイロードを動的に変更できます。
-
例。HTTP ポスト要求の動的 JSON 本文
HTTP 要求での動的 JSON 本文のしくみを理解するために、次の例を見てみましょう。 Web サイトで注文を送信する必要があり、送信トランザクションには次の 3 つの基本的な手順が順次実行されるとします。
- ログイン
- チェックイン
- 注文の提出
これらのステップを順次実行してテストを設定するには 、1つの監視デバイス内に3つのHTTPタスクを作成 する必要があります(ロードテストが行われている場合はロードテスト)。
アプリケーションにチェックインするには、HTTP 要求を使用して、現在の時刻と一意の GUID を JSON に送信する必要があると仮定します。 また、注文を送信するには、ログイン時に生成されたユーザー・セッション ID と注文時間がアプリケーションによって必要になります。
このテストを実装するには、まず、Web アプリケーション Web サーバーへの基本認証パラメーターを使用してログイン要求を構成する必要があります。 次に、実際のチェックイン時刻と一意の GUID を JSON 本文と共に渡す HTTP 要求を構成する必要があります。 この例では、JSON 本文に Razor 構文を使用して次の文字列を入力します。
{ "CheckInTime": "@Model["CurrentTime"]", "GenGuid": "@Model["Guid"]" }
ここで @Model[” < パラメータ名 > “は 、Razor 式で必要なコンテキスト パラメーター名を参照します。
コンテキスト パラメーターを宣言し、[スクリプトの準備] フィールドで Post Data の処理方法を指定する必要があります。
context.Guid = Guid.NewGuid().ToString(); // uniq random string context.CurrentTime = DateTime.Now.ToUniversalTime().ToString("yyyy-MM-dd\\Thh:mm:ss") + ".0Z"; // get current time in UTC ProcessPostDataByRazor(currentTask); // the call to process the Post Data content with the Razor engine
結果の HTTP 要求は次のようになります。
03:15:23 POST https://www.dotcom-monitor.com/CheckIn { "CheckInTime": "2021-03-30T08:15:22.0Z", "GenGuid": "5c5e3d23-66fd-49d0-bd57-62c516aea7e7" }
次のステップでは、注文を送信するように HTTP 要求を構成する必要があります。 これを行うために、JSON 本文の現在の時刻とセッション ID と、アイテムのモデル識別番号をターゲット エンドポイントに渡します。 このリクエストについては、JSON の本文を参照してください。
{ "OrderTime": "@Model["OrderTime"]", "VIEWSTATE": "@Model["Session"]", "ModelID": "2128506" }
現在のセッション ID 変数の値を渡すためには、View State メソッドを使用して、最初のログイン ステップで呼び出されたログイン ページから取得する必要があります。 準備スクリプトでコーディングできます。 さらに、実際のユーザーの思考時間をシミュレートするために、3分のオフセットで注文時間変数を設定します。 したがって、[スクリプトの準備] フィールドには、次の文字列が含まれます。
context.OrderTime = DateTime.Now.AddMinutes(3).ToUniversalTime().ToString("yyyy-MM-dd\\Thh:mm:ss") + ".0Z"; // order time + 3 min context.Session = (Tasks["Login"] as Http).body["//INPUT[@ID='__VIEWSTATE']", "VALUE"]; // track state value from Login page ProcessPostDataByRazor(currentTask);
結果の HTTP 要求は次のようになります。
03:15:45 POST https://www.dotcom-monitor.com/Order { "OrderTime": "2021-03-30T08:18:45.0Z", "VIEWSTATE": "<Server Generated ViewState>", "ModelID": "2128506" }
動的に変更されるペイロードを使用して HTTP 要求を構成する方法については 、「HTTP 要求でペイロードを動的に変更する方法」を参照してください。
スクリプトとポスト スクリプトの準備
フィールドには、特定の POST、GET、URL データ、またはカスタム ヘッダーの検証または発行に使用できる C# コードを含めることができます。 使用法の詳細については、「 スクリプトの準備と Post Script の使用」の記事を参照するか、テクニカル サポートに問い合わせてください。