0

異なるパラメーターを使用して、一度に 2 つのブラウザーを起動したいと考えています。以下のようなテストスイートを書きました。ただし、一度に 8 つのブラウザーを起動しています (parallel='tests' で述べたように、そのテストで使用可能なすべてのクラスのブラウザーを起動しています)。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite thread-count="2" name="Suite" parallel="tests">
  <test name="Test1" preserve-order="true">
  <parameter name="propertyFileName" value="Constants.properties"/>
    <classes preserve-order="true">
       <class name="com.test.TestCase1"/>
       <class name="com.test.TestCase2"/>
       <class name="com.test.TestCase3"/>
       <class name="com.test.TestCase4"/>
     </classes>
  </test> <!-- Test -->
  <test name="Test2" preserve-order="true">
  <parameter name="propertyFileName" value="Constants2.properties"/>
    <classes preserve-order="true">
       <class name="com.test.TestCase5"/>
       <class name="com.test.TestCase6"/>
       <class name="com.test.TestCase7"/>
       <class name="com.test.TestCase8"/>
     </classes>
  </test> <!-- Test -->
</suite> <!-- Suite -->

一度に 2 つのブラウザだけを起動する方法はありますか?

テスト ケースをグループ化して、並行して実行している間 (一度に 2 つのテスト ケースのみ)、両方が異なるプロパティ ファイルから定数を取得する必要があるようにします。

EDIT-I

TestCase1.java

public class TestCase1 
{

    private WebDriver driver;
    CommonMethods comObj;
    StringBuffer failureMsgs;
      @Parameters({"propertyFileName"})
      @BeforeTest
      public void beforeTest(String pname) throws Exception 
      {
          comObj=new CommonMethods(pname);
          driver=new FirefoxDriver();
          comObj.login(driver, comObj.userName,comObj.password);
      }
      @Test
      public void f() 
      {
          try
            {

            }
            catch(Exception e)
            {
                e.printStackTrace();
            }
      }
      @AfterTest
      public void afterTest() 
      {
          System.out.println("Inside after method");
          driver.quit();
      }
}
4

1 に答える 1

0

問題は、セットアップと破棄のコードにあります。@Aftertest とテスト前を使用しています。ブラウザは、アフターテストの実行時にのみシャットダウンしますが、これは 2 回だけです。@afterclass または @aftermethod と対応する beforemethods を使用する必要があります。testng は正しく動作しているため、最初にすべての before テスト メソッドを実行するため、最初に 8 つのブラウザーを起動します。

于 2013-05-07T10:02:13.530 に答える