URL 要求のパラメーターを置き換える
Web アプリケーション エディターを使用して Web アプリケーションをキャプチャする場合、アプリケーションに接続するたびに変更される 1 つ以上の要求に一意の情報を含めることができます。 通常、この情報は要求への応答に含まれており、1 つ以上の後続の要求で使用されます。
たとえば、アプリケーションでは、ユーザーがサインインするときに一意のセッション ID を作成できます。 このセッション ID は、サインイン プロセス後に各要求に含まれている必要があります。 正しいセッション ID がないと、これらの各要求は失敗します。 最初の要求が実行されるまで、この値が何であるかはわかりませんので、要求の構成に明示的に含めることはできません。 ブラウザー セッションを記録して Web アプリケーションを作成すると、各要求の URL にセッション ID が収集されます。 ただし、アプリケーションを実行すると、セッション ID の値が記録されたセッション ID とは異なるため、要求は失敗します。
このようなアプリケーションを構成するには、1 つの要求の応答の本文からコンテキスト パラメーターを抽出し、そのパラメーターの値を 1 つ以上の後続の要求で使用できます。 次に、後続の要求の明示的な値を、パラメーターを表す変数に置き換えます。 代理トランザクションが実行されるたびに、パラメーターが定義されている要求にパラメーターが設定されます。 後続の要求で変数を使用すると、要求がアプリケーションに送信される前に、収集された値に置き換えられます。
1 つのアプリケーションで任意の数のコンテキスト パラメーターを使用できます。 任意の数の要求で 1 つのパラメーターを使用できますが、パラメーターが定義されている要求の後で実行する必要があります。
セッション ID の例
ユーザーがサインインするときにアプリケーションがセッション ID を作成する例を考えてみましょう。 このセッション ID は、サインイン ページの後の各要求で必要です。 このシナリオを実装するには、最初に生成されたときにセッション ID をキャプチャしてから、後続の各要求でその値を使用する必要があります。
まず、「 Web アプリケーションの記録をキャプチャする方法 で説明されているプロセスを使用して、サインインとその後のアクションをキャプチャします。 アプリケーションにサインインし、いくつかのアクションを実行するための記録されたセッションは、次の例のようになります。
http://www.myapp.com/home.aspx
http://www.myapp.com/search.aspx?query=testing&sessionid=32793279321721
http://www.myapp.com/results.aspx?sessionid=32793279321721
http://www.myapp.com/submit.aspx?sessionid=32793279321721
この要求シーケンスでは、セッション ID は最初の要求によって作成され、2 番目、3 番目、および 4 番目の要求で使用されます。 このモニターを実行すると、最初の要求で、セッションのキャプチャ時に使用されたセッション ID と一致しない新しいセッション ID が生成されるため、失敗します。
パラメーター置換を使用してこの要求シーケンスを構成するには、セッション ID のコンテキスト パラメーターを作成する最初の要求に抽出規則を作成する必要があります。 抽出ルールは、要求の本文を調べて、sessionid 変数の値を見つけます。 その後、セッション ID の値ではなく、このパラメーターを使用するように後続の要求を変更します。
変更された要求は、次の例のようになります。
http://www.myapp.com/home.aspx
http://www.myapp.com/search.aspx?query=testing&sessionid=$ParametersContext/sessionID$
http://www.myapp.com/results.aspx?sessionid=$ParametersContext/sessionID$
http://www.myapp.com/submit.aspx?sessionid=$ParametersContext/sessionID$
抽出ルールを作成する
コンテキスト パラメーターは、 extraction ルールによって収集され、各抽出ルールは 1 つのコンテキスト パラメーターを収集します。 最初に必要なデータを生成する要求の Properties ダイアログで抽出規則を作成します。 抽出する値を識別するには、特定の要求から返された応答の本文を表示する必要があります。 ブラウザーで返されたページのソースを表示することも、HTTP 応答の詳細を調べることができるツールを使用することもできます。 Web アプリケーション エディターを使用してテキストを表示することはできません。
抽出する必要がある情報を含む要求を特定したら、その要求のプロパティの [ Extraction Rules タブを表示し、1 つ以上の抽出ルールを作成します。 各抽出規則の詳細を次の表に示します。
オプション | 説明 |
---|---|
コンテキスト パラメーター名 | コンテキスト パラメーターを指定する名前を入力します。 |
次で始まる | パラメーター値の先頭を識別するテキストを応答の本文に入力します。 文字列が一意であることを確認するのに十分な文字を指定する必要があります。 パラメーターの値は、最後に指定した文字の直後に開始されます。 |
次で終わる | パラメーター値の末尾を識別するテキストを応答の本文に入力します。 パラメーターの値は、最初に指定した文字の直前に終了します。 |
インデックス | [次の値で始まる] ボックスのテキストが複数回出現する場合、この値で使用する値を示します。 テキストが 1 回だけ表示される場合、または最初に出現したテキストに抽出するテキストが表示される場合、値は 0 にする必要があります。 2 番目の値を抽出する場合は、値を 1 にする必要があります。 |
一致するテキストの検索中に大文字と小文字を区別しない | [次の値で始まる] および [次の値で終わる] ボックスで検索される文字の大文字と小文字の区別を無視するかどうかを指定します。 |
抽出された文字列の URI エンコードを実行する | 抽出した文字列を収集後にエンコードするかどうかを指定します。 |
要求にパラメーターを挿入する
要求でパラメーターを使用する場合は、明示的な値をパラメーターを表す変数に置き換えます。 変数の形式は $ParametersContext/<ContextParameterName>$ です。 要求が実行されると、変数はパラメーターによって抽出されたデータに置き換えられます。
次の 2 つのメソッドのいずれかを使用して、要求に変数を挿入できます。
- [ Request のプロパティ ダイアログで、 General タブを選択し、 Request URL を選択して要求の要求 URL を変更します。
- Request プロパティダイアログで、General タブを選択し、Insert パラメーター ボタンを選択します。 要求の Insert パラメーター ダイアログを使用します。 これは、要求の Request プロパティ ダイアログの General タブの Insert パラメーター ボタンからアクセスします。
パラメーター抽出を使用したサンプル Web アプリケーション
次の手順では、Web アプリケーションでパラメーター抽出を使用する例を示します。 この例では、Bing ホーム ページの [Popular Now]\(現在人気\) セクションの最初のエントリに対してクエリを実行します。 この値は定期的に変更されるため、最初にメイン ページに接続し、応答の本文から検索用語を収集する必要があります。 次に、この用語を使用して、実際の検索を実行する要求を作成します。
[Popular Now]\(現在人気\) セクションが強調表示されたメインの Bing ページを次に示します。
応答本文で検索語句が表示される場所を決定するには、ページのソースを表示できます。 ソースの一部を、[Popular Now]\(現在人気\) セクションの HTML コードと共に以下に示します。 この HTML コードでは、次の図で強調表示されている検索文字列のみが必要です。 要求は、 https://www.bing.com の後にこの文字列が続く形式です。
用語自体を引き出すだけでかまいませんが、パラメーターに文字列全体を含める方が簡単です。 この文字列の前には文字 <h3>Popular now</h3><ul><li><a href=> があり、次の " の出現で終了します。 これらは、パラメーター抽出を定義するときに使用する値です。
サンプル Web アプリケーションを記録する
- 「 Web アプリケーションの記録をキャプチャする方法 Web アプリケーションを記録する方法」の手順を使用します。
- 記録中に、 https://www.bing.comに接続します。
- 必要に応じて、ブラウザーのオプションを使用して Bing ホーム ページのソースを表示し、HTML コードの Popular Now セクションを見つけます。
- Popular Now で最初の検索語句を選択します。
- 記録を Web アプリケーションに保存します。
- これは必要ないため、最後の要求を削除します。 最後の要求を削除するには、要求を選択し、Actions ペインで Delete を選択します。 結果の要求は、次の URL のようになります。
抽出ルールを作成する
最初の要求を選択し、Actions ペインで Properties を選択します。
[抽出ルール] タブを選択します。
[追加] を選択します。 抽出ルールの追加 ダイアログが開きます。
抽出規則の追加 ダイアログの Context パラメーター名 ボックスに、「SearchString」と入力します。
[開始日] ボックスに「<h3>Popular now</h3><ul><li><a href=> と入力します。
[ Ends with ] ボックスに「 "」と入力します。 抽出規則は、次の図のようになります。
[ OK を選択して抽出規則を保存して閉じます。
OK を選択して、要求を保存して閉じます。
要求にパラメーターを挿入する
2 番目の要求を選択し、Actions ペインで Properties を選択します。
[ General タブで、パラメーター Insert を選択。
[文字列] ボックスで、「www.bing.com/」の後のすべてのテキストを削除します。
URL の末尾にカーソルを置いた状態で、www.bing.com直後の Parameters ボックスで SearchString を選択し、Insert を選択します。 これにより、変数 $ParametersContext/SearchString$ が挿入されます。 最終的な要求は次の図のようになります。
[OK] を選択してダイアログを閉じます。
OK を選択して、要求を保存して閉じます。 変更された要求シーケンスは、次の図のようになります。
Apply を選択して変更を適用し、Web アプリケーション エディターを閉じます。