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;