Распараллеливание тестов Selenium+TestNG(Junit)
Думаю полезность распараллеливаня тестов вполне понятна,тесты которые выполняются последовательно около 20 минут, в несколько потоков выполнятся быстрее в разы.
Я покажу как это сделать при помощи TestNG(и Junit)+Maven+SeleniumWD.
Допустим у нас есть 2 теста (не прикапываемся к написанию,это для примера)
@Test
public void testRobert() throws Exception {
driver.get("http://google.ru");
driver.findElement(By.name("q")).sendKeys("Роберт");
driver.findElement(By.id("gbqfb")).click();
driver.findElement(By.linkText("Роберт — Википедия")).click();
}
@Test
public void testPolson() throws Exception {
driver.get("http://google.ru");
driver.findElement(By.name("q")).sendKeys("Полсон");
driver.findElement(By.id("gbqfb")).click();
driver.findElement(By.linkText("Полсон, Генри — Википедия")).click();
}
Если решим распараллелить их через TestNG,то добавим методы выполняющиеся перед и после каждого теста.
@BeforeMethod
public void setUp() throws Exception {
driver = new FirefoxDriver();
}
@AfterMethod
public void tearDown() throws Exception {
driver.quit();
}
}
И testng.xml делаем такого вида:
Теперь собственно сам запуск.
1.Через Maven:
org.apache.maven.plugins maven-surefire-plugin 2.12.3 TestNG.xml
TestNG testng = new TestNG();
List suites = Lists.newArrayList();
suites.add("TestNG.xml");
testng.setSuiteThreadPoolSize(2);
testng.setTestSuites(suites);
testng.run();
Если используем Junit, то в Maven указываем:
org.apache.maven.plugins
maven-surefire-plugin
2.12.4
methods
2
org.apache.maven.surefire
surefire-junit47
2.12.4
Сравним результаты:
Без распараллеливания
При распараллеливании:
Результат очевиден.
Вот собственно и все. Наслаждаемся скоростью.



Подскажите пожалуйста, где этот testNG.xml отредактировать или его надо самому создать и подключить ? Никак не пойму
ОтветитьУдалитьВ данном примере,testNG.xml это ваш запускаемый suite тестов.
УдалитьЯ полагаю что у вас он уже есть,тогда в него надо добавить недостающие строки,а если нету,то нужно создать.