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