スクリプト・クラスの作成

すべてのモデル言語エレメントが処理されてコード言語エレメントが作成されると、スクリプト・クラスのコードが生成されます。

このタスクについて

グローバル・スクリプト変数はスクリプトの先頭で宣言する必要があり、 すべてのテスト・エレメントが処理されるまでその数とタイプは分かりません。 これらの変数の名前および他の関連した情報は、 テスト・エレメント・ツリーの処理中に収集され、テスト・モデルのテスト・エレメント の一時属性として保管されます。スクリプト・クラスの作成は、 ScriptDefinition クラスによって遂行され、 別のスクリプト・テンプレートに基づいて行われます。

スクリプト・テンプレートは、 インポートおよびスクリプト・グローバルを宣言します。これには、スクリプトのタイプ固有宣言のパラメーター、およびテスト・エレメントを作成して戻すメソッドのパラメーターが含まれています。

手順

最上位スクリプト・クラスおよびテスト・プロジェクトの作成には、以下のステップが含まれます。

  1. 言語エレメント・ツリーおよび最上位スクリプト・エレメントが作成されます。
  2. スクリプト・テキストの生成が実行され、テキストが Eclipse ストレージ・ユニットに保管されます。
  3. テスト・プロジェクトが構成され、クラスパスが決定および更新され、プロジェクトが構築されます。

以下のコードは、スクリプト・コード構造の例を表しています。
package customcode;

import com.ibm.rational.test.lt.execution.http.IHTTPRequest;
...

public class Google_Test_C240F3CB2D546DE2A9BDE160BDA411D9 extends com.ibm.rational.test.lt.execution.protocol.impl.HTTPTestScript  {

    
    //GLOBAL DECLARATIONS
    private IBuiltInDataSource bds1 = new          
                       com.ibm.rational.test.lt.kernel.custom.impl.timestampdatasource();

    { builtInDCVars[50] = new BuiltInCorrelationVar(bds1);

        builtInDCVars[50].setProperty(1, "16");
        builtInDCVars[50].setProperty(2, "16"); }

    //TEST CLASS CONSTRUCTOR
    public Google_Test_C240F3CB2D546DE2A9BDE160BDA411D9(IContainer container, String  
                                                            invocationId) {

	super(container, "google", invocationId);

	setTimeoutScheme(IKTimeoutControl.CONTINUE);
	setArmEnabled(false);

	public void execute() {
         this.add(page_1(this));
         ...
         super.execute();
    }
	......

 
    //page_1 CREATION METHOD
    private HTTPPage page_1(IContainer parent) {

	    HTTPPage page = new HTTPPage(parent, "Google", .....)  {

	        public void execute() {
                 this.add(request_1(this);
                 ... 
          			 super.execute();
             }             
              .....
        };
        return page;
    }

    //request_1 CREATION METHOD
    private HTTPAction request_1(IContainer parent) {
	HTTPAction reqAction = new HTTPAction(parent, .....);
        .....
	harvestContainer_16.addHarvestInstruction ("resp_content", dcVars[50], ..);
	.....
	return reqAction;

    }

}

フィードバック