SharePoint Alfresco PHP MySQL
О сайте Контакты
понедельник, 24 февраля 2014 г.

Sikuli — помощник в автоматизированном тестировании

Необходимость тестирования веб-сайтов при разработке вряд ли кто-то будет отрицать. Более того, сегодня редко кто отрицает необходимость автоматизированного тестирования сайтов. Если эта задача актуальна, то должны быть и удобные инструменты для ее решения. Здесь я рассмотрю одно из перспективных таких средств — Sikuli.

Sikuli (читается как сикУли) — средство, созданное специально для автоматизированной работы с любым интерфейсом. Принцип ее работы в том, что она как бы смотрит на экран и может при этом эмулировать действия пользователя с мышью и клавиатурой. Например, что мы делаем, когда нам надо нажать мышью кнопку на экране? Находим ее глазами, подводим курсор, и кликаем. То же самое делает и Sikuli: она распознает экран, находит нужный участок, переводит на него курсор мыши и делает клик.

Как несложно заметить, интерейс может быть совершенно любой, будь то браузер, компьютерная игра, или деловое настольное приложение. Sikuli работает не с программами, а с экраном. Ей не надо внедряться в программу, поэтому и нет никаких проблем с доступами и ограничений по безопасности. Sikuli может делать все то, что может делать с программой человек.

Написана Sikuli на Java, поэтому может работать практически под любой операционной системой, ведь Java кроссплатформенна. Скачать программу можно с официального сайта, она бесплатна. Там же, на сайте, есть множество примеров использования с кодом. Наиболее примечательны такие, как авто-добавление друзей в Facebook, автозаполнение гигантских таблиц и т.д. Кстати, по поводу кода: скрипты автоматизации пишутся в Sikuli на Python-подобном языке Jython. Сам код выглядит весьма забавно, в нем встречаются вставки в виде изображений:

Sikuli развивается, и в последнее время стала называться SikuliX. Когда я пробовал еще старую версию, то наткнулся на следующие недостатки: не распознаются кириллические надписи на экране, что затрудняет работу с русскоязычними программами, и самое главное, невозможность запуска Sikuli без монитора. Последнее наиболее критично, так как нельзя прогнать написанные сценарии на удаленной машине без доступа к ней по RDP.

Таким образом, от попытки использования Sikuli в качестве инструмента тестирования остается двоякое впечатление. С одной стороны, она снимает с тестировщика необходимость ручного протыкивания. С другой - нет возможности запускать тесты в фоне, приходится фактически сидеть и наблюдать за действиями робота-Sikuli на экране. Данный недостаток практически сводит на нет преимущество. Что ж, может быть, в будущем программа разовьется в нечто большее, появится API, агенты, виртуальные экраны ... Тогда с помощью нее можно будет творить практически чудеса.

Sergey Lysenko, понедельник, 24 февраля 2014 г.

Комментарии: