2

Web サイトの機能をテストするためにいくつかの Webdriver テストを書いていますが、今はそれらをデータ駆動型にする必要があります。それらを実行するためにjunitを使用しています。テスト フローは次のとおりです。ログインし、test1 を実行し、ログアウトします。ログイン、test2、ログアウトなど。

私が必要とするのは、両方のクラスをデータ駆動型 (Login と TestClass) にすることです。つまり、最初のログイン データを取得し、すべてのデータ バリエーションですべてのテストを実行し、2 番目のログイン データを取得して、すべてのデータですべてのテストを実行します。

だから私はテストクラスを呼び出しているメインクラスを持っています:

@RunWith(Suite.class)
@Suite.SuiteClasses({

        Test1.class,
        Test2.class,
        Test3.class
})

public class MainTestSuite {
.. skipped.

テストクラスは次のとおりです。

public class Test1 {
    private static final Logger Log = LogManager.getLogger(Test1.class);

    @Rule
    public TestRules testRules = new TestRules();

    @Test
    public void testSomething() throws Exception { // test code
    }

    @Test
    public void testSomethingElse() throws Exception { // test code
    }

...スキップしました。

ログインとログアウトは、TestWatcher を実装している TestRules によって呼び出されます。

public class TestRules extends TestWatcher {

    @Override
    protected void starting(Description description) {
     // do login
    }

    @Override
    protected void finished(Description description) {
     // do logout
    }

私は easytest モジュールhttps://github.com/EaseTech/easytest-coreを調べてきましたが、ログイン テストにパラメーターを指定すると、最初はこれらすべてがループし、それは必要なものではありません。私がすでに持っている構造を使用して、私の問題に対する解決策が見つかりますか。

4

1 に答える 1

0

私が使用する一般的な戦略は、テストで読み取ることができるプロパティ (または json) ファイルを作成することです。

このメソッドを使用してテストを作成し、ユーザーを作成すると、ログイン情報をプロパティ ファイルに保存し、残りのテストでそれを読み取ることができます。

プロパティに関するドキュメントは次のとおりです

于 2015-05-04T19:32:46.300 に答える