Запустите параллельное выполнение на сетке селена - PullRequest
0 голосов
/ 08 октября 2018
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Parallel test suite" parallel="classes" thread-count="2">
  <test thread-count="1" name="Transactoin">
  <parameter name="remoteurl" value="http://xx.xx.xxx.xxx:5555/wd/hub"></parameter>
    <classes>
      <class name="POM_Test.ATransactionTest"/>
     </classes>
  </test> <!-- Test -->
  <test thread-count="1" name="MyAlerts">
  <parameter name="remoteurl" value="http://xx.xx.xx.xxx:5556/wd/hub"></parameter>
    <classes>
      <class name="POM_Test.MyAlertsTest"/>
    </classes>
  </test> 
</suite> <!-- Suite -->

ATransactionTest Class имеет 47 контрольных примеров MyAlertsTest Class имеет 40 контрольных примеров.

Я хотел run both classes simulatneously, и MyAlertsTest должен принять remoteurl, который являетсязаданный в параметре и тест ATransaction должен принимать remoteurl с заданным параметром.

Но что происходит, ATransactionTest запускается первым в Node1 после завершения всех тестовых примеров MyAlerts в Node2.Как запустить одновременно.

Спасибо

1 Ответ

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

Исходя из моего понимания документа, TestNG будет соблюдать порядок тестов в вашем XML-файле.

Теперь вы хотите запустить оба класса параллельно, поэтому вы установили parallel="classes", что правильно.Однако ваши тесты будут по-прежнему выполняться в одном потоке, т. Е. Если у вас в группе тестов несколько классов , тогда они будут выполняться параллельно, но все тесты будут выполняться последовательно один за другим.

Чтобы решить эту проблему, вы можете добавить несколько классов в одну и ту же группу тестов:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Parallel test suite" parallel="classes" thread-count="2">
  <test thread-count="2" name="Transactoin">
  <parameter name="parameterName" value="parameterValue"></parameter>
    <classes>
      <class name="Class1"/>
      <class name="Class2"/>
     </classes>
  </test>
</suite> <!-- Suite -->

или, как в , в вашем случае вы можете установить параллельный параметр для тестов :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Parallel test suite" parallel="tests" thread-count="2">
  <test thread-count="1" name="Transactoin">
  <parameter name="remoteurl" value="http://xx.xx.xxx.xxx:5555/wd/hub"></parameter>
    <classes>
      <class name="POM_Test.ATransactionTest"/>
     </classes>
  </test> <!-- Test -->
  <test thread-count="1" name="MyAlerts">
  <parameter name="remoteurl" value="http://xx.xx.xx.xxx:5556/wd/hub"></parameter>
    <classes>
      <class name="POM_Test.MyAlertsTest"/>
    </classes>
  </test> 
</suite> <!-- Suite -->

Надеюсь, это решит вашу проблему.

...