Всем привет! Необходимо зациклить 1 тест, чтобы он выполнялся, ну скажем 50 раз. Подскажите, каким образом это организовать? Используемые инструменты: Selenium WD, Java, TestNG, Maven. Заранее спасибо
Разобрался.
Ну раз уже разобрались и создали этот топик, то тогда выложите свое решение, чтобы другие начинающие могли его увидеть. Спасибо.
Решается аннотацией TestNG - invocationCount.
@Test(threadPoolSize = 3, invocationCount = 10, timeOut = 10000)
public void testServer() {
//actions
}
Можно копнуть в этом направлении TestNG
public class TestWebServer {
@Test(parameters = { "number-of-times" })
public void accessPage(int numberOfTimes) {
while (numberOfTimes-- > 0) {
// access the web page
}
}
}
Хм, интересно, а какая есть возможность сделать повтор теста, который упал не по ассерту?
Само по себе зацикливание одного и того же сценария via invocationCount - штука, которая может понадобиться в очень редких случаях. ИМХО, для common тестов она бесполезна.
По факту, подобный процесс характерен при тестировании одного сценария с различными данными. В таком случае нужно использовать DataProvider.
Если же стоит задача перезапуска зафейлившихся тестов, существуют две распространенные техники - подсовывание xml с failed тестами (формируется по окончании прогона), либо при помощи IRetryAnalyzer.
Вы всегда можете скомбинировать ITestListener и IRetryAnalyzer для манипуляции зафейлившимися тестами.