2013-05-06 3 views
0

다른 매개 변수를 사용하여 한 번에 두 개의 브라우저를 실행하고 싶습니다. 나는 아래와 같이 Test suite를 작성했다.TestNG에서 테스트 사례를 그룹화하는 방법?

<?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 병렬 = '테스트'는이 테스트에서 사용할 수있는 모든 클래스 브라우저를 출시 언급했듯이)하지만, 그것은 한 번에 8 브라우저를 출시 시간 ?

병렬로 실행되는 동안 (한 번에 두 개의 테스트 사례 만) 두 속성 모두 다른 속성 파일에서 상수를 가져와야하는 테스트 사례를 그룹화하려고합니다.

편집-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(); 
     } 
} 
+0

클래스에서 드라이버를 시작하는 방법을 보여주는 Java 코드를 제공 할 수 있다면 더 나은 대답을 제공 할 수 있습니다. – aimbire

+1

@amibire : 테스트 케이스 형식을 추가했습니다. 그래서 내 요구 사항은 Test1 클래스이고 Test2 클래스는 다른 속성 파일로 시작해야하며 한 번에 두 개의 브라우저 만 시작해야합니다. – Santoshsarma

+0

테스트를 어떻게 시작합니까? 무시되는 testng.xml 파일을 배제 할 수 있습니까? – patrungel

답변

0

문제는 설치를하고 코드를 해체. @Aftertest를 사용하고 있고 테스트를하기 전에. 브라우저는 애프터 테스트가 실행될 때만 종료되며 두 번만 실행됩니다. @afterclass 또는 @aftermethod와 해당하는 before 메소드를 사용해야합니다. testng은 올바르게 작동합니다. 이전에 테스트 방법을 모두 실행 했으므로 먼저 8 개의 브라우저를 실행하십시오.

+0

Niharika .. 감사합니다! BeforeTest, Aftertest를 BeforeClass 및 AfterClass로 변경하면 작동합니다. 하지만, Beforetest & AfterTest에서 왜 그렇게 행동하는지 설명해주십시오. – Santoshsarma

+1

xml에 정의한 태그 다음에 BeforeTest 및 AfterTest가 실행됩니다. @Test로 표시 한 것을 testng parlance의 Method라고합니다. –

관련 문제