2

これは私の最初の質問です。喜んでお手伝いさせていただきます。

私はフレームワークの一部として TestNG を長い間使用してきました。今日の質問は、testng.xml の構成に関するものです。テストを並行して実行しないようにするためです。いいえ、私のテストはどれも依存しておらず、すべて独立しています。しかし、これは私の要件です。

私のtestng.xmlファイルは次のようになります。

<suite name="Smoke Test Suite" verbose="3"  parallel="tests" thread-count="2">      
<test name="Run on Firefox" preserve-order="true">
    <parameter name="browser"  value="firefox"/>
    <classes>
        <class name="com.test1"/>   
        <class name="com.test2"/>
        <class name="com.test3"/>
        <class name="com.test4"/>           
    </classes>
</test> 
<test name="Run on IE9" preserve-order="true">
    <parameter name="browser"  value="iexplore"/>
    <classes>
        <class name="com.test1"/>   
        <class name="com.test2"/>
        <class name="com.test3"/>
        <class name="com.test4"/>           
    </classes>
</test> 
<test name="Run on Google Chrome" preserve-order="true">
    <parameter name="browser"  value="chrome"/>
    <classes>
        <class name="com.test1"/>   
        <class name="com.test2"/>
        <class name="com.test3"/>
        <class name="com.test4"/>           
    </classes>
</test> 

テストを並行して実行したいのですが、クラスは次々に実行します。私が現在見ているのは、テストが開始されたときに、FF、IE9、および Chrome の 8 つのインスタンスが開いていることです。「test1」が実行され、ブラウザが閉じられ、新しいインスタンスが開かれ、「test2」が実行されるように設定するにはどうすればよいですか?

これを行う必要があるのは、各テスト中にアプリで複数のウィンドウが開かれているためです。そして IE9 (悪意のあるブラウザーである) は状況を処理する方法を知らず、パニックに陥り、テストの途中でウィンドウにフォーカスを失います。提案されており、私も同じことを発見しました.IE9のインスタンスを1つ実行し、他に中断するものは何もないのが最善です。

提案と解決策は、感謝して受け入れられます。

注: すべてのクラスは同じパッケージに含まれています。

ありがとう - アリスター

4

2 に答える 2

1

@Before メソッドで DefaultSelenium 用に 3 つのオブジェクトを作成できます。1つは IE 用、もう 1 つは FF 用、もう 1 つはクロム用です。

webdriver を使用している場合は、同じものに対して 3 つの個別のドライバーを作成できます。

于 2012-09-24T06:05:47.413 に答える