Screenster — новая платформа автоматизации веб-тестирования
В AgileEngine разработали простую и доступную плафторму для автоматизации веб-тестирования
Идея автоматизации тестирования UI не нова, но большинство решений требуют навыков программирования для успешного создания и выполнения автотестов. Нашей целью было создать продукт максимально простой в использовании. Вместе с тем, он должен эффективно выполнять свою миссию: находить дефекты в UI, сопоставляя текущую версию веб-страниц с их эталонными образцами. Screenster уже благополучно преодолел бета-этап и обрел несколько постоянных клиентов, в числе которых — Kaspersky и Samsung.
Задумка механизма автотестирования, основанного на сравнении скриншотов, появилась в AgileEngine еще в 2013 году. Screenster стал ответвлением от нашего проекта AjaxSwing, требовавшего огромных усилий на регрессионное тестирование пользовательского интерфейса. Именно трудоемкость процесса подтолкнула нас к идее упростить жизнь самим себе, а затем — и другим, оказавшимся в сходной ситуации.
Выпущенная этой весной версия Screenster 1.0 представляет собой платформу для автоматизации веб-тестирования, которая существенно отличается от других продуктов в этой нише. Она ориентирована на тестировщиков без опыта программирования и разработчиков, которые устали воевать с Selenium и хотят повысить продуктивность своего труда. Screenster помогает многократно увеличить скорость и производительность тестирования по сравнению с Selenium и прочими фреймворками, для которых нужно писать код. Итак, как же он решает типичные проблемы интегрированной среды для записи и запуска автотестов?
Без локальной установки
Тестировщикам не обязательно устанавливать что-либо на локальных машинах. Запись тестов и их запуск происходит на сервере в локальной сети или в облаке. Screenster стандартным образом устанавливается на сервер, через инсталлятор, который нужно скачать с нашего сайта. После установки приложение доступно на localhost’е, через любой браузер. Затем к серверу подключаются QA-специалисты для создания и прогонки автотестов. Платформа интутитивно понятна и проста в использовании, так что перед началом работы не нужно штудировать объемные инструкции.
Визуальные образцы тестируемого интерфейса
Тестирование веб-страниц происходит путем сравнения их скриншотов. При записи нового теста эмулируется окно в выбранном тестировщиком браузере. Тестировщик указывает стартовый URL, и эта страница загружается в рабочей области. Далее можно выполнять необходимые действия: нажимать на кнопки, выбирать варианты в выпадающих меню, переходить по ссылкам, выполнять mouseover и т.п. После каждого действия Screenster ожидает стабилизации изображения (это может занять время, если страница долго загружается), затем делает контрольный снимок. Хотите окончить запись — нажмите на кнопку сохранения — и автотест готов. Для каждого шага сделан контрольный снимок, который послужит сравнительным образцом при последующем прохождении записанной последовательности. Совокупность этих образцов называется baseline.
Тесты не требуют написания кода
Тесты разрешено запускать поодиночке или несколько сразу. Каждый пробег теста получает запись в истории и доступен к просмотру. В режиме просмотра результатов отображаются новые скриншоты, на которых красным отмечены все расхождения с образцами из baseline. Таким образом, кодить ничего не требуется. Ведь мало кто предпочтет разбираться с кодом, если можно обойтись и без этого, не так ли?
Возможности поддержки тестов в рабочем состоянии
Образцы в baseline можно заменять новыми скриншотами (если веб-страница была изменена намеренно) — по одному или все сразу, одним нажатием кнопки. При редактировании теста можно менять CSS-код элементов UI, задействованных в тестовой последовательности, и, как следствие, задавать операции с другими элементами. CSS-локатор, с помощью которого Screenster находит отдельные элементы на веб-странице, анализирует разные слои, накладывающиеся друг на друга. Затем с его помощью тестировщик может пройтись по полученному скриншоту, выделить различные области, добавить новые действия с ними или пометить как игнорируемые (ignore regions), чтобы расхождения с образцом в этим областях больше не отображались. Это полезно, например, для отфильтровывания рекламных объявлений — они все время меняются, но учитывать это нет смысла.
Работа с AJAX
Тщательно проработанная внутренняя логика Screenster дает возможность ему легко справляться с веб-страницами, написанными на AJAX, автоматически обрабатывая обновления. Это позволяет избежать программно настраиваемых пауз и прочих сложностей асинхронных систем.
Еще несколько дополнительных возможностей:
● при редактировании теста можно как добавлять новые шаги, так и вставлять другие тесты из уже записанных на Screenster;
● тесты и проекты со всеми их тестами можно экспортировать и импортировать как архивы .zip;
● тесты можно создавать вручную: в этом случае скриншотов-образцов не будет до первого прохождения;
● правила игнорирования (ignore rules), то есть записи с информацией о каждой игнорируемой области (ignore region), можно просматривать в сводной таблице (для отдельного теста или для всего проекта), редактировать и удалять;
● Screenster автоматически распознает стандартные элементы с текущим временем и датой (с помощью алогоритма анализа закономерности изменения отображаемых чисел) и исключает их из сравнения с образцами.
Важное условие успешного применения Screenster — повторяемость работы тестируемого UI: чтобы одни и те же действия при каждом запуске теста выдавали одинаковые результаты. В целом, использование визуальных тестов без работы с кодом может не покрывать все пользовательские сценарии, но для большей их части это даст существенно больший ROI.
Что дальше?
Screenster продолжает развиваться, мы совершенствуем продукт и расширяем функциональность. Релиз 1.0, сменивший бета-версию Screenster’а, вышел в мае 2016 года. С тех пор мы пофиксили баги и готовимся к релизу 1.1 с новым интерфейсом. Помимо прочего, в ближайшей версии пользователям Screenster будет доступно:
● простое копирование тестовых шагов и последовательностей;
● создание последовательностей из тестовых шагов вручную (через drag&drop);
● автогруппировка тестовых шагов;
● массовое переопределение стартовых URL при использовании готовых тестов в новой тестовой среде (на другом сервере).
16 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів