Вышла Selenide 4.14.0

Вышла Selenide 4.14.0

Судный день
29.08.18

29 августа 1997 года компьютерная система Скайнет вышла из-под контроля и нанесла ядерный удар по России. Так началась война между терминаторами и человечеством.

С тех прошёл - страшно подумать - 21 год! И раз мы до сих пор живы, мы решили в этот исторический день зарелизить Selenide 4.14.0

Изменений немного, и они касаются в основном селенидовского прокси-сервера.


Реализовали BasicAuth через прокси

Часто тестовые сервера закрыты паролем (т.н. BasicAuth). (Зачем это нужно - остаётся для меня загадкой, ведь они и так в интранете! Но что поделаешь, есть как есть.)

До сих пор Selenide позволял вам авторизоваться, только добавляя username:password@ в URL. Но говорят, это работает не во всех браузерах. Теперь же мы реализовали BasicAuth через прокси-сервер, а не URL. Грубо говоря, селенид сам добавляет в каждый запрос от браузера к приложению заголовок Authorization: Basic foobar Этот способ точно работает во всех браузерах. Смело включайте прокси (см. следующий пункт).

См. issue 784 – спасибо Aliaksandr Rasolka за PR 785


Добавили настройку для включения/выключения прокси-сервера

Как вы знаете, Селенид умеет запускать свой встроенный прокси-сервер, который отслеживает запросы между браузером и тестируемым приложением. Изначально он использовался только для одной функции - скачивания файлов. Поэтому у прокси-сервера не было какой-то отдельной настройки - он включался настройкой Configuration.fileDownload == PROXY. Теперь же использование прокси-сервера расширяется (см. предыдущий пункт), и будет расширяться ещё.

Поэтому мы добавили отдельную настройку для прокси-сервера:

  • Configuration.proxyEnabled = true | false (по умолчанию false)

Поясню, почему по умолчанию false. Лично я советую всем включать прокси-сервер. Он хороший. Он позволяет делать вещи, которые с голым селениумом просто невозможны.

Он не сработает только в одном случае: если тесты и браузер запускаются на разных машинах, и машина тестов не видна с машины браузера. Я надеюсь, что у большинства из вас нет такой ерунды. Я вообще не понимаю, зачем разграничивать доступы между тестовыми серверами в интранете, блин. Но говорят, в суровых ынтерпрайзах это бывает. Вот из-за них-то мы пока и не включили proxyEnabled по умолчанию.

Для тонкой настройки прокси-сервера (большинству из вас это не нужно):

  • Configuration.proxyHost
    По умолчанию "" (селенид автоматически подставит IP или имя хоста текущей машины)
  • Configuration.proxyPort
    По умолчанию 0 (селенид автоматически выберет случайный свободный порт на текущей машине)

См. issue 788 и PR 791


Удалили старый хак для IE.

Внимательные читатели могли заметить, что когда Селенид запускает тесты в IE, он автоматически добавляет к каждому URL параметр ?timestamp=какиетоциферки. В своё время мы сделали это для того, чтобы заставить IE перегружать страницы. Нам казалось, что в IE есть баг, из-за которого он иногда при клике не перегружает страницу, а достаёт старую страницу из кэша.

Прошли годы, и теперь я думаю, что клик тогда не работал по другой причине, и этот хак не нужен. Вот мы его и удалили. Ну вы это, жалуйтесь, если у вас это всё-таки аукнется.

См. issue 789 и PR 790

Новости

Обновилась статистику скачиваний Selenide за июль. А она скакнула! Мы перевалили 37000 скачек в месяц.

А вы что думаете?

Делитесь своими идеями, как ещё можно использовать прокси-сервер. Обсудим!


Андрей Солнцев

ru.selenide.org

29.08.18