image-based automation

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

Upload: vitali-shulha

Post on 16-Jun-2015

1.602 views

Category:

Technology


1 download

DESCRIPTION

Автоматизация с помощью скриншотов. Как научить скрипт видеть графический интерфейс и взаимодействовать с ним. Презентация к докладу для Минского сообщества автоматизаторов тестирования http://www.autotest.by/. http://www.autotest.by/news/image_based_test_automation

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Минск, Беларусь

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

Page 3: Image-based automation

Excellence in Software Engineering

План доклада

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

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

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

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

EggPlant

Page 11: Image-based automation

Excellence in Software Engineering

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

Page 12: Image-based automation

Excellence in Software Engineering 12

Sikuli

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

Page 13: Image-based automation

Excellence in Software Engineering

Sikuli: IDE

Page 14: Image-based automation

Excellence in Software Engineering 14

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

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

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

Page 15: Image-based automation

Excellence in Software Engineering 15

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

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

“MainPage_OK” “Popup_OK” “Button_OK”

“OK”

Page 16: Image-based automation

Excellence in Software Engineering 16

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

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

digitsLabel = find(images/config_digits.png)

digits = digitsLabel.targetOffset(300, 0)

Page 17: Image-based automation

Excellence in Software Engineering 17

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

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

Page 18: Image-based automation

Excellence in Software Engineering 18

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

[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 19: Image-based automation

Excellence in Software Engineering 19

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

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

Page 20: Image-based automation

Excellence in Software Engineering 20

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

Java + Sikuli

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

Page 21: Image-based automation

Excellence in Software Engineering 21

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

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

Page 22: Image-based automation

Excellence in Software Engineering 22

• Настройте инструмент для себя– Settings.MoveMouseDelay– Settings.MinSimilarity– FindFailedResponse

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

Page 23: Image-based automation

Excellence in Software Engineering 23

?

Вопросы

Page 24: Image-based automation

Excellence in Software Engineering

О докладчике

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

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

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