Você pode utilizar um datapool a partir de um teste do Hyades, fazendo chamadas para a API do datapool a partir de um código Java gerado do teste.
O datapool que você deseja utilizar já deve existir.
O código Java para o teste a partir do qual você deseja utilizar um datapool deve existir. Gere o código clicando com o botão direito do mouse no teste e selecionando Gerar.
O seguinte trecho, ilustrando a etapa 2, mostra as instruções de importação que aparecem no início de um teste do Hyades gerado. As linhas em negrito no final são as instruções de importação do datapoll que você deve incluir no teste.
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.*;
O seguinte trecho, ilustrando a etapa 3, é obtido de um teste gerado no qual o testador foi para www.amazon.com e procurou um livro chamado 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");
No seguinte trecho, ilustrando as etapas 4 e 5, as linhas em negrito mostram como modificar o código de teste gerado, como em uma coluna chamada title em um datapool chamado books que substitui o valor atonement. No lugar de "pathname of books.datapool" na segunda linha, coloque o nome do caminho completo do datapoll 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
Tópico-pai: Fornecendo Testes com Dados Variáveis