Test NG Cucumber Parallel Automation с динамическими тестовыми тегами и параметрами - PullRequest
0 голосов
/ 13 мая 2019

В настоящее время я хочу запустить несколько тестов в огурце параллельно, используя testng, и мне это удалось.Теперь мое требование заключается в том, чтобы вместо нескольких команд Test TAGS в файле testNG с другими параметрами он брался из командной строки maven.Так что я могу сделать автоматизацию без редактирования файла testNg.xml.Есть ли способ добиться этого?Пожалуйста, найдите мою текущую конфигурацию testng.xml.

testng.xml

   <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Testng Cucumber Suite" thread-count="2"   parallel="tests">

<!--  In order to run test cases please copy and one test and add make sure you add relevant parameters -->
  <test name="Run_Nexus_06">
       <parameter name="deviceName" value="Google Nexus 6" />
            <parameter name="platformVersion" value="6.0" />
        <classes>
            <class name="cucumber.mobile.ParallelRunner">
            </class>
        </classes>

  </test>

    <test name="Run_Google_Pixel">
        <parameter name="deviceName" value="Google Pixel" />
        <parameter name="platformVersion" value="7.1" />
        <classes>
            <class name="cucumber.mobile.ParallelRunner">
            </class>
        </classes> 
    </test> 

</suite>

Класс бегуна:

@CucumberOptions(plugin = {"pretty", "html:target/html/", "json:target/cucumber.json", "junit:TEST-all.xml"},
        features = "src/test/resources/features/SignUp.feature", glue = {"steps"}, tags = {"@Mobile"})
public class ParallelRunner  extends Hook{

       List<Object[]> data;
    //<parameter name="deviceName" value="Google Pixel" />
   // <parameter name="platformVersion" value="7.1" />
    @BeforeTest
    @Parameters({"deviceName","platformVersion"})
    public void bb(String deviceName, String platformVersion){
        Device device = new Device();
        device.setDeviceName(deviceName);
        device.setOsVersion(platformVersion);
        DeviceFactory.setDevice(device);
        System.out.println("Device" + deviceName + "Os Version" + platformVersion + "   " + Thread.currentThread().getId());
    }


}

1 Ответ

0 голосов
/ 13 мая 2019

Я был рад, что нашел этот пост.Очень полезно, если кто-то пытается достичь того же. Динамический тест ng IAlterSuiteListener

Команда Maven:> mvn compile test -DdeviceFlavors = "Google Nexus 6", "Google Pixel" -DdeviceOsFlavors = "6.0", "7.1" -Dsurefire.suiteXmlFiles= testng.xml

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...