У меня около 13 тестовых классов, и этот параметр отлично выполняет параллельные классы:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Office Suite" thread-count="5" parallel="classes">
<test name="Office Test" allow-return-values="true">
<packages>
<package name="testSuite.*"/>
</packages>
</test>
</suite>
Однако, когда я пытаюсь запустить на уровне метода, у меня возникают проблемы:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Office Suite" thread-count="5" parallel="methods">
<test name="Office Test" allow-return-values="true">
<packages>
<package name="testSuite.*"/>
</packages>
</test>
</suite>
Я начинаю видеть org.openqa.selenium.NoSuchElementException: Timed out after 5 seconds. Unable to locate the element
.
Также этот параметр не работает:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Office Suite" thread-count="5" parallel="methods">
<test name="Office Test" allow-return-values="true">
<classes>
<class name="testSuite.CustomerProfileBillingTest"/>
<class name="testSuite.CustomerProfileTest"/>
<class name="testSuite.CustomerSearchPageTest"/>
<class name="testSuite.HomePageTest"/>
<class name="testSuite.HomeZoneTest"/>
<class name="testSuite.ImportLogTest"/>
<class name="testSuite.InfleetPageTest"/>
<class name="testSuite.LoginPageTest"/>
<class name="testSuite.MembersArea1Test"/>
<class name="testSuite.MembersArea2Test"/>
<class name="testSuite.MembersArea3Test"/>
<class name="testSuite.PromoPageTest"/>
<class name="testSuite.TicketsTest"/>
</classes>
</test>
</suite>
Вот тест:
@BeforeMethod(alwaysRun = true)
public void setUp() throws Exception {
DriverFactory.french = false;
WEB_DRIVER_THREAD_LOCAL.set(new EventFiringWebDriver(DriverFactory.getDriver(TestUtil.getTargetBrowser())).register(new WebEventListener()));
on = new Pages(WEB_DRIVER_THREAD_LOCAL.get());
wait = new WebDriverWait(WEB_DRIVER_THREAD_LOCAL.get(), TestUtil.ELEMENT_PRESENT_WAIT);
}
@Test(groups = {"registration"})
public void verifyCustomerCanRectifyError() throws Exception{
on.MembersRegistrationPage()
.typeIn(on.MembersRegistrationPage().firstNameInput, customer.getFirstName())
.click(on.MembersRegistrationPage().continueButton)
.waitForVisibilityOfElement(on.MembersRegistrationPage().requestDrRecordButtonXPATH);
assertTrue(on.MembersRegistrationPage().requestDrRecordHeader.isDisplayed());
}
Есть идеи, почему классы можно распараллеливать, а методы - нет?