Web フォーム

Web フォームは、テスト スクリプトの dclform セクションに定義されます。

Web フォーム宣言の構文

フォーム宣言はフォーム名 (たとえば FORM_NAME) で指定されます。このフォーム名は任意の有効な識別子文字列で、その後にコロンを付ける必要があります。 左辺の文字列はフィールドまたはパラメータの名前を指定します。 イメージ マップ座標などの無名 URL パラメータには、空の文字列を使用できます。 右辺の値はフィールドまたはパラメータのデータ値を指定します。 これらは、グローバル定数、グローバル変数、ランダム変数のいずれでもかまいません。

以下の例は Web フォーム宣言の必須構文を示します。

dclform
  FORM_NAME:
  "field-name" := R-Value;

Web フォーム文字列のエンコーディング

フォーム宣言で使用される文字列はすべて、サーバーに送信される際に URL エンコードされます。 つまり、安全でない文字は 16 進数の列 (%xx) に自動的に変換されます。 URL に直接付加されたパラメータはエンコードされません (たとえば WebUrl("http://host/cgi-bin/doit?MyUnSafeMessage&-?%?-?", 0.0) )。 これにより、アプリケーションで非標準の URL パラメータを使用できるようになります。

Web フォーム スクリプトの例

以下の例は、フォーム送信をシミュレートする Silk Performer スクリプトの一部を示しています。 ランダム変数 rsEmail および rsPlatform が 2 つの異なるランダム関数 (RndFile および RndInd) でランダム変数セクションに定義されています。 その後は WebFormPostWebFormGet を呼び出すたびに、これらのランダム変数が更新され、その中に新しいランダム値が格納されます。 これらのランダム値は、リクエストに付けて Web サーバーに自動的に送信される URL エンコードされたフォーム文字列を生成するのに使用されます。 WebFormPost がフォーム内容の文字列を HTTP ヘッダーの末尾に付加するのに対して、WebFormGet は URL の末尾に "?" で区切って付加します。

dclrand
  rsEmail : RndFile
  ("elname.rnd", 20);
  rsPlatform : RndInd("Windows NT" = 0.3;
  "Windows 2000" = 0.6;
  "other" = 0.1);

dcltrans
  transaction TWebFormPost
  begin
    WebFormPost("http://www.comp.com/cgi/FormMail.pl", CGI_CUST_SUPPORT, nWait);
    WebFormGet("http://www.comp.com/cgi/form", CGI_CUST_SUPPORT, nWait);
  end TWebFormPost;

dclform
  CGI_CUST_SUPPORT:
  "email" := rsEmail,
  "sitetype" := "business",
  "sitelang1" := "english",
  "platform" := rsPlatform;