Sie können einen Datenpool aus einem Hyades-Test heraus verwenden, indem Sie die Datenpool-API über den vom Test generierten Java-Code aufrufen.
Der Datenpool, den Sie verwenden wollen, muss bereits vorhanden sein.
Der Java-Code für den Test, von dem aus Sie den Datenpool verwenden wollen, muss bereits vorhanden sein. Den Code erstellen Sie, indem Sie mit der rechten Maustaste auf den Test klicken und Generieren auswählen.
Der folgende Auszug veranschaulicht Schritt 2 und zeigt die Importanweisungen, die zu Beginn des generierten Hyades-Tests erscheinen. Die fettgedruckten Zeilen am Ende sind die Datenpoolimportanweisungen, die Sie Ihrem Test hinzufügen müssen.
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.*;
Der folgende Auszug veranschaulicht Schritt 3 und ist einem Test entnommen, in dem ein Tester auf www.amazon.com nach einem Buch mit Namen atonement gesucht hat.
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");
Im folgenden Auszug, der die Schritte 4 und 5 veranschaulicht, zeigen die fettgedruckten Zeilen, wie der generierte Testcode so geändert wird, dass eine Spalte mit Namen title in einem Datenpool namens books den Wert atonement ersetzt. Geben Sie an der Stelle von "pathname of books.datapool" in der zweiten Zeile den vollständig qualifizierten Pfadnamen des Datenpools books an.
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
Übergeordnetes Thema: Tests mit variablen Daten zur Verfügung stellen