テストで生成された Java コードからデータ・プール API を呼び出すことにより、 Hyades テストからデータ・プールを使用することができます。
使用するデータ・プールは、すでに存在しているものでなければなりません。
データ・プールの使用元になるテストの Java コードが、すでに存在していなければなりません。 コードを生成するためには、テストを右マウス・ボタンでクリックし、「生成」を選択してください。
以下の抜粋部分は、ステップ 2 に相当するもので、生成された Hyades テストの先頭にあるインポート・ステートメントを表しています。 終わりの部分の太字体で示した行は、テストに追加する必要のあるデータ・プール・インポート・ステートメントです。
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.*;
以下の抜粋部分は、ステップ 3 に相当するもので、 生成されたテストの一部です。このテストで、テスターは www.amazon.com にアクセスして、 「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");
以下の抜粋部分は、ステップ 4 および 5 に相当するもので、 太字体で示した行は、生成されたテスト・コードを変更して、 データ・プール books 内の title という列で値 atonement を置き換える方法を示しています。 2 行目の "pathname of books.datapool" に代えて、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
親トピック: テストに変数データを提供