2015-01-19 5 views
1

클래스에 5 ~ 6 개의 메소드가 있으며 다른 노드에서 병렬로 메소드를 실행하려고합니다. 나는 그것에 4 노드와 그리드 2 설치가 있습니다. 셀레늄 그리드 테스트를 사용하여 테스트를 병렬로 실행

내가있는 테스트 장치를 확장하고 내 테스트 클래스에서 로그인, 일반 및 유틸 클래스

Public class TestHarness{ 
public WebDriver driver = null; 
public DesiredCapabilities cap = null; 

public Login login; 
public Common common; 
    public void initilize(){ 
     cap = DesiredCapabilities.firefox(); 
       cap.setBrowserName("firefox"); 
       cap.setPlatform(Platform.ANY); 
     driver = new RemoteWebDriver(new URL(CONFIG.getProperty("hub")),cap); 

     common = new Common(driver); 
     login = new Login(driver); 
     utils = new Utils(driver); 

    } 

} 

을 intilizes 내가 테스트 장치를

<suite name="Test" parallel="methods" thread-count="2"> 

    <test name="Test1"> 
     <classes> 
      <class name="test.LoginTest"/> 
     </classes> 
    </test> 

</suite> 

내 testng.xml, 아래 찾기 @ BeforeMethod intilize 메서드를 호출합니다.

테스트를 실행하면 다음과 같은 문제가 발생합니다.

두 개의 브라우저가 각 노드에서 하나씩 열려 있지만 하나의 브라우저 만 응용 프로그램을 시작하고 다른 브라우저는 시작하지 않습니다.

내가 무엇이 있는지 알려주세요.

당신

+0

이 시도 // testingbot.com/support/getting-started/parallel-junit.html – Urban48

답변

1

1) 당신이 바로 테스트 클래스를 실행하는 확신 감사합니다?

public class Testing123 extends TestHarness{ 

2) 귀하의 코드가 드라이버의 선언을 표시하지 않습니다

<class name="test.LoginTest"/> 

당신의 테스트에 있습니다. 이 필드를 잘 작성하지 있는지 확인 정적

3) 또한, 그리드가 실제로 처리하도록 구성되는 것을 확인합니다 http://localhost:4444/grid/admin/AllNodes

4) 4.

+0

1, 실제 테스트 이름은 LoginTest입니다. 그것은 단지 오타였습니다. – Leo

+0

2, 나는 단순화를 위해 선언문을 제외시켰다. 지금 질문을 업데이트했습니다. – Leo

1
에 테스트 설정에서 스레드 수를 올립니다

심지어 드라이버가 정적이 아닙니다. 같은 클래스 인스턴스에서 호출되었으므로 테스트 메서드 사이에서 공유됩니다.

테스트 메서드를 클래스로 나눠 봅시다,

a) 이동 @BeforeMethod TestHarness 클래스

b)에

public class LoginTest2 exteds TestHarness 

을 생성하고이 제 @Test 방법

c) 수정 실내 이동 :

<suite name="Test" parallel="classes" thread-count="2"> 

<test name="Test1"> 
    <classes> 
     <class name="test.LoginTest"/> 
     <class name="test.LoginTest2"/> 
    </classes> 
</test> 

을 이 도움이 될 것입니다 열 경우 궁극적 인 해결책은 여기 ThreadLocal를 할 수 있습니다 : HTTP :

parallel-webdriver-executions-using-testng

+0

의견을 보내 주셔서 감사합니다. 테스트 메소드가 많기 때문에 각 테스트 메소드에 대한 클래스를 작성할 수 없습니다. 또한 ThreadLocal을 사용하여 알려 드리겠습니다. – Leo

관련 문제