Главная
Блог разработчиков phpBB
 
+ 17 предустановленных модов
+ SEO-оптимизация форума
+ авторизация через соц. сети
+ защита от спама

Клиентские тесты на Lettuce Selenium

Anna | 16.06.2014 | нет комментариев

Вступление

На данный момент самым знаменитым решением для клиентского тестирования является selenium. Стоит подметить, что абсолютно снискано — те вероятности, которые предоставляет selenium в связке с webdriver’ом, подлинно охватывают примерно каждый спектр пользовательского взаимодействия с веб-приложениями.

Для маленьких планов восхитительно подходит вариант с плагинами для браузеров, функционал которых дозволено расширить добавлением сторонних компонентов (скажем, UI-element). Но когда план становится довольно огромным, а многие его части неоднократно изменяются и даже всецело перепиливаются, позже всякого метаморфозы в структуре страницы либо методе подачи данных доводится заменять сразу целые блоки тестов, заглядывая чуть ли не в всякий тест. Позже такого selenium плагины теснее перестают казаться столь комфортными. И здесь на поддержка приходят библиотеки selenium, реализованные для многих языков ассоциируемых с веб-разработкой (документация на официальном сайте)

Предлагаю вам посмотреть на вероятности клиентского тестирования (в частности django планов), которые дает python-selenium в связке с библиотекой lettuce.

Lettuce Selenium

Давайте посмотрим на те вероятности, которые предоставляют эти компоненты по отдельности:

Python-Selenium

  • как было сказано выше, selenium имеет богатенький арсенал взаимодествия с веб-приложениями через браузер
  • в различие от плагинов есть вероятность применять обширный функционал python’а
  • интеграция с самим планом

Lettuce

  • распределение тестов на слабосвязанные части
  • контроль над всякой стадией тестирования
  • прекрасный output в терминале :)

И сразу в бой

На примере примитивных тестов регистрации и авторизации я постараюсь продемонстрировать основные аспекты работы с lettuce selenium.

Постановка задачи

Необходимо сделать 2 теста, которые будут исполнять следущие действия:
Регистрация:

  1. Зайти на страницу регистрации
  2. Заполнить поля в форме регистрации
  3. Нажать на кнопку регистрации
  4. Увидеть сообщение о удачной регистрации

Авторизация:

  1. Зайти на страницу авторизации
  2. Заполнить поля в форме авторизации
  3. Нажать на кнопку авторизации
  4. Увидеть сообщение о удачной авторизации

Теснее из постановки задачи видно, что эти 2 теста исполняют аналогичные действия, но в различном контексте. Приступим к выполнению задачи.

Выполнение задачи

Добавив lettuce в наш django план, как это описано в официальной документации, и установив все нужные зависимости (в нашем случае это системные пакеты firefox и питонвские модули lettuce и selenium) дозволено приступать к написанию тестов.
P.S.: для запуска в режиме headless вам сгодятся xvfb и pyvirtualdisplay

Для работы с lettuce нужно сделать следущие файлы:

  • terrain.py в корне плана содержит инструкции, исполняемые на указанной стадии тестирования
  • *.feature файлы в папке myapp/features содержит пошаговое изложение всякого теста
  • *.py файлы в папке myapp/features содержат изложения шагов, используемых в *.feature файлах

От себя могу порекомендовать включить в план файл, содержащий конструкцию страниц вашего приложения (по аналогии с PageObject, используемым в selenium). Назовем данный файл mapping.py и положим в корень плана. Данное отделение конструкции страниц от тестов снижает потдгружать тестовые данные, а по окончании все это успешно удалять (как это делает тестовый фреймворк в самом django).

  • Дозволено прицепить сохранение логов. А если к этому приурочить асинхронные таски, то дозволено всякие N часов получать информацию о состоянии каждого плана.
  • При огромный базе шагов (steps.py) довольно будет описывать только сценарии, которые достаточно легко писать «переводя» в них ТЗ.
  • Развернув такие тесты на одном плане не составит большого труда перенести их на иной план. При переносе на новейший план огромнее каждого времени займет написание сценариев, что не кажется таким уж трудным (по сопоставлению, скажем, с созданием следующий сотни тестов в плагинах selenium)

Пригодные ссылки по теме:

P.S.: Верю, что кто-нибудь заинтересуется этой темой и будет резонно написать про подводные камни, с которыми я столкнулся, применяя lettuce selenium. Буду рад ответить на ваши вопросы.

P.P.S: Предварительно извиняюсь за жанр изложения, пунктуацию и вообще. Первая статья и все такое…

Источник: programmingmaster.ru
Оставить комментарий
Форум phpBB, русская поддержка форума phpBB
Рейтинг@Mail.ru 2008 - 2017 © BB3x.ru - русская поддержка форума phpBB