Criando a Classe de Script

Depois que todos os elementos de linguagem do modelo forem processados e os elementos de linguagem de código criados, o código para a classe de script será gerada.

Sobre Esta Tarefa

As variáveis globais do script precisam ser declaradas no início do script e seu número e tipos não serão conhecidos até que todos os elementos de teste sejam processados. Os nomes dessas variáveis e outras informações associadas são reunidos durante o processamento da árvore de elementos de teste e armazenados como atributos temporários dos elementos de teste no modelo de teste. A criação da classe de script é realizada pela classe ScriptDefinition e baseia-se em um modelo de script separado.

O modelo de script declara as importações e os globais do script. Ele contém os parâmetros para declarações específicas do tipo de script e para métodos que criam e retornam os elementos de teste.

Procedimento

A criação da classe de script de nível superior e do projeto de teste envolve as etapas a seguir:

  1. A árvore de elementos de linguagem e o elemento de script de nível superior são criados.
  2. A geração do texto de script é executada e o texto é armazenado em unidades de armazenamento do Eclipse.
  3. O projeto de teste é configurado, o caminho de classe é determinado e atualizado e o projeto é construído.

Exemplo

O código a seguir representa um exemplo da estrutura de código do 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  {

    
    //DECLARAÇÕES GLOBAIS
    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"); }

    //CONSTRUTOR DA CLASSE DE TESTE
    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 MÉTODO DE CRIAÇÃO
    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 MÉTODO DE CRIAÇÃO
    private HTTPAction request_1(IContainer parent) {
	HTTPAction reqAction = new HTTPAction(parent, .....);
        .....
	harvestContainer_16.addHarvestInstruction ("resp_content", dcVars[50], ..);
	.....
	return reqAction;

    }

}

Feedback