Функциональные / интеграционные тесты будут выполняться дольше, особенно если они выполняются в браузере. Это означает, что они должны загрузить все 3 слоя вашего MVC, а затем выполнить то же самое, когда он что-то делает на странице. Таким образом, каждое действие имеет потенциал для перехода к базе данных. Это по своей сути длительные задачи по сравнению с модульными тестами.
Тесты начинаются с выполнения на этой странице open
, которое затем ожидает загрузки всего. Так что, если это займет много времени, то это может занять много времени для ваших пользователей, если они будут иметь доступ к странице. Например. Множество изображений, незавершенный JavaScript / CSS, плохой срок действия при загрузке.
То, что на этой странице из Selenium говорится, что сервер является узким местом, потому что это означает, что вы выполняете тесты синхронно, и если вы перешли на Selenium Grid, он может запускать их параллельно, чтобы ускорить выполнение набора тестов. Он не предполагает, что сервер селена опрашивает, чтобы увидеть, что он должен делать, но вместо этого серверы Selenium опрашивают хаб-концентратор, чтобы определить, жив ли он, и показать, что он еще жив.
Другой причиной, по которой тесты выполняются медленно, является основной язык Selenium - JavaScript, который взаимодействует с DOM. DOM может сильно замедлить работу, особенно если ваши тесты используют XPath в качестве локаторов. XPath + JavaScript + IE + Selenium == Больно, и нет ничего, что мы, разработчики Selenium, могли бы сделать больше, чтобы настроить его. Ну, есть и будет Selenium 2, который находится в альфа-версии и может быть загружен с http://selenium.googlecode.com/. Я работаю над реализацией .NET, в настоящее время наблюдаю огромные улучшения в скорости. Я написал в блоге об этом, потому что изменения поразили меня. Я видел до 8 тестов, запущенных одновременно с Selenium 1 для запуска 1 теста