Top Banner
Excellence in Software Engineering Автоматизация с помощью скриншотов Виталий Шульга, EPAM Systems
27

Image-based automation

Jun 26, 2015

Download

Technology

Vitali Shulha

Презентация к докладу "Автоматизация с помощью скриншотов. Как научить скрипт видеть графический интерфейс и взаимодействовать с ним" для конференции SQA Days-11.
http://it-conf.ru/ru/content/466.htm#TOC-28
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Image-based automation

Excellence in Software Engineering

Автоматизация с помощью скриншотовВиталий Шульга, EPAM Systems

Page 2: Image-based automation

Excellence in Software Engineering

О докладчике

Виталий Шульга

Software Test Automation Engineerв EPAM SystemsМинск, Беларусь

www.linkedin.com/in/[email protected]

Page 3: Image-based automation

Excellence in Software Engineering

План доклада

1. Технология визуального поиска– Что такое визуальный поиск?– В чем отличие от стандартных решений?– Что мне это даст?– В каких случаях это выгодно?– Чем можно воспользоваться?

2. Практические рекомендации3. В чем подвох?

Page 4: Image-based automation

Excellence in Software Engineering

Что такое визуальный поиск?

Сделать снимок экрана

Найти изображение на снимке

Выполнить необходимое действие

Page 5: Image-based automation

Excellence in Software Engineering

Пример скрипта с визуальным поиском

Page 6: Image-based automation

Excellence in Software Engineering 6

Независимость от платформы и технологии

Что нам это даст?

Page 7: Image-based automation

Excellence in Software Engineering 7

Простота реализации

Что нам это даст?

Page 8: Image-based automation

Excellence in Software Engineering 8

Сокращение затрат времени и усилий.

Что нам это даст?

Page 9: Image-based automation

Excellence in Software Engineering 9

• Нет доступа к свойствам элементов• Свойства есть, но они постоянно меняются• Приложение больше не обновляют• У нас недостаточно времени• У нас недостаточно опыта• Мы решили упростить себе жизнь

В каких случаях это выгодно?

Page 10: Image-based automation

Excellence in Software Engineering 10

Чем можно воспользоваться?

Page 11: Image-based automation

Excellence in Software Engineering 11

• Создан как инструмент тестирования• Сильный модуль распознавания текста• Высокая стабильность работы• Хорошая система отчетов• Платный• Работает только с удаленной машиной (VNC).

EggPlant

www.testplant.com

Page 12: Image-based automation

Excellence in Software Engineering 12

EggPlant: выполнение сценария

Page 13: Image-based automation

Excellence in Software Engineering 13

Sikuli

• Инструмент бесплатный• Прост в развертывании и использовании• Не требует дополнительной машины• Есть API для Java• Возможность использовать Jython• Слабый модуль распознавания текста• Отсутствие подробного отчета.

www.sikuli.org

Page 14: Image-based automation

Excellence in Software Engineering 14

Sikuli: IDE

Page 15: Image-based automation

Excellence in Software Engineering 15

Лицензия - +Язык программирования - +Система отчетов + -Распознавание текста + -Дополнительная машина - +API - +

Краткое сравнение

Page 16: Image-based automation

Excellence in Software Engineering 16

• Используем красивые имена изображений

– click(“1330030896672.png”)– click(“button_close.png”)

Практические рекомендации

Page 17: Image-based automation

Excellence in Software Engineering 17

• Используем изображения многократно

Практические рекомендации

“MainPage_OK” “Popup_OK” “Button_OK”

“OK”

Page 18: Image-based automation

Excellence in Software Engineering 18

• Доверяем только проверенным элементам

Практические рекомендации

digitsLabel = find(images/config_digits.png)

digits = digitsLabel.targetOffset(300, 0)

Page 19: Image-based automation

Excellence in Software Engineering 19

• Сократим распознавание текста

Практические рекомендации

Page 20: Image-based automation

Excellence in Software Engineering 20

• Создаем удобный лог

[log][15:12:54] >>> Test start

[log][15:12:54] >>> Assign: PauseOnFail=True

[log][15:12:54] >>> TestScenario: ParallelRunTest

[log][15:12:54] >>> =======================

[log][15:12:54] >>> TestCase: Keying activities

[log][15:12:54] >>> LazyCure.IsOpenState

[log][15:12:54] >>> Call activity window

[log] RIGHT CLICK on (1139,927)

[log][15:13:02] >>> Search for activity window

[log] CLICK on (1052,736)

Практические рекомендации

Page 21: Image-based automation

Excellence in Software Engineering 21

• Используем взаимодействие с пользователем

Практические рекомендации

Page 22: Image-based automation

Excellence in Software Engineering 22

• Используем больше возможностей инструмента– Импорт jar– Единое хранилище изображений– Поддержка Jython– Встроенный режим unit-тестирования– Подсветка найденных элементов.

Практические рекомендации

Page 23: Image-based automation

Excellence in Software Engineering 23

• Настроим инструмент для себя– Settings.MoveMouseDelay– Settings.MinSimilarity– Обработка Find Failed.

Практические рекомендации

Page 24: Image-based automation

Excellence in Software Engineering 24

• Используем вызов через API

Java + Sikuli

Практические рекомендации

Page 25: Image-based automation

Excellence in Software Engineering 25

• Зависимость от графического интерфейса• Уменьшение скорости выполнения

сценария• Необходимость поддержки скрипта в

готовности• Трудности с получением результатов

работы.

В чем подвох?

Page 26: Image-based automation

Excellence in Software Engineering 26

Краткий план доклада– Принцип работы визуального поиска– Отличие от стандартных решений– Плюсы и минусы технологии– Случаи рационального использования– Обзор рынка инструментов– Переиспользование изображений– Взаимодействие с пользователем– Использование API– Настройка инструмента

Вопросы

Page 27: Image-based automation

Excellence in Software Engineering

О докладчике

Виталий Шульга

Software Test Automation Engineerв EPAM SystemsМинск, Беларусь

www.linkedin.com/in/[email protected]