Web フォームは、テスト スクリプトの dclform セクションに定義されます。
フォーム宣言はフォーム名 (たとえば FORM_NAME) で指定されます。このフォーム名は任意の有効な識別子文字列で、その後にコロンを付ける必要があります。 左辺の文字列はフィールドまたはパラメータの名前を指定します。 イメージ マップ座標などの無名 URL パラメータには、空の文字列を使用できます。 右辺の値はフィールドまたはパラメータのデータ値を指定します。 これらは、グローバル定数、グローバル変数、ランダム変数のいずれでもかまいません。
以下の例は Web フォーム宣言の必須構文を示します。
dclform FORM_NAME: "field-name" := R-Value;
フォーム宣言で使用される文字列はすべて、サーバーに送信される際に URL エンコードされます。 つまり、安全でない文字は 16 進数の列 (%xx) に自動的に変換されます。 URL に直接付加されたパラメータはエンコードされません (たとえば WebUrl("http://host/cgi-bin/doit?MyUnSafeMessage&-?%?-?", 0.0) )。 これにより、アプリケーションで非標準の URL パラメータを使用できるようになります。
以下の例は、フォーム送信をシミュレートする Silk Performer スクリプトの一部を示しています。 ランダム変数 rsEmail および rsPlatform が 2 つの異なるランダム関数 (RndFile および RndInd) でランダム変数セクションに定義されています。 その後は WebFormPost や WebFormGet を呼び出すたびに、これらのランダム変数が更新され、その中に新しいランダム値が格納されます。 これらのランダム値は、リクエストに付けて 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;