-
Notifications
You must be signed in to change notification settings - Fork 2
Home
Pedant - это многофункциональный кроссплатформенный инструмент для тестирования интерфейсов и функциональности веб-приложений. С его помощью можно решать такие задачи как:
- быстрое сравнение внешнего вида веб-интерфейсов (снятых скриншотов с одобренной версией) в различных браузерах. Для снятия скриншота используется соединение с реальным браузером через JSONWireProtocol (модуль selenium). Сравнение выполняется параллельно и автоматически, поэтому занимает гораздо меньше времени, нежели проверка при помощи человека. Это очень удобно в ситуациях когда нужно провести срочную поверхностную проверку работоспособности приложения. Педант позволяет сделать это для нового проекта за считанные минуты.
- просмотр отчетов о сравнении и управление скриншотами. Независимо от того как был осуществлен запуск (из консоли, из веб интерфейса) в системе отображаются отчеты о запуске. Можно просмотреть расхождения между скриншотами или просто увидеть как выглядит ваша страница в разных браузерах.
- BDD сборка с отчетами, скриншотами и управление их состоянием (для BDD используется behave). В отличие от оригинального использования behave - pedant позволяет запускать параллельно фичи, либо сценарии. Это значительно ускоряет работу. Кроме того имеется возможность снимать скриншоты после каждого шага и выполнять их сравнение в эталонной версией.
- Регрессионное тестирование приложения (проверка "что ничего не поломалось" в результате действий над приложением)
- Регрессионное тестирование веб-интерфейса
- Просмотр веб-интерфейсов в различных браузерах
- Экспресс-проверка сайта или автоматизация за считанные минуты (нужно установить педант -1.5 минуты, завести проект - 1 минута и запустить phantomJS - 2 минуты). Дальше можно уже выполнять первые проверки
Скачать свежую версию можно здесь http://phantomjs.org/download.html Запустить в режиме webdriver (параметр --webdriver 4445, где 4445 - порт, на котором работает браузер)
Установить java, скачать selenium-server http://www.seleniumhq.org/download/ Дополнительные драйверы: adndroid https://github.com/SeleniumHQ/selenium/wiki/Android-Driver chrome https://sites.google.com/a/chromium.org/chromedriver/
Все браузеры можно установить на удаленных машинах и в качестве адреса браузера использовать адрес этого сервера. Установка ничем не отличается от локальной версии.
Можно использовать готовые сервисы, которые поддерживают JsonWireProtocol. Например http://browserstack.com
Для работы системы необходимо установить: python 2.7, pip и python-dev В Ubuntu достаточно выполнить команды: sudo apt-get install python python-pip python-dev В Windows необходимо скачать и установить последнюю версию python 2.7 (http://docs.python-guide.org/en/latest/starting/install/win/). На текуший момент установщик включает в себя python и pip, поэтому скачать необходимо только его. Во время установки не забудьте установить опцию “Add python.exe to system path”
Склонировать репозиторий <ссылка> и запустить скрипт linux-install.sh
Склонировать репозиторий <ссылка> и запустить скрипт linux-install.sh
Склонировать репозиторий <ссылка> и запустить скрипт win-install.bat
Linux\MacOS: сделать файл исполняемым и запустить: ./bin/pedant-server
Windows: запустить через python: python bin/pedant-server
Аргументы для запуска:
--host Имя хоста, не обязательный, по умолчанию localhost
--port Номер порта, не обязательный, по умолчанию 8081
Linux\MacOS: сделать файл исполняемым и запустить: ./bin/pedant-screens
Windows: запустить через python: python.exe bin/pedant-screens
Аргументы для запуска:
--mode Использование заранее определенного набора браузеров и состояний страниц (задается в конфиге)
--no-logging Отключить логирование, не рекомендуется
--verbose Включение детального вывода
--threads Максимально допустимое количество потоков
--browsers Список идентификаторов браузеров, в которых необходимо провести проверку
--states Список идентификаторов состояний, к которым нужно приводить страницы
--no-diffs Отключение генерации отличий между скриншотами
--info Вывод информации о текущем проекте
Linux\MacOS: сделать файл исполняемым и запустить: ./bin/pedant-bdd
Windows: запустить через python: python.exe bin/pedant-bdd
Аргументы для запуска:
--threads Максимально допустимое количество потоков
--browsers Список идентификаторов браузеров, в которых необходимо запускать сценарии
--features Список фич, которые необходимо проверить
--scenarios Список сценариев, которые необходимо проверить
--steps Список шагов, которые необходимо выполнить
--no-logging Отключение логирования, не рекомендуется
--verbose Включение детального вывода
--path Путь до директории с фичами или до конкретного файла с фичей
todo
В нужной директории создайте файл pedant.json следующего содержания:
{"name":"project name"}
project name - имя вашего проекта (Латинские буквы, цифры и нижнее подчеркивание). Так система сможет опознать данную директорию для создания проекта. Затем запустите сервер, перейдите на главную страницу (http://localhost:8081/) и введите в поле Path путь до данной папки или до родительской. Нажмите кнопку Attach projects и система сама найдет все проекты и они отобразится в списке.
Рекомендуется удалять проект через веб-интерфейс
Рекомендуется редактировать конфиг проекта через веб-интерфейс
После того как вы создали проект - вы можете сразу перейти к проверке, для этого кликните по кнопке actions соответствующего проекта на главной странице и выберите пункт “Run screenshots compare”. Вы можете запускать сравнение как по заранее сохраненным режимам в конфиге (modes), так и определять параметры непосредственно перед запуском. Чтобы начать проверку - нажмите кнопку RUN. После запуска должна отобразиться статистика текущего запуска и лог запуска в соответствующем поле. Во время проверке можно просматривать отчет на лету, открыв страницу последнего отчета в новой вкладке (кнопка Last Report)
Запустите скрипт bin/pedant-screens, находясь в директории проекта. Справка по параметрам - ключ -h Примеры: pedant-screens -h - вывод справки pedant-screens --verbose --browsers “PHATNOMJS_800x600” - запуск проверки в браузере с идентификатором PHANTOMJS_800x600 и вывод подробной информации о запуске. Важно! Чтобы не было коллизий при запуске разными способами - проект на время запуска будет заблокирован. Если запуск был прерван аварийно - удалите файл lock.file в директории проекта для разблокирования.
Для того чтобы проверять страницы, расположенные по одним адресам, но в разных состояниях - необходимо привести страницы к этим состояниям. Для этой задачи необходимо:
Создать файл PedantStates.py в директории вашего проекта
Описать в нем класс, унаследовав его от класса pedant.states.Default
Внутри класса определить методы работы со страницей в данном стейте, пометив эти методы соответствующими декораторами ( @event('before_all'), @event('before_one'), @event('after_all')
)
Для примера можете посмотреть файл PedantStates.py в директории web/data_storage/Test_project
Для организации bdd сборок используется behave (устанавливается вместе с остальными зависимостями). О формате .feature файлов и описании шагов - см. документацию к behave По умолчанию директория для хранения .feature файлов - <PROJECT_DIRECTORY>/bdd/features. Для примера смотрите директорию web/data_storage/Test_project дополнительные управляющие теги для фич и сценариев тег фичи - @parallel - фича может быть запущена параллельно с другими фичами. Если тега нет - фича будет проверяться последовательно (в разных браузерах). Если фича проверяется в 3х браузерах, имеет 3 сценария - будет создано 3 параллельных потока и в каждом фича выполнится целиком. тег фичи - @parallelscenarios - все сценарии фичи и сама фича будут запущены параллельно друг другу и независимо друг от друга. Т.е. если фича проверяется в 3х браузерах, имеет 3 сценария - будет создано 9 параллельных потоков и в каждом будет выполнено по одному сценарию фичи. тег сценария @ui - если данный сценарий нуждается в selenium браузере - поставьте этот тег и перед сценарием будет запущен браузер и передан в context. В описании к step’у для его получения необходимо вызвать context.get_browser() тег сценария @screenshots - для каждого шага сценария будут сняты скриншоты и отображены в отчете тег сценария @compare - для каждого шага сценария будут сняты скриншоты и будет запущено сравнения их с эталонной версией. В случае если эталонная версия не найдена или имеются отличия между текущей версией и эталонной - шаг будет отмечен как проваленный.
Для запуска выберите пункт меню Run BDD features у соответствующего проекта на главной странице. Интерфейс практически такой же как и при запуске сравнения скриншотов. В случае если в проекте нет фич - будет отображаться соответствующая ошибка.
Для запуска из консоли необходимо перейти в директорию вашего проекта и запустить скрипт ./bin/pedant-bdd.
Чтобы сделать текущую версию скриншота эталонной (с которой происходит сравнение) - нажмите кнопку approve в последней колонке. В случае успеха операции она изменится на изображение отмены операции (красный крестик). В случае ошибки - она будет отображена в верхней части страницы. работа с одобренными состояниями работа с отчетами о запуске bdd сценариев фиксирование скриншота для шага сценария (approve)