2014-10-15 2 views
1

Я был удивлен, не найдя разумного решения, как запустить тесты Selenium webdriver с использованием Selenium Grid, но запускать каждый тест с помощью нескольких браузеров. Предпочтительно, я хотел бы иметь какую-то конфигурацию (файл или жестко закодированную), где я могу указать все браузеры, которые я хочу, чтобы мои тесты запускались. И тогда каждый тест будет запускаться в каждом из этих браузеров.Селевое параллельное тестирование на нескольких браузерах (JAVA)

Я предполагаю, что вы можете написать свой собственный тест-студент и поместить цикл, повторяя каждую тестовую последовательность через все браузеры. Но может быть, кто-то знает более элегантное решение? Кто-нибудь это сделал?

P.S. Я нашел решения, которые советуют дублировать тесты и указывать параметры браузера для каждого теста. Я не хочу этого.

+0

Мы использовали Selenium Grid для одновременного запуска тестов на нескольких машинах. Для каждой машины мы настроили Selenium Grid для использования разных браузеров (Firefox и IE). Я не могу сказать, как именно он был настроен, как это сделал наш администратор Jenkins, но это возможно! – Korashen

ответ

0

Я не знаком с селеновой сеткой, но я знаю, что вы можете одновременно открывать несколько браузеров несколькими браузерами, запуская каждый тест на другой поток. Вы можете посмотреть на это.

0

Я решил это так, что я задал другой параметр браузера для каждого набора TestNG.

0

Что я делаю, запускаю свой тест на уровне класса, а затем создаю TestNG.xml, а затем внутри там укажу, какие классы я хочу запускать и какие браузеры они должны запускать. Так что мой файл TestNG будет выглядеть примерно так:

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

Тогда, потому что я бег на Selenium Grid проходит параметры браузера и порта в моем коде следующим образом:

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

Надеется, что это помогает

Смежные вопросы