Почему RC Селена является настолько медленным?

В течение некоторого времени я исследовал RC Селена, чтобы сделать функциональное тестирование моего веб-приложения. Я теперь нашел стратегию тестирования, которая является столь эффективной, что я не хочу переезжать от RC Селена (после того, как, проводя недели, пытаясь выяснить хороший способ проверить средства управления проверкой ASP.NET).

Но теперь, когда мое приключение RC Селена перемещается от POC, чтобы быть чем-то, что я на самом деле использую, я сталкиваюсь с проблемой. Это безумно медленно. Выполнение единственного теста, который загружает страницу, заполняет некоторые поля и нажимает кнопку, берет в величине секунд для выполнения. Когда это выполняется, я могу легко видеть, что каждое отдельное поле переполнено по одному. Используя IDE Селена в Firefox не, это замедляется.

Я нашел эту страницу, которая ясно определяет, что RC Селена является медленный http://selenium-grid.seleniumhq.org/how_it_works.html

Но почему это? Это, потому что браузер опрашивает сервер селена? Если так, разве этот интервал опроса не может быть изменен? Или есть ли другая причина. Я не приучен к удаленному вызову, занимающему по-человечески noticable количество времени выполниться.

Ужасно, что выполнение нескольких тестов должно занять много времени. Я могу выполнить свое все представление (MVP), бизнес и набор тестов слоя базы данных (500 + тесты) путь, более быстрый, чем это берет для запущения 10 тестов для единственной веб-страницы.

10
задан Pete 1 March 2010 в 08:32
поделиться

2 ответа

Для выполнения функциональных / интеграционных тестов потребуется больше времени, особенно потому, что они выполняются в браузере. Это означает, что они должны загрузить все 3 уровня вашего MVC, а затем выполнить то же самое, когда он что-либо делает на странице. Таким образом, каждое действие может попасть в базу данных. По сути, это длительные задачи по сравнению с модульными тестами.

Тесты начинаются с выполнения открытия на этой странице, которое затем ожидает, пока все загрузится. Так что, если это занимает много времени, то для вашего пользователя может потребоваться много времени, если он получит доступ к странице. Например. Множество изображений, унифицированный JavaScript / CSS, плохие сроки загрузки.

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

Другая причина, по которой тесты работают медленно, заключается в том, что базовым языком Selenium является JavaScript, который взаимодействует с DOM. DOM может сильно замедлить работу, особенно если ваши тесты используют XPath в качестве локаторов. XPath + JavaScript + IE + Selenium == Утомительно, и мы, разработчики Selenium, больше ничего не можем сделать для его точной настройки.Что ж, есть и это будет Selenium 2, который находится в альфа-версии и может быть загружен с http://selenium.googlecode.com/ . Я работал над реализацией .NET и сейчас вижу огромное улучшение скорости. Я написал об этом в блоге, потому что изменения меня поразили. Я видел до 8 тестов, запущенных одновременно с использованием Selenium 1 для запуска 1 теста

7
ответ дан 3 December 2019 в 21:59
поделиться

Возможно ли, что ваша скорость выполнения по умолчанию слишком низкая? Ознакомьтесь с методами getSpeed ​​() и setSpeed ​​() на DefaultSelenium.

2
ответ дан 3 December 2019 в 21:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: