Выполнять те же тесты Selenium / Testng одновременно - PullRequest
0 голосов
/ 17 октября 2018

У меня есть тест на селен, который проверяет мое целевое веб-приложение.Я хочу запустить один и тот же тест на Jenkins одновременно в средах Nightly и Staging.Какой лучший способ сделать это?Я могу подойти к нему на Дженкинсе, на Selenium Grid или на любом другом способе.

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

Пример: рассмотрим этот тест, com.myorg.myapp.myTest.testLogin (String envURL)

Я бы хотел запустить этот тест одновременно в Chrome (например), передавая ночные и промежуточные URL-адреса.В настоящее время я провожу первый набор тестов на Nightly, затем те же тесты на Staging.Это занимает почти день.Мне нужно делать их одновременно, чтобы сэкономить время.

1 Ответ

0 голосов
/ 17 октября 2018

Вы можете создать testNG xml и добавить один и тот же тест в разные наборы, как это.

<suite name="mySuite" parallel="tests"> 
  <test name="thread1">
    <classes>
      <class name="test.sample.MyTest"/>
    </classes>
  </test>
  <test name="thread2">
    <classes>
      <class name="test.sample.MyTest"/>
    </classes>
  </test>
...
...
  <test name="threadN">
    <classes>
      <class name="test.sample.MyTest"/>
    </classes>
  </test>
</suite>

Если вам нужно передать среду, добавьте следующее и получите доступ к нему из кода теста, как описано здесь (http://testng.org/doc/documentation-main.html#parameters)

  <parameter name="env"  value="staging"/>

Это пока простое решениедовольно уродливо и сложнее в обслуживании, если вам нужно много потоков. Другой способ - создать XML-код в коде, реализовав IAlterSuiteListener. См. TestNG Параллельное выполнение с селеном для примера кода.

...