Création de la classe de script

Une fois tous les éléments de langage du modèle traités et les éléments de langage du code créés, le code de la classe de script est généré.

Pourquoi et quand exécuter cette tâche

Les variables de script globales doivent être déclarées au début du script ; leur nombre et leurs types ne sont pas connus tant que tous les éléments de test n'ont pas été traités. Les noms de ces variables et d'autres informations associées sont rassemblés lors du traitement de l'arborescence des éléments de test et stockés sous forme d'attributs temporaires pour les éléments de test dans le modèle de test. La classe de script est créée par la classe ScriptDefinition en fonction d'un modèle de script distinct.

Le modèle de script déclare les importations et les informations générales du script. Il contient les paramètres pour les déclarations propres au type du script et pour les méthodes de création et de renvoi des éléments de test.

Procédure

La création d'un projet de test et de la classe de script de niveau supérieur implique les étapes ci-dessous.

  1. L'arborescence des éléments de langage et les éléments de script de niveau supérieur sont créés.
  2. Le texte du script est généré et stocké dans des unités de stockage Eclipse.
  3. Le projet de test est configuré, le chemin d'accès aux classes est déterminé et mis à jour, et le projet est généré.

Exemple

Le code suivant est un exemple de structure de code de script :
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;

    }

}

Commentaires