Scriptklasse erstellen

Wenn alle Modellsprachelemente verarbeitet und die Codesprachelemente erstellt sind, wird der Code für die Scriptklasse generiert.

Informationen zu diesem Vorgang

Die globalen Scriptvariablen müssen zu Beginn des Scripts deklariert werden. Deren Anzahl und Typ sind so lange nicht bekannt, bis alle Testelemente verarbeitet sind. Die Namen dieser Variablen sowie andere zugehörige Informationen werden während der Verarbeitung des Testelementbaums erfasst und als temporäre Attribute der Testelemente im Testmodell gespeichert. Die Erstellung der Scriptklasse wird mit der Klasse ScriptDefinition abgeschlossen. Sie basiert auf einer separaten Scriptschablone.

Über die Scriptschablone werden die Importe und die Scriptglobalwerte deklariert. Darin enthalten sind die Parameter für scripttyprelevante Deklarationen und für Methoden zum Erstellen und Zurückmelden der Testelemente.

Vorgehensweise

Folgende Schritte sind erforderlich, um Scriptklasse und Testprojekt auf höchster Ebene zu erstellen:

  1. Sprachelementbaum und Scriptelement auf höchster Ebene werden erstellt.
  2. Der Scripttext wird generiert und in Eclipse-Speichereinheiten gespeichert.
  3. Das Testprojekt wird konfiguriert, der Klassenpfad definiert und aktualisiert und das Projekt erstellt.

Beispiel

Beim folgenden Code handelt es sich um ein Beispiel für die Struktur des Scriptcodes:
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;

    }

}

Feedback