LoadRunner と Web_Reg_Save_Param の相関関係の例
相関とは何ですか?
相関関係は、その名前が示すように、XNUMX つの変数またはエンティティ間の関係を定義するメカニズムです。 ある辞書では、これを「一方の変数の値の系統的な変化に伴い、他方の系統的な変化が起こるような、XNUMX つ以上の変数間の統計的関係」と定義しています。
なぜ相関関係が必要なのでしょうか?
次のシナリオとの相関関係を理解しましょう。
LoadRunner を使用してスクリプトを記録しているとします。
クライアント/サーバー通信
- 記録中に、クライアントはセッションを開始するリクエストをサーバーに送信します。
- サーバーはリクエストを受信し、新しいセッション ID ABC を割り当てます。
- クライアントはセッション ID ABC をスクリプトに保存します。
- クライアントは ID ABC でセッションを開始し、サーバーに記録を許可するリクエストを送信します。
- サーバーは ID ABC を認識し、クライアントがスクリプトを記録できるようにします。
- ここで、再生中のクライアントとサーバーの通信を調べてみましょう。
- 再生中に、クライアントはセッションを開始するリクエストをサーバーに送信します。
- サーバーはリクエストを受信し、新しいセッション ID XYZ を割り当てます。
- クライアントは、以前に記録されたセッション ID ABC でセッションを開始し、記録を許可するリクエストをサーバーに送信します。
- サーバーは、割り当てられた ID XYZ を予期していたため、ID ABC を識別できず、セッションが失敗します。
実行時に送信される動的値を取得して解析し、この値をサーバーに返すソリューションが必要です。 このソリューションを使用したクライアントとサーバーの通信は次のようになります。
- 再生中に、クライアントはセッションを開始するリクエストをサーバーに送信します。
- サーバーはリクエストを受信し、新しいセッション ID ZZZ を割り当てます。
- クライアントは、リクエストからこの新しいセッション ID ZZZ を解析します。
- クライアントが ID ZZZ でセッションを開始するリクエストを送信します。
- サーバーは ID ZZZ を認識し、クライアントがスクリプトを再生できるようにします。
これはただです 相関.
クリック こちら ビデオにアクセスできない場合
VUGen の場合、相関とは、応答と先行する要求の間の結合関係です。
リクエストが、サーバーからフェッチされたセッション ID、サーバー日付/時刻など、サーバーから以前に受信した応答に基づいている場合は、さまざまな状況が考えられます。 これらの値は、アプリケーションを実行するか、スクリプトを記録するたびに異なります。 明らかに、スクリプトの実行がサーバーから返される値に依存する場合、サーバーの応答を「キャッチ」し、サーバーが期待するリクエストにアタッチできるメカニズムを見つける必要があることを意味します。 これは通常、LoadRunner では相関と呼ばれます。
簡単に言うと、相関関係を使用した解決策は次のとおりです。
- ステップからの出力値のキャプチャ
- 上記で取得した値を後続のすべてのステップへの入力として使用します
VUGen/LoadRunner では、相関関係は 2 つのカテゴリに分類されます。
- 自動相関
- 手動相関
自動相関
LoadRunner は、相関関係を自動的に簡単に実行するメカニズムを提供します。
VUGen では、サーバー応答のさまざまな値を内部で比較できるように、記録されたスクリプトを少なくとも XNUMX 回実行する必要があります。
自動相関は 3 つのカテゴリに分類できます。
- 相関関係の自動検出
- ルールベースの相関関係
- すべてのステートメントを相関させる
ルール名 | いつ使用するか |
---|---|
相関関係の自動検出 | HP LoadRunner でサポートされるアプリケーション サーバーの動的データを検出し、関連付けます。 |
ルールベース | コンテキストがわかっている、サポートされていないアプリケーション サーバーを操作する場合に使用されます。 |
すべてを関連付ける | すべての動的データをブラインド方式で相関付けるのに役立ちます。 |
自動相関は簡単に見えますが、エラーが発生しやすく、機能するケースは 5% にすぎません。 常に手動相関を使用することをお勧めします。
記録時の自動相関を設定するには、スクリプトを記録した後、記録時間設定で以下の設定を行ってください。
「記録」=>「記録オプション」をクリックします (または Ctrl +F7 をクリックします)。
以下のウィンドウが開きます。
「相関」=>「構成」をクリックすると、以下のウィンドウが開きます。
ここで、対象アプリケーションで使用されるすべてのアプリケーション (ASPNET) などに対してチェックマークを付ける必要があります。 右側には、_VIEWSTATE などの相関関係の候補を検出するルールが表示されます。 [新しいルール] ボタンをクリックして、さらにアプリケーションやカスタム ルールを追加することもできます。
「ルール」をクリックすることもできます。以下のように表示されます。
自動相関が機能するには、ルール スキャンがチェック済みとしてマークされていることを確認する必要があります。 「見つかった値を自動的に相関させる」をクリックすると、VUGen は相関候補が見つかっても選択を求めるプロンプトを表示せず、単にそれらを相関させます。
相関関係に使用される API については後ほど説明します。ただし、テキスト比較ではなく HTML 比較を使用することをお勧めします。
ルールを選択したら、「OK」ボタンをクリックしてウィンドウを閉じます。
ソフトウェアの制限をクリック メニューから実行すると、VUGen は新しい構成でスクリプトを (記録することなく) 再生成します。 VUGen は、相関を処理するために必要なコードを自動的に追加します。 このサンプルについては、「手動相関」で詳しく見ていきます。
相関関係を手動で実行する場合、または自動相関関係を使用する場合、コード部分にはまったく同じ構文と機能が含まれることに注意してください。
スクリプトを自動相関させる手順は次のとおりです。
- スクリプトを記録する
- リプレイスクリプト
- 相関させる値を特定する
- 値を選択し、自動相関ボタンをクリックします。
- スクリプトを再度実行して検証します。 実行が成功したということは、相関が成功したことを意味します。
ヒント:
- 相関は、異なる値を使用してスクリプトを実行するのに役立ちます
- 相関によりスクリプトのサイズも削減されます
手動相関
手動相関とは、絶えず変化する値に対応するコードをスクリプトに直接記述することです。 以下のステップに分割できます。
- キャプチャする値を決定する
- キャプチャする値の左右のテキスト境界を見つける (WEB)
- どのテキスト境界を使用する必要があるかを検索します
- web_reg_save_param 関数をスクリプトの、キャプチャする値を持つページを要求するコード部分の上に追加します。
- パラメータ名、左境界、右境界、およびオカレンスを関数に追加します。
- 動的値が発生するたびにスクリプト内でパラメータ化します。
- 正しい実行を検証する
web_reg_save_param (" OracleAppJSESSIONID3", "LB/IC=JSESSIONID=", "RB/IC=;", "Ord=l", "Search=headers", "RelFrameId=l", LAST); web_reg_save_param("Siebel_Analytic_ViewState2", "LB/IC=ViewState\" value=\"", "RB/IC=\"", "Ord=1", "Search=Body", "RelFrameId=l", LAST);
手動相関は、VUser Comparison によって実行できます。 相関関係の VUser 比較方法のステップは、次のように分割できます。
- 相関させる必要がある動的値を特定する
- 動的値を含むサーバー検索応答
- パラメータの動的値をキャプチャします。
- 出現するすべての動的値をパラメータに置き換えます。
- 変更の確認
Web_reg_save_param 関数について
VUGen は、候補を関連付けるために次のような複数の関数または API を提供します。
- web_reg_save_param
- web_reg_save_param_ex
- web_reg_save_param_regexp
- web_reg_save_param_xpath
ここでは簡単な紹介が提供されていますが、関数とそのパラメータについて詳しく理解するには、VUGen を開いて関数を記述し (または Steps Toolbox を使用)、関数にカーソルを移動して F1 キーを押します。VUGen ヘルプに慣れて習慣にしてください。この業界で働いていると、頻繁にこれに対処する必要があります。
関数の詳細は次のとおりです。
web_reg_save_param(パラメータ名 , 左境界 , 右境界 )
属性のリスト
変換します。 可能な値は次のとおりです。
HTML_TO_URL: HTML エンコードされたデータを URL エンコードされたデータ形式に変換します
HTML_TO_TEXT: HTML エンコードされたデータをプレーン テキスト形式に変換します。 この属性はオプションです。
リダイレクトを無視する:「Ignore Redirections=Yes」を指定し、サーバー応答がリダイレクト情報(HTTPステータスコード300-303、307)の場合、応答は検索されません。 代わりに、リダイレクト応答を受信した後、リダイレクトされた場所に GET リクエストが送信され、その場所からの応答に対して検索が実行されます。
この属性はオプションです。 デフォルトは「リダイレクトを無視=いいえ」です。
ポンド: パラメータまたは動的データの左側の境界。 LB 値を指定しない場合は、データの先頭からのすべての文字が境界として使用されます。 境界パラメータでは大文字と小文字が区別されます。 検索テキストをさらにカスタマイズするには、XNUMX つ以上のテキスト フラグを使用します。 この属性は必須です。 「境界引数」セクションを参照してください。
見つかりません: 境界が見つからず空文字列が生成される場合の処理オプション。
デフォルト値の「Not found=error」では、境界が見つからない場合にエラーが発生します。
「Not found=warning」(以前のバージョンでは「Not found=empty」)、エラーは発行されません。 境界が見つからない場合は、パラメータ数を 0 に設定し、スクリプトの実行を続行します。 「警告」オプションは、文字列が見つかったかどうかを確認したいが、スクリプトを失敗させたくない場合に最適です。
注意: スクリプトで「エラー時に続行」が有効になっている場合、NOTFOUND が「エラー」に設定されている場合でも、境界が見つからない場合はスクリプトは続行されますが、エラー メッセージが拡張ログ ファイルに書き込まれます。
この属性もオプションです。
ORD: 一致の順序位置またはインスタンスを示します。 デフォルトのインスタンスは 1 です。「すべて」を指定すると、パラメータ値が配列に保存されます。 この属性はオプションです。
注: ORD の代わりにインスタンスの使用は、下位互換性のためにサポートされていますが、非推奨です。
RB: パラメータまたは動的データの右境界。 RB 値を指定しない場合は、データの末尾までのすべての文字が境界として使用されます。 境界パラメータでは大文字と小文字が区別されます。 検索テキストをさらにカスタマイズするには、XNUMX つ以上のテキスト フラグを使用します。 この属性は必須です。 「境界引数」セクションを参照してください。
リリースフレームID: リクエストされた URL に対する HTML ページの階層レベル。 可能な値は ALL または数値です。 詳細な説明については、「RelFrameID 属性」をクリックしてください。 この属性はオプションです。
ご注意: RelFrameID は GUI レベルのスクリプトではサポートされていません。
保存レン: パラメータに保存する、指定されたオフセットからの、見つかった値の部分文字列の長さ。 この属性はオプションです。 デフォルトは -1 で、文字列の最後まで保存することを示します。
オフセットの保存: パラメータに保存する、見つかった値の部分文字列のオフセット。 オフセット値は負でない必要があります。 デフォルトは 0 です。この属性はオプションです。
サーチ: 検索の範囲 - 区切られたデータを検索する場所。 可能な値は、Headers (ヘッダーのみを検索)、Body (ヘッダーではなく本文データのみを検索)、No resource (すべてのヘッダーとリソースを除外し、HTML 本文のみを検索)、または 全て (本文、ヘッダー、リソースを検索)。 デフォルト値は「すべて」です。 この属性はオプションですが、一般的には推奨されます。