Upload
sqalab
View
450
Download
5
Embed Size (px)
DESCRIPTION
Презентация Вадима Зубовича на SQA Days-16 14-15 ноября 2014, Санкт-Петербург, Россия www.sqadays.com
Citation preview
Практическое применение
Sikuli Script в автоматизации
тестирования
Вадим Зубович
DPI Solutions
Коротко о себе
Вадим ЗубовичDPI Solutions / ISSoft
Skype: dpi.zubovichE-mail: [email protected]://www.dpi.solutions/
Что такое Sikuli Script
Sikuli-Script – библиотека Java, на которой
базируется инструмент для автоматизации Sikuli-X,
в основе которого лежит принцип распознавания
образов и изображений.
Profit???
Когда полезен Sikuli-Script:
● Автоматизация Flash
● Проверка наличия и корректности
изображений в приложении
● Автоматизация Active-X приложений
● Автоматизация HTML-5 Canvas
● Здесь может быть ваш пример
В чем проблема
Flash, Canvas, Active-X:
Как его видим мы Как его видит WebDriver
Sikuli спешит на помощь
Ингредиенты
Нам понадобятся:
● Инструмент для снятия скриншотов.
● IDE для работы с Java
● JDK
● Библиотека sikuli-script.jar
Подготовка
Скачиваем Sikuli-X setup:
www.sikuli.org/download.html
Подготовка
Устанавливаем Sikuli-X:
Подготовка
Добавляем библиотеку sikuli-script.jar в локальный
репозиторий Maven:
mvn install:install-file –Dfile=C:\Sikuli-Script\sikuli-script.jar -DgroupId=com.sikuli.script -DartifactId=sikuli–Dversion=1.0.1 -Dpackaging=jar
Подготовка
Прописываем зависимость в .POM:
<dependency><groupId>com.sikuli.script</groupId><artifactId>sikuli</artifactId><version>1.0.1</version>
</dependency>
Подготовка
Не любите Maven? Добавьте в classpath!
Основные классы и методы
App – используется для запуска приложения
App.open(“<path to application>”);
App application = App.open(“<path>”);
application.focus();//переводит фокус на наше приложение
application.window();//Возвращает объект Region, включающий только содержимое окна приложения
Основные классы и методы
Screen – охватывает весь экран
Screen scr = new Screen();
scr.click(“<image>”);scr.rightClick(“<image>”);scr.doubleClick(“<image>”);scr.dragDrop(“<source image>”,“<target image>”);scr.hover(“<image>”);scr.paste(“<image>”, “<text>”);
scr.find(“<image>”);//возвращает объект Matchscr.exists(“<image>”);//возвращает объект Matchscr.wait(“<image>”, double milis);//возвращает объект Match
Основные классы и методы
Основные классы и методы
Region – заданный регион на экране
Region reg = scr.find(“<image>”);
reg.click(“<image>”);reg.rightClick(“<image>”);reg.doubleClick(“<image>”);reg.dragDrop(“<source image>”,“<target image>”);reg.hover(“<image>”);reg.paste(“<image>”, “<text>”);
scr.find(“<image>”);//возвращает объект Matchscr.exists(“<image>”);//возвращает объект Matchscr.wait(“<image>”, double milis);//возвращает объект Match
Основные классы и методы
Основные классы и методы
Pattern – шаблон для нахождения картинки на экране
Pattern pat = new Pattern(“<image>”);
pat.exact();//будет искать точное совпадениеpat.similar(float similarity);//будет искать совпадение с отклонениемpat.targetOffset(int x, int y);//будет работать с регионом со смещением
Особенности архитектуры
На базе Sikuli-Script можно строить привычный
PageObject, но со ссылками на картинки вместо
привычных для WebDriver локаторов.
Особенности архитектуры
Хранить картинки удобнее всего в ресурсах,
разложив их по папкам, соответствующим названиям
страниц.
Sikuli Web Driver
Sikuli Web Driver – расширение Web Driver,
использующее возможности работы с изображенями,
доступные в Sikuli
Sikuli Web Driver
Подключаем зависимость Maven
<dependency><groupId>org.sikuli</groupId><artifactId>sikuli-webdriver</artifactId><version>1.0.1</version>
</dependency>
При этом подключаются org.sikuli.api, org.sikuli.core и org.sikuli.webdriver
Sikuli Web Driver
Сама по себе библиотека org.sikuli.api не
содержит методов для взаимодействия с
найденными изображениями
Sikuli Web Driver
Как искать элементы с использованием Sikuli Web
Driver:
Sikuli + Selenide
Используем Sikuli Web Driver вместе с Selenide
Спасибо за внимание
Приятной Вам автоматизации
Вадим ЗубовичDPI Solutions / ISSoft
Skype: dpi.zubovichE-mail: [email protected]://www.dpi.solutions/