1

Я разработчик, которому временно поручено помогать команде QA с автоматизацией тестирования с использованием JUnit 4 и Selenium WebDriver. Я новичок в тестировании и автоматизации тестирования.Зачем создавать WebDriver для каждого метода @Test?

Рассматривая различные примеры WebDriver, общий шаблон заключается в создании экземпляра WebDriver (например, FirefoxWebDriver) в методе @Before, используйте экземпляр в методе @Test для взаимодействия с браузером и driver.quit() в @ После.

Так что если есть 5 методов @Test, браузер будет открыт, тестовое приложение будет инициализировано и браузер будет закрыт 5 раз.

Мой вопрос: зачем открывать, инициализировать и закрывать для каждого тестового случая? Я предполагаю, что отказ одного теста от негативного побочного эффекта на другие тесты. Это верно? Есть ли другие причины?

+1

Я думаю, вы почти там. Основная цель тестирования - локализовать ошибку. Если все тесты будут работать за один раз, и это не удастся, вы не сможете точно сказать, какая из частей вызвала сбой. – Prateek

+0

Также - многопоточность. Если у вас есть полный набор регрессии, вам нужно будет запустить эти 1000 тестов параллельно, если это возможно – sircapsalot

ответ

2

Отличный вопрос!

Coming с другой стороны, я инженер автоматизации тестирования QA, работая с командой Dev по автоматизации ...

Как @Prateek и сам указывал, есть несколько причин.

Два наиболее очевиден:

  1. Основные целью тестирования является локализовать ошибку. Если все тесты будут выполняться за один раз, и это не удастся, вы не сможете определить, где это произошло. ~ Prateek

  2. Многопоточность - причина, почему. Представьте себе, что ваша компания имеет тысячи регрессионных тестов, которые необходимо запустить. Каждый тест изолирован, поэтому он полностью независим от других тестов, что позволяет вам одновременно запускать их все одновременно (при условии, что ваше приложение может справиться с этим), которые говорят, что каждый тест занимает 1 минуту для запуска, 1x1000=1000 минут чтобы каждый тест выполнялся последовательно, а не заканчивая их всего за 1 минуту!

Таким образом, вы правы в вашем assumtion здесь -

Я думаю, чтобы предотвратить отказ случая один тест от наличия отрицательного побочного эффекта на других тестах. Это верно?

Но, конечно, есть больше причин, чем это.

1

Существует еще одна причина, каждый раз, когда WebDriver конкретизируется, создается новый профиль, который очищает браузер cache..Currently нет другого пути, чтобы очистить кэш браузера ..

+0

Правильно. Не только кеш, но и файлы cookie. – Slavik

Смежные вопросы