カスタマイズの詳細を Recorder に転送する

カスタマイズが完了して、スクリプトが正しく実行されるようになりました。しかし、今後記録されるスクリプトでも、毎回カスタマイズを行わなければならないという問題が残ります。

HTTP 解析ルールを利用すると、今後は、この種のカスタマイズを の Recorder に自動的に行わせることができます。つまり、手動でカスタマイズする必要がなく、記録スクリプトを自動生成できます。

それには、セッション ID の解析方法を調査する必要があります。TrueLog Explorer によって提供されるカスタマイズは、開始に適した場所を提供します。セッション ID が最初に発生した API 呼び出しがわかります。また、セッション ID を解析するために使用できる境界もわかります。

以下の例に示すように、TrueLog Explorer を使用して、HTML コード内でセッション ID が最初に出現する場所を見つけます。

<script LANGUAGE="JavaScript">
  function doProcess(mylink)
  {
    scheme="http://";
    server="u2";
    serverport="";
    path="/ShopItV60/";
    file="kindofpayment.asp?";
    name="348364005";
    price="15.9";
    choice="CreditCard";
    mylink.href=scheme + server + serverport + path
    + file + "choice=" + choice + "&price="
    + price + "&sid=" + name;
  }
</script>

TrueLog Explorer によって識別される左境界 ("name=\"") および右境界 ("\"") は、セッション ID を解析するための妥当な選択肢であるように思えます。これで、HTTP 解析ルールの初期バージョンを Recorder 用に書き込むことができます。

<?xml version="1.0" encoding="UTF-8" ?>
<RecordingRuleSet>
  <HttpParsingRule>
    <Name>ShopIt V6.0 Session Id</Name>
    <Search>
      <SearchIn>Body</SearchIn>
      <LB>
        <Str>name=&quot;</Str>
      </LB>
      <RB>
        <Str>&quot;</Str>
      </RB>
    </Search>
    <ScriptGen>
      <VarName>ShopItSessionId</VarName>
    </ScriptGen>
  </HttpParsingRule>
</RecordingRuleSet>

このルール ファイルをすべてのプロジェクトでグローバルに利用できるようにするには、Silk Performer の RecordingRules ディレクトリに保存します。ファイル名は任意ですが、ファイルの拡張子は .xrl にする必要があります。または、この記録ルールを 1 つのプロジェクトだけで使用する場合は、このファイルを、Silk Performer プロジェクトの Documents ディレクトリに保存します。

ShopIt V 6.0 のセッション ID は、HTTP のレスポンス ヘッダーには存在しないので、レスポンス本体だけを検索するように指定します (Search\SearchIn 属性を使用)。

左境界を検索して、セッション ID を見つけることができます。この境界は、属性 Search\LB\Str で指定します。XML では、引用符記号は、文字シーケンス "&quot;" を使用してエンコードされることにご注意ください。

セッション ID の終りには、単一引用符が付きます。これは、属性 Search\RB\Str で指定します。ここで、再び、引用符文字がエンコードされる必要があります。

最後に、解析結果用の変数に名前をつける方法に関する詳細を定義する必要があります。名前は、ScriptGen\VarName 属性を使用して指定します。