Screenster — новая платформа автоматизации веб-тестирования

💡 Усі статті, обговорення, новини про тестування — в одному місці. Приєднуйтесь до QA спільноти!

В 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 при использовании готовых тестов в новой тестовой среде (на другом сервере).

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Не думали в бік підтримки Лінукс?

Коментар порушує правила спільноти і видалений модераторами.

Коментар порушує правила спільноти і видалений модераторами.

Вообще непонятно что и как оно работает.
Даже если запустилось теряет в полях input текст, он не отображается — не сохраняется. Просто пустое поле становится.

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

Подскажите где искать подробно описанный процесс инсталяции?

После установки экзешника, при попытке зайти на localhost «Не удается получить доступ к сайту» joxi.ru/V2VBV4Nu0yBL12 Попытка найти корректный процесс установки в User Support на сайте ни к чему не приводят, на запрос install ничего не выдает

Локальная база может стартовать не сразу, из-за чего придется ждать пару минут, пока локалхост станет доступен. Если страница так и не откроется, напишите, пожалуйста, в группу техподдержки (на сайте).

Проблема оказалась более прозаичной — не поддерживается Windows 7

У кого есть опыт установки этого инструмента? У меня при скачивании по ссылке, указанной в статье, антивирус заблокировал установку.

Да, бывает, что антивирусы реагируют на Скринстер — главным образом, из-за того, что он меняет пользовательские настройки, чтобы обеспечить возможность записывать тесты в IE. Если для Вас поддержка IE не важна, попробуйте скачать новую версию — 1.0.2, она как раз вышла на днях. Если еще возникнут какие-либо проблемы, напишите, пожалуйста, в группу техподдержки на сайте.

Он может прогонять тестовые заказы(юзерные действия, вписывать комментарии и т.д.), или он просто сравнивает UI?

Да, при открытии страницы в Скринстере можно кликать по кнопкам, ссылкам, вводить текст, а также посылать команды с двойным кликом и с наведением курсора. Кроме того, он обрабатывает Enter и Tab.

Как часто нужно обновлять референсные скриншоты ?

Если Вы имеете в виду baseline, то их можно обновлять (или не обновлять) в зависимости от нужды для конкретной веб-страницы. Если интерфейс изменился, и эти изменения корректны (т.е. его нынешний вид — это новый образец), то соответствующие скриншоты стоит внести в baseline. Если же он не должен был меняться, то и скриншоты-образцы должны остаться те же.

Я имею в виду на практике у вас как происходит. Допустим средней сложности веб мордочка, котороя в активной разработке. Полагаю, что бейслайн меняется чуть ли не каждый день для некоторых частей. Допустим у нас 100+ относительно стабильных скриншотов, и 100+ с частями, которые в активной разработке. каждый день делаете 100+ новых бейслайнов?

У кого есть опыт установки этого инструмента. У меня при скачивании по ссылке, указанной в статье, антивирус не разрешил его устанавливать.

Конечно, если страница покрыта тестом, и она постоянно дорабатывается, то по-хорошему скриншот-образец и обновлять нужно постоянно. Но обновить отдельный скриншот — это все-таки проще, чем полностью заменить baseline всего теста. Тест в очередной раз выполнился, я просматриваю шаги: вижу расхождение с образцом и вижу, что новое состояние на самом деле правильное, нажимаю на кнопку ‘Approve this step’ - готово. С другой стороны, если на 100+ скриншотах в одном тесте у нас один и тот же элемент, из-за которого нужно обновить образцы, то их все можно заапрувить скопом — для этого есть отдельная кнопка.

Підписатись на коментарі