Для моей стажировки я должен использовать TestNG и селен для тестирования веб-приложения.Но у меня есть проблема, иногда селен или браузер не работает по какой-то случайной причине, поэтому рабочий тест помечается как «проваленный».Чтобы избежать этого, я могу использовать аннотацию @Test(invocationCount = 4, successPercentage = 25)
, тогда, если тест пройден один раз, тест помечается как «Успешно», это хорошо, но проблема в том, что это решение умножает время тестирования на 4, это неочень эффективный.
Что я могу сделать, чтобы сократить время на тестирование, так это написать какое-то правило «если тест не пройден, перезапустите этот тест (и только если тест не пройден), и если он сработал второй, третий,или в четвертый раз, затем пометьте этот тест как «успешный», так что я могу избежать этих случайных ошибок.Но я не нашел, как написать это правило, я увидел, что мы можем добавить слушателя, поэтому у нас есть метод с именем "onTestFailure
", поэтому я могу что-то сделать, когда тест не пройден, но я не знаю, как это сделать.повторите тест.
Я также нашел testng-failed.xml, в котором сохранены все неудачные тесты, поэтому мы можем запустить этот xml-файл для повторного запуска этих тестов, но это сотрет отчет с предыдущего первого запуска, но я хочу просточто неудачные тесты помечаются как «успешные», если второй запуск прошел успешно.(Я интегрировал testNG / selenium в Jenkins, поэтому у меня есть график со всеми тестами, поэтому этот метод не очень адаптирован, но этот метод не увеличивает время тестирования на 4, и это то, что я хочу)
Так что, если у вас есть какие-либо подсказки, как это сделать, было бы очень приятно.