У меня есть программа Ruby, которая использует webdriver (Watir) для просмотра страницы и выполнения тестов вместе с набором BDD под названием RSpec.Ruby - Программный модуль навигатора
Я пытаюсь оптимизировать его для медленного сервера, улучшая его способность эффективно перемещаться. До сих пор он создавал новый сеанс браузера для каждого тестового пакета, а затем закрывал его. Это очень неэффективно, потому что он снова попадает на страницу входа для каждого экземпляра. Конечно, я не хочу вставлять инструкции навигации в тесты, потому что добавление новых файлов спецификаций может изменить порядок, в котором они выполняются, а не на каждой странице webapp есть основная панель навигации, поэтому навигации может потребоваться изменение на основе последней спецификации браузера.
Мне нужна какая-то мастер-библиотека или модуль, который возьмет на какую страницу находится программа и на какую страницу она хочет перейти, а затем перевести браузер на эту страницу, чтобы он мог начать тестирование. Каков наилучший способ сделать это? Я не фантастически переживаю, поэтому мне бы очень понравились материалы от более опытных разработчиков. Должна ли каждая страница быть классом? Должен ли я просто придерживаться закрывающих браузеров после каждого тестового пакета? Должен ли я вручную кодировать методы грубой силы (gotoPage1FromPage2)? Хорошо, этот последний был шуткой. Серьезно, хотя, что лучший способ сделать это?
Не подавать в суд на watir, но в селене возможно подключение к существующей сессии браузера. Таким образом, вы можете запустить процесс браузера в отдельном терминале и при необходимости подключиться к вашим приложениям. См. Http://stackoverflow.com/questions/18721404/connect-to-an-already-running-instance-of-chrome-using-selenium-in-python для некоторого кода на Python, который должен быть переводимым в Ruby, поскольку Selenium использует в основном тот же API для всех его пакетов. В качестве альтернативы вы можете посмотреть [автономный сервер selenium] (http://www.seleniumhq.org/download/) –
Пожалуйста, не используйте идентификаторы сеанса для повторного использования экземпляров браузера. Это абсолютно не поддерживается командой Selenium, и это плохая идея практически во всех обстоятельствах. Используйте свой тестовый бегун так, как ваш тестовый бегун предназначен для использования. – titusfortner
Кроме того, похоже, что у вас много общих вопросов, которые меньше подходят для переполнения стека.Не стесняйтесь присоединяться к каналу Watir Slack (часть Selenium Team Slack): http://seleniumhq.herokuapp.com/ – titusfortner