0

나는 병렬 실행이 처음인데, 3 가지 테스트가 모두 한 번에 하나의 창에서 동시에 실행하려고하는 이유를 파악하려고합니다. 별도의 창이 열립니다.Selenium WebDriver 모든 병렬 테스트가 단일 창에서 실행 - TestNG - Java

나는 1로 설정 크롬과 maxInstance 및 maxSession 모든 실행 3 개 노드가, 각각의 노드는이 스크린 샷에서 볼 수 있듯이 그들이 나타나는, 실행 한 수업을받을 수 있어야합니다 enter image description here

if (browser.equals("Chrome")) 
{ 
    String chromeDriver = ""; 
    if (os.equals("Windows")) 
    { 
     chromeDriver = userDir.replace(project, "drivers\\chromedriver.exe"); 
    } 
    else 
    { 
     chromeDriver = userDir.replace(project, "drivers/chromedriver"); 
    } 
    System.setProperty("webdriver.chrome.driver", chromeDriver); 

    if (useSeleniumGrid.equals("true")) 
    { 
     // Access Grid 
     DesiredCapabilities capability = DesiredCapabilities.chrome(); 
     capability.setBrowserName("chrome"); 
     driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capability); 
    } 
    else 
    { 
     driver = new ChromeDriver(); 
    } 

} // end if for Chrome browser 
:이 같은 @BeforeClass 주석의 RemoteWebDriver를 초기화하고

<suite name="Round Trip Suite" parllel="tests" thread-count="3"> 

<test name="Round Trip Matrix" preserve-order="true" parallel="classes" thread-count="3"> 

<classes> 
    <class name ="roundTripMatrix.VerifyNewOrder"/> 
    <class name ="roundTripMatrix.DeclineAndAccept"/> 
    <class name ="roundTripMatrix.OrderOwnership"/> 
</classes> 

</test> 

</suite> 

:이처럼 내 test.xml의 파일이 모습입니다

업데이트 : ThreadLocal을 드라이버를 사용하지 않았기 때문에 나는 단지 하나의 창은 명령을 수신 된 이유를 알아 낸

이다. 내 문제는 지금은 개별적으로 이전에 실행하는 동안 그들은 일하고 있었는데, 그것은 모든 창문에서 이상한 곳에서 실패합니다.

답변

0

test.xml에 오류가 있습니다. 당신이 그것을 시도 할 수 :

<suite name="Round Trip Suite" parallel="classes" thread-count="3"> 
<test name="Round Trip Matrix"> 
    <classes> 
    <class name ="roundTripMatrix.VerifyNewOrder"/> 
    <class name ="roundTripMatrix.DeclineAndAccept"/> 
    <class name ="roundTripMatrix.OrderOwnership"/> 
    </classes> 
</test> 
</suite> 

더 많은 정보 : enter link description here

+0

을 그래서 그 변경, 나는 허브에 연결된 최대 세션 1의 경우 2 개 별도의 노드가있을 때, 별도의 창을 열고, 그러나 하나의 창만 명령을 받고 나머지는 정체 상태입니다. –

+0

죄송합니다, 깜빡아요. 다중 스레드 환경에서 작동하도록 웹 드라이버를 초기화해야합니다. 이 솔루션을 사용해보십시오. [link] (http://blog.wedoqa.com/2013/07/how-to-run-parallel-tests-with-selenium-webdriver-and-testng-2/) –

관련 문제