2014-10-15 3 views
1

Selenium Webdriver 테스트를 Selenium Grid를 사용하여 실행했지만 여러 브라우저에서 각 테스트를 실행하는 지능형 솔루션을 찾지 못한 것에 놀랐습니다. 가급적이면 필자는 테스트를 실행하려는 모든 브라우저를 지정할 수있는 일종의 구성 (파일 또는 하드 코드)을 원합니다. 그리고 각 테스트는 각 브라우저에서 실행됩니다.여러 브라우저에서의 셀레늄 병렬 테스트 (Java)

자신 만의 테스트 러너를 작성하고 모든 브라우저에서 각 테스트 단계를 반복하는 루프를 배치 할 수 있다고 가정합니다. 하지만 누군가가 좀 더 우아한 해결책을 알고 있을까요? 누구나이 작업을 수행 했습니까?

P. 각 테스트에 대한 테스트를 복제하고 브라우저 매개 변수를 지정하도록 조언하는 솔루션을 발견했습니다. 나는 그것을 원하지 않는다.

+0

Selenium Grid를 사용하여 여러 시스템에서 동시에 테스트를 실행했습니다. 각 머신마다 Selenium Grid를 다른 브라우저 (Firefox와 IE)를 사용하도록 구성했습니다. Jenkins 관리자가 정확히 어떻게 설정했는지 말할 수는 없지만 가능합니다! – Korashen

답변

0

Selenium Grid에 익숙하지 않지만 다른 스레드에서 각 테스트를 실행하여 Selenium이 여러 브라우저를 동시에 열 수 있음을 알고 있습니다. 이것을 들여다 볼 수도 있습니다.

0

각 TestNG 제품군마다 다른 브라우저 매개 변수를 지정하는 방식으로이를 해결했습니다.

0

클래스 수준에서 테스트를 실행 한 다음 TestNG.xml을 작성하고 실행하려는 클래스와 실행할 브라우저를 지정합니다. 내가 셀레늄 그리드에서 실행하는거야 때문에 그렇게처럼 내 코드에서 브라우저와 포트에 대한 매개 변수를 전달 그런

<?xml version="1.0" encoding="UTF-8"?> 
<suite name = "suite1" verbose = "6" preserve-order="true" parallel = "false" thread-count="1"> 

    <test name = "Any Test"> 
    <parameter name = "browser" value ="chrome"> 
    <parameter name = "port" value = "5555"> 
    </parameter> 
    </parameter> 
     <classes> 
      <class name = "name of class to run"/>  
     </classes> 
    </test> 
</suite> 

:이

을하는 데 도움이

@BeforeMethod() 
    @Parameters({"browser","port"}) 
    public void launchBrowsers(String browser, String port) throws Exception { 

     DesiredCapabilities capabilities = new DesiredCapabilities(); 
     capabilities.setBrowserName(browser); 
     capabilities.setJavascriptEnabled(true); 

     setSelenium(new RemoteWebDriver(new URL("http://localhost:".concat(port).concat("/wd/hub")), capabilities)); 

     getSelenium().get(baseUrl); 
     getSelenium().manage().window().maximize();    
    } 

희망을 그래서 내 TestNG의 파일과 같을 것

관련 문제