Перейти к содержимому

Фотография

Basic(NTLM) авторизация + Selenium


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 9

#1 KaZiK

KaZiK

    Новый участник

  • Members
  • Pip
  • 22 сообщений
  • ФИО:Казимирчик Владимир

Отправлено 14 декабря 2010 - 09:19

Ситуация:
Есть некий сайт, вход на который, из соображений безопастности, происходит с использованием Basic(NTLM) авторизации.
Далее имеем собственно сайт, находящийся в разработке, который и надо тестировать.

Что имеем на данный момент:
Авторизацию обошли подставной страничкой с простейшей формой. При сабмите формы происходит либо переход на
http://user:pass@site.com для FF и Google Chrome, либо авторизация через XMLHttpRequest для IE7\IE8.

Проблема:
При дальнейшем тестировании столкнулись с ситуацией когда, по некоторым причинам(например, обновление контента),
окно авторизации появляется вновь и тесты падают.

Вопрос:
Как сохранить авторизацию для одельно взятой сессии селениума?
Пробывали делать авторизацию с помощью HttpClient, но так и смогли привязать его к селениум.
Возможно ли как-либо образом "слушать" запрос сервера на авторизацию и автоматически ее отсылать тем же HttpClient?

Заранее спасибо :)
  • 0

#2 OVA

OVA

    Опытный участник

  • Members
  • PipPipPipPip
  • 405 сообщений
  • ФИО:Высоцкий Сергей Павлович
  • Город:Новосибирск

Отправлено 14 декабря 2010 - 10:12

Если я не ошибаюсь, то граждане из atlassian где-то год назад решали подобную проблему. Вот тут: http://blogs.atlassi...th_windows.html

Вообще крайне рекомендую их блоги по части тестирования на selenium смотреть, там есть весьма вкусные вещи.

ЗЫ: Как вариант можно еще попробовать запускать селениум сервер под нужным юзером.
  • 0

#3 KaZiK

KaZiK

    Новый участник

  • Members
  • Pip
  • 22 сообщений
  • ФИО:Казимирчик Владимир

Отправлено 14 декабря 2010 - 11:27

Интересный вариант...Спасибо!
А кто-нибудь пробывал тоже, но на Java реализовать?
  • 0

#4 KaZiK

KaZiK

    Новый участник

  • Members
  • Pip
  • 22 сообщений
  • ФИО:Казимирчик Владимир

Отправлено 14 декабря 2010 - 11:47

Хм... Попробывал запустить селениум через runas указав нужные логин\пароль -- не работает...
  • 0

#5 OVA

OVA

    Опытный участник

  • Members
  • PipPipPipPip
  • 405 сообщений
  • ФИО:Высоцкий Сергей Павлович
  • Город:Новосибирск

Отправлено 14 декабря 2010 - 18:23

Так... Что пускаем, какой браузер и так далее)
  • 0

#6 KaZiK

KaZiK

    Новый участник

  • Members
  • Pip
  • 22 сообщений
  • ФИО:Казимирчик Владимир

Отправлено 15 декабря 2010 - 14:59

Так... Что пускаем, какой браузер и так далее)

Пускать надо как минимум ИЕ7, ИЕ8 и ФФ. Как максимум еще и Хром с Сафари :)

runas запускал с /noprofile и /netonly
  • 0

#7 OVA

OVA

    Опытный участник

  • Members
  • PipPipPipPip
  • 405 сообщений
  • ФИО:Высоцкий Сергей Павлович
  • Город:Новосибирск

Отправлено 16 декабря 2010 - 05:22

почему /noprofile? Там же для FF это добро как раз через профайлы делается, нет?
  • 0

#8 KaZiK

KaZiK

    Новый участник

  • Members
  • Pip
  • 22 сообщений
  • ФИО:Казимирчик Владимир

Отправлено 16 декабря 2010 - 13:35

почему /noprofile? Там же для FF это добро как раз через профайлы делается, нет?

как я понял из мануала по runas, /noprofile не загружает данные профиля системного юзера.
А так как нужного юзера у меня в системе нет, то и использовал /noprofile. Да и сам селениум
загружался со всеми нужными опциями, в том числе и с указанием профайла для ФФ.
  • 0

#9 OVA

OVA

    Опытный участник

  • Members
  • PipPipPipPip
  • 405 сообщений
  • ФИО:Высоцкий Сергей Павлович
  • Город:Новосибирск

Отправлено 17 декабря 2010 - 05:38

Ну тут может быть проблема у селениум сервера в том что ему прав на нормальную работу (например ему банально не дают слушать нужный порт) не хватает, когда вы его запускаете под левым юзером. Для Vista и дальше такое вполне возможно.

Вот, кстати, есть еще решение на Java: http://wiki.openqa.o...TTP AUTH Issues
Но я не уверен что оно работает (автор, видимо, тоже). Так что там придется поковыряться.

Еще варианты воркараундов - попробовать передавать в линку логин/пароль, но я не уверен что это будет корректно. Ну или ловить диалог всякими AutoIt и Sikuli, что тоже костыль.
  • 0

#10 KaZiK

KaZiK

    Новый участник

  • Members
  • Pip
  • 22 сообщений
  • ФИО:Казимирчик Владимир

Отправлено 17 декабря 2010 - 08:30

Интересный вариант. Может быть и попробуем.
Пока остановились на том, что после кликов, которые могут вызвать(правда так и не понял почему) авторизацию, шлем авторизацию с помощью XMLHttpRequest.
Пока работает :) Если в дальнейшем перестанет - будем думать дальше :)

Спасибо за советы.
  • 0


Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных