如何在TestNG中对测试用例进行分组?

时间:2013-05-06 07:51:34

标签: webdriver selenium-webdriver testng

我想一次使用不同的参数启动两个浏览器。我写过如下测试套件。但是,它一次启动8个浏览器(正如我已经提到并行='测试'它是为该测试中可用的所有类启动浏览器)

<?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 -->

有没有办法一次只启动两个浏览器?

我想对测试用例进行分组,以便在并行运行时(一次只有两个测试用例),都应该从不同的属性文件中获取常量。

修改-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();
      }
}

1 个答案:

答案 0 :(得分:0)

问题在于您的设置和拆除代码。您正在使用@Aftertest并在测试之前。您的浏览器只会在最晚运行时关闭,这只会是两次。您应该使用@afterclass或@aftermethod以及相应的beforemethods。 testng工作正确,因为它在开始时运行所有之前的测试方法,因此首先启动8个浏览器。