Я пытаюсь запустить методы тестирования параллельно в Appium + testNG на разных устройствах.Это работает для меня, когда я запускаю методы тестирования параллельно на основе классов, то есть параллель = классы.
Но то же самое не работает, когда я пытаюсь запустить методы тестирования параллельно на основе методов, то есть параллель = методы.Я использую приведенный ниже код для параллельной работы.
@BeforeMethod(alwaysRun = true)
public void setdeviceName() throws Exception {
if (ConfigUtil.getConfigDetails().split("::")[1].equalsIgnoreCase("device")) {
synchronized (DeviceEmuList) {
deviceName = DeviceEmuList.get(0);
System.out.println("###########This is the device name###############" + deviceName);
DeviceEmuList.remove(0);
port = Integer.parseInt((String) portList.get(0));
portList.remove(0);
System.out.println("inside setup" + deviceName + port);
driver = new DriverManager().getdriver(new Object[] { deviceName, port });
}
}
}
@AfterMethod(alwaysRun = true)
public void takeSS() {
driver.quit();
DeviceEmuList.add(this.deviceName);
portList.add(String.valueOf(this.port));
}
<suite name="Mobile Regression" verbose="1" parallel="methods" thread-count="2">
<test name="Regression Test Suite">
<classes>
<class name="com.automation.regression.AppTour" />
</classes>
</test>
</suite>
Когда я использую приведенный выше код, приложение запускается на первом устройстве, затем на втором устройстве, и все методы тестирования работают только навторое устройство.Ни один из методов тестирования не выполняется на первом устройстве.Похоже, что я запускаю тестовые методы последовательно на втором устройстве.
Та же логика работает хорошо, когда я создаю драйвер в @ BeforeClass.