Как вы тестируете страницы, которые требуют аутентификации с помощью Selenium? - PullRequest
11 голосов
/ 16 мая 2011

Мне нужно протестировать веб-приложение с использованием Selenium. Приложение довольно распространено в настройке: оно требует входа, чтобы раскрыть большую часть функциональности. После загрузки страницы, если пользователь не прошел проверку подлинности, он будет перенаправлен на форму входа в систему, а затем вернется на запрошенную страницу после предоставления учетных данных.

Какой обычный способ обойти это с Selenium? Я полагаю, что люди не регистрируются в каждом тесте, так как это может привести к значительным издержкам при работе с большими наборами тестов. Есть ли способ настроить сеанс в тесте, а затем использовать информацию cookie для последующих тестов или выполнить условный вход (без необходимости повторения большого количества кода!)?

Я использую PHPUnit с банкоматом Selenium.

Спасибо!

Гонсало

Ответы [ 2 ]

4 голосов
/ 17 мая 2011

(я использую C # + NUnit + Selenium RC)

В большинстве случаев каждый тест проходит через форму входа в систему.Однако, если я пишу серию очень коротких тестов (<10 секунд каждый) и их много, я обычно делю один и тот же экземпляр браузера в тестах, перемещая вызовы начала / закрытия селена из SetUp \Методы TearDown для методов Test Fixture SetUp \ TearDown.Это позволяет избежать затрат на повторную проверку подлинности, а также затрат на запуск нового браузера каждый раз.Я уверен, что вы можете сделать что-то подобное с PHPUnit.</p>

2 голосов
/ 16 мая 2011

Если это базовая авторизация http, вы можете использовать имя пользователя / пароль с URL-запросом, как описано в FAQ по Selenium: http://wiki.openqa.org/display/SEL/Selenium+Core+FAQ#SeleniumCoreFAQ-HowdoIuseSeleniumtologintositesthatrequireHTTPbasicauthentication%28wherethebrowsermakesamodaldialogaskingforcredentials%29%3F

Как использовать Selenium для входа в сайты, которые требуют базового HTTP аутентификация (где браузер делает модальный диалог с просьбой Учетные данные)?

Используйте имя пользователя и пароль в URL, как описано в RFC 1738: тест Тип открыт http://myusername:myuserpassword@myexample.com/blah/blah/blah

Обратите внимание, что в Internet Explorer это не будет работать, так как Microsoft имеет отключенные имена пользователей / пароли в URL в IE. Тем не менее, вы можете добавить, что функциональность обратно путем изменения ваш реестр, как описано в связанная статья KB. Установить "iexplore.exe" DWORD в 0 в HKEY_CURRENT_USER \ Software \ Microsoft \ Internet Explorer \ Main \ FeatureControl \ FEATURE_HTTP_USERNAME_PASSWORD_DISABLE.

Если вы не хотите изменять зарегистрироваться самостоятельно, вы всегда можете просто использовать Selenium Remote Control, который автоматически устанавливает, что этот реестр ключ для вас с версии 0.9.2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...