2015-07-23 4 views
2

Не знаете, где все идет не так, я пытаюсь запустить один и тот же набор тестов один за другим в нескольких браузерах.Как запустить тест selenium один за другим в нескольких браузерах

TestNG.xml

<suite name="Selenium Tests" parallel="false" thread-count="5"> 
<listeners> 
    <listener class-name="ww5.listener.Listener" /> 
</listeners> 
<test name="Chrome" preserve-order="true"> 
    <parameter name="browser" value="chrome"/> 
    <classes> 
     <class name="ww5.testcases.version.version" ></class> 
     <class name="ww5.testcases.loginSuite.LoginTest" ></class> 
     <class name="ww5.testcases.loginSuite.LogoutTest" ></class> 
    </classes> 
</test> 

<test name="Firefox" preserve-order="true"> 
    <parameter name="browser" value="firefox"/> 
    <classes> 
     <class name="ww5.testcases.version.version" ></class> 
     <class name="ww5.testcases.loginSuite.LoginTest" ></class> 
     <class name="ww5.testcases.loginSuite.LogoutTest" ></class> 
    </classes> 
</test> 
</suite> 

Когда я запускаю это, все испытания будут excuted на хроме, как я делаю это на светлячок преобразования приложений после завершения excuting на хроме.

OpenBrowser.java

@Parameters ({"browser"}) 
     @BeforeClass 
     public void launchBrowser(String browser) throws Exception { 
      //initLogs(this.getClass()); 
      initConfigurations(); 
      if (driver == null) { 
      DesiredCapabilities cap = null; 
      if(browser.equalsIgnoreCase("firefox")) 
      { 
       cap = DesiredCapabilities.firefox(); 
       cap.setBrowserName("firefox"); 
       //cap.setPlatform(org.openqa.selenium.Platform.WINDOWS); 
       } 
      if(browser.equalsIgnoreCase("internet explorer")) 
      { 
       cap = DesiredCapabilities.internetExplorer(); 
       cap.setBrowserName("internet explorer"); 
       cap.setPlatform(org.openqa.selenium.Platform.ANY); 
       } 
      if(browser.equalsIgnoreCase("chrome")) 
      { 
       cap = DesiredCapabilities.chrome(); 
       cap.setBrowserName("chrome"); 
       cap.setPlatform(org.openqa.selenium.Platform.ANY); 
       } 
      driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), cap); 
      driver.manage().window().maximize(); 
      driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); 
      wait = new WebDriverWait(driver,30); 
      } 
     } 
+0

необходимо знать, как запустить концентратор/узел –

+0

@Nguyen Vu Hoang Hub и узел работают нормально –

+0

Обновите код, чтобы включить определение драйвера, где вы реализовали драйвер? – Manu

ответ

1

<suite name="Selenium Tests" parallel="false" thread-count="5"> Заменить с

<suite name="Selenium Tests" parallel="tests" thread-count="2">

Все другие вещи, кажется, хорошо. Обратитесь к this за дополнительной информацией.

Edit:

я понял вашу проблему неправильно. Проблема, из-за которой вы не можете выполнить тест последовательно, связана с if (driver == null). Это означает, что ваш тест будет работать в первый раз, так как драйвер имеет значение null, но после этого из-за определения вашего драйвера оно может быть не null и, следовательно, не создаст другой возможности. Поэтому, если вы его удалите, тесты должны работать нормально.

+0

это сделает пробный запуск параллельным, я хочу, чтобы тест запускался серийно –

+0

@ayaslem см. Редактирование, если проблема все еще существует, вам может потребоваться добавить определение драйвера в сообщение. – Manu

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