Селен против старой школы пост/получить тесты


У нас есть значительная кодовая база с относительно высоким тестовым покрытием для страниц / форм, все через vanilla POST / GET.

Теперь мы обнаруживаем, что движемся больше в пространство ajaxy,и это не совсем возможно проверить с помощью GET / POST полных сценариев, таких как регистрация пользователя или создание элемента, поскольку они включают в себя множество вызовов JavaScript / Ajax.

В то время как подобные вещи являются наиболее вероятными кандидатами для тестирования с селеном, я задаюсь вопросом, должны ли мы принять тестирование Селена по всей доске, оставив пост старой школы / получить тесты вообще?

Преимущества внедрения Selenium, похоже, слишком хороши-возможность запускать почти те же тесты GET/POST, но в разных браузерах.

Или я что-то упускаю в своем стремлении к крутым и модным вещам и бросаю старые проверенные тесты POST/GET?

2 6

2 ответа:

Есть преимущества и недостатки обоих подходов, поэтому я рекомендую использовать оба.

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

К сожалению, запуск браузера и переход к определенной странице/состоянию в приложении может быть медленным, и вам потребуется много оборудования, если вы хотите протестировать одновременных пользователей (нагрузочное тестирование) с помощью Selenium.

Если вы просто хотите проверить, что ваш сервер отвечает HTTP 200 для определенных действий, или нагрузочный тест ваших приложений, или что ответ содержит определенные значения, то basic POST/GET будет более подходящим.

Если вы решите пойти с чистым Селеновый подход к тестированию я бы рекомендовал изучить использование Selenium Grid или облачного сервиса, так как запуск большого количества тестов через Selenium может быть довольно трудоемким.

Я думаю, что вы определенно должны использовать Selenium и POST/GET (Unit) тесты в целом, потому что цель вашего модульного теста-проверить функциональность определенного раздела кода, но Selenium is делает интеграционное тестирование на вашем веб-приложении.