Accesso a un pool di dati da una verifica Hyades

È possibile utilizzare un pool di dati da una verifica Hyades eseguendo chiamate all'API del pool di dati da un codice Java generato della verifica.

Il pool di dati che si desidera utilizzare deve esistere già.

Il codice Java per la verifica dal quale si desidera utilizzare un pool di dati deve esistere. Generare il codice facendo clic con il tasto destro del mouse sulla verifica e selezionando Genera.

Aggiungere questi jars al percorso di generazione Java. [ECLIPSE_HOME] è la directory di installazione di Eclipse:
  • [ECLIPSE_HOME]/plugins/org.eclipse.hyades.models.common_3.0.0/common_model.jar
  • [ECLIPSE_HOME]/plugins/org.eclipse.hyades.test.datapool_3.0.0/datapool_api.jar
  • [ECLIPSE_HOME]/plugins/org.eclipse.emf.ecore_2.0.0/runtime/ecore.jar
  • [ECLIPSE_HOME]/plugins/org.eclipse.emf.common_2.0.0/runtime/common.jar
La procedura per utilizzare un pool di dati da un codice Java della verifica viene riportata di seguito. Un esempio segue la procedura.
  1. Aprire la verifica nell'editor Java. Il codice di origine della verifica non è visibile nella prospettiva Verifica. Per visualizzare la verifica, aprire la prospettiva Java e passare alla cartella di origine (src/test, per impostazione predefinita).
  2. All'inizio della verifica, aggiungere istruzioni di importazione per le classi API del pool di dati.
  3. Nella verifica, individuare la classe post contenente un valore che si desidera sostituire con i valori da una colonna del pool di dati.
  4. All'inizio della classe, aggiungere il codice che crea un riferimento dell'istanza al pool di dati e avvia un ciclo di iterazione.
  5. Individuare la riga contenente il valore da sostituire e aggiungere il codice che sostituisce il valore con un riferimento alla colonna del pool di dati appropriata.
  6. Alla fine della classe, prima della parentesi chiusa, chiudere il ciclo di iterazione mediante il pool di dati.

Il seguente estratto, che illustra il passo 2, mostra le istruzioni di importazione all'inizio di una verifica Hyades generata. Le righe in grassetto alla fine sono le istruzioni di importazione del pool di dati da aggiungere alla verifica.

package test;
import java.util.Random;
import junit.extensions.RepeatedTest;
import junit.framework.Test;
import org.eclipse.hyades.test.common.junit.DefaultTestArbiter;
import org.eclipse.hyades.test.common.junit.HyadesTestCase;
import org.eclipse.hyades.test.common.junit.HyadesTestSuite;
import org.eclipse.hyades.test.http.runner.HttpCookieCache;
import org.eclipse.hyades.test.http.runner.HttpExecutor;
import org.eclipse.hyades.test.http.runner.HttpHeader;
import org.eclipse.hyades.test.http.runner.HttpRequest;
import org.eclipse.hyades.test.http.runner.HttpResponse;
import org.eclipse.hyades.test.http.runner.internal.util.HttpTestUtil;
import org.eclipse.hyades.models.common.datapool.impl.Common_DatapoolFactoryImpl;
import org.eclipse.hyades.execution.runtime.datapool.*;

Il seguente estratto, che illustra il passo 3, è stato estrapolato da una verifica in cui il tester ha visitato il sito www.amazon.com e ha cercato un libro intitolato atonement.

	public void c8postwww_amazon_com() throws Exception {
		HttpRequest request = new HttpRequest();
		request.setMethod("POST");
		request.setVersion("1.1");
		request.setHost("www.amazon.com");
		request.setPort(80);
		request
				.setAbsolutePath("/exec/obidos/search-handle-form/102-5005957-7048952");
		request
				.setBody("url=index%3Dstripbooks=atonement=10=6");

Nel seguente estratto, che illustra i passi 4 e 5, le righe in grassetto mostrano come modificare il codice della verifica generata in modo che la colonna title nel pool di dati books sostituisca il valore atonement. Al posto di "pathname of books.datapool" nella seconda riga, immettere il nome percorso completo del pool di dati books.

	public void c8postwww_amazon_com() throws Exception {

  IDatapoolFactory dpFactory = new Common_DatapoolFactoryImpl();
     IDatapool datapool = dpFactory.load(new File("pathname of books.datapool"), false); //false - nonshared
     IDatapoolIterator iter = dpFactory.open(datapool, 
                 "org.eclipse.hyades.datapool.DatapoolIteratorSequentialPrivate");
     iter.dpInitialize(datapool, -1);  //-1 - go through all ECs


     while (!iter.dpDone())
     {

		   HttpRequest request = new HttpRequest();
		   request.setMethod("POST");
		   request.setVersion("1.1");
		   request.setHost("www.amazon.com");
		   request.setPort(80);
		   request
			.setAbsolutePath("/exec/obidos/search-handle-form/102-5005957-7048952");
	// request
		//	.setBody("url=index%3Dstripbooks=atonement=10=6");

    //new 
        String title = iter.dpCurrent().getCell("title").getStringValue();
        iter.dpNext();
        String body = "url=index%3Dstripbooks=" +  title + " =10=6";
        request.setBody(body);		
        //end new
        // Lines from test ommitted ...
        }// Close loop through datapool

Argomento principale: Verifiche con dati variabili

(C) Copyright IBM Corporation 2000, 2004. Tutti i diritti riservati.