image-based automation
DESCRIPTION
Автоматизация с помощью скриншотов. Как научить скрипт видеть графический интерфейс и взаимодействовать с ним. Презентация к докладу для Минского сообщества автоматизаторов тестирования http://www.autotest.by/. http://www.autotest.by/news/image_based_test_automationTRANSCRIPT
![Page 1: Image-based automation](https://reader035.vdocuments.net/reader035/viewer/2022081603/557f7fb6d8b42a55278b4ba1/html5/thumbnails/1.jpg)
Excellence in Software Engineering
Автоматизация с помощью скриншотовВиталий Шульга, EPAM Systems
![Page 2: Image-based automation](https://reader035.vdocuments.net/reader035/viewer/2022081603/557f7fb6d8b42a55278b4ba1/html5/thumbnails/2.jpg)
Excellence in Software Engineering
О докладчике
Виталий Шульга
Software Test Automation Engineerв EPAM SystemsМинск, Беларусь
http://www.linkedin.com/in/[email protected]
![Page 3: Image-based automation](https://reader035.vdocuments.net/reader035/viewer/2022081603/557f7fb6d8b42a55278b4ba1/html5/thumbnails/3.jpg)
Excellence in Software Engineering
План доклада
1. Технология визуального поиска– Что такое визуальный поиск?– В чем отличие от стандартных решений?– Что нам это даст?– В чем подвох?– В каких случаях это выгодно?– Чем можно воспользоваться?
2. Практические рекомендации
![Page 4: Image-based automation](https://reader035.vdocuments.net/reader035/viewer/2022081603/557f7fb6d8b42a55278b4ba1/html5/thumbnails/4.jpg)
Excellence in Software Engineering
Что такое визуальный поиск?
Сделать снимок экрана
Найти изображение на снимке
Выполнить необходимое действие
![Page 5: Image-based automation](https://reader035.vdocuments.net/reader035/viewer/2022081603/557f7fb6d8b42a55278b4ba1/html5/thumbnails/5.jpg)
Excellence in Software Engineering
Пример скрипта с визуальным поиском
![Page 6: Image-based automation](https://reader035.vdocuments.net/reader035/viewer/2022081603/557f7fb6d8b42a55278b4ba1/html5/thumbnails/6.jpg)
Excellence in Software Engineering 6
Независимость от платформы и технологииПростоту реализацииСокращение затрат времени и усилий
Что нам это даст?
![Page 7: Image-based automation](https://reader035.vdocuments.net/reader035/viewer/2022081603/557f7fb6d8b42a55278b4ba1/html5/thumbnails/7.jpg)
Excellence in Software Engineering 7
• Зависимость от графического интерфейса• Уменьшение стабильность работы сценария• Уменьшение скорости выполнения
сценария• Необходимость поддержки скрипта в
готовности• Трудности с получением результатов
работы
В чем подвох?
![Page 8: Image-based automation](https://reader035.vdocuments.net/reader035/viewer/2022081603/557f7fb6d8b42a55278b4ba1/html5/thumbnails/8.jpg)
Excellence in Software Engineering 8
• Нет доступа к свойствам элементов программы
• Свойства есть, но они постоянно меняются• Приложение больше не обновляют• У нас недостаточно времени• У нас недостаточно опыта• Мы решили упростить себе жизнь
В каких случаях это выгодно?
![Page 9: Image-based automation](https://reader035.vdocuments.net/reader035/viewer/2022081603/557f7fb6d8b42a55278b4ba1/html5/thumbnails/9.jpg)
Excellence in Software Engineering 9
Чем можно воспользоваться?
![Page 10: Image-based automation](https://reader035.vdocuments.net/reader035/viewer/2022081603/557f7fb6d8b42a55278b4ba1/html5/thumbnails/10.jpg)
Excellence in Software Engineering
• Создан как инструмент тестирования• Сильный модуль распознавания текста• Высокая стабильность работы• Хорошая система отчетов• Платный• Работает только с удаленной машиной (VNC)
EggPlant
![Page 11: Image-based automation](https://reader035.vdocuments.net/reader035/viewer/2022081603/557f7fb6d8b42a55278b4ba1/html5/thumbnails/11.jpg)
Excellence in Software Engineering
EggPlant: выполнение сценария
![Page 12: Image-based automation](https://reader035.vdocuments.net/reader035/viewer/2022081603/557f7fb6d8b42a55278b4ba1/html5/thumbnails/12.jpg)
Excellence in Software Engineering 12
Sikuli
• Инструмент бесплатный• Прост в развертывании и использовании• Не требует дополнительной машины• Есть API для Java• Возможность использовать Jython• Слабый модуль распознавания текста• Отсутствие подробного отчета
![Page 13: Image-based automation](https://reader035.vdocuments.net/reader035/viewer/2022081603/557f7fb6d8b42a55278b4ba1/html5/thumbnails/13.jpg)
Excellence in Software Engineering
Sikuli: IDE
![Page 14: Image-based automation](https://reader035.vdocuments.net/reader035/viewer/2022081603/557f7fb6d8b42a55278b4ba1/html5/thumbnails/14.jpg)
Excellence in Software Engineering 14
• Используем красивые имена изображений
– click(“1330030896672.png”)– click(“button_close.png”)
Практические рекомендации
![Page 15: Image-based automation](https://reader035.vdocuments.net/reader035/viewer/2022081603/557f7fb6d8b42a55278b4ba1/html5/thumbnails/15.jpg)
Excellence in Software Engineering 15
• Используем изображения многократно
Практические рекомендации
“MainPage_OK” “Popup_OK” “Button_OK”
“OK”
![Page 16: Image-based automation](https://reader035.vdocuments.net/reader035/viewer/2022081603/557f7fb6d8b42a55278b4ba1/html5/thumbnails/16.jpg)
Excellence in Software Engineering 16
• Доверяем проверенным элементам
Практические рекомендации
digitsLabel = find(images/config_digits.png)
digits = digitsLabel.targetOffset(300, 0)
![Page 17: Image-based automation](https://reader035.vdocuments.net/reader035/viewer/2022081603/557f7fb6d8b42a55278b4ba1/html5/thumbnails/17.jpg)
Excellence in Software Engineering 17
• Сократим распознавание текста
Практические рекомендации
![Page 18: Image-based automation](https://reader035.vdocuments.net/reader035/viewer/2022081603/557f7fb6d8b42a55278b4ba1/html5/thumbnails/18.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081603/557f7fb6d8b42a55278b4ba1/html5/thumbnails/19.jpg)
Excellence in Software Engineering 19
• Используем взаимодействие с пользователем
Практические рекомендации
![Page 20: Image-based automation](https://reader035.vdocuments.net/reader035/viewer/2022081603/557f7fb6d8b42a55278b4ba1/html5/thumbnails/20.jpg)
Excellence in Software Engineering 20
• Используем вызов через API
Java + Sikuli
Практические рекомендации
![Page 21: Image-based automation](https://reader035.vdocuments.net/reader035/viewer/2022081603/557f7fb6d8b42a55278b4ba1/html5/thumbnails/21.jpg)
Excellence in Software Engineering 21
• Используйте больше возможностей инструмента– Импорт jar– Единое хранилище изображений– Поддержка Jython– Встроенный режим unit-тестирования– Подсветка найденных элементов
Практические рекомендации
![Page 22: Image-based automation](https://reader035.vdocuments.net/reader035/viewer/2022081603/557f7fb6d8b42a55278b4ba1/html5/thumbnails/22.jpg)
Excellence in Software Engineering 22
• Настройте инструмент для себя– Settings.MoveMouseDelay– Settings.MinSimilarity– FindFailedResponse
Практические рекомендации
![Page 23: Image-based automation](https://reader035.vdocuments.net/reader035/viewer/2022081603/557f7fb6d8b42a55278b4ba1/html5/thumbnails/23.jpg)
Excellence in Software Engineering 23
?
Вопросы
![Page 24: Image-based automation](https://reader035.vdocuments.net/reader035/viewer/2022081603/557f7fb6d8b42a55278b4ba1/html5/thumbnails/24.jpg)
Excellence in Software Engineering
О докладчике
Виталий Шульга
Software Test Automation Engineerв EPAM SystemsМинск, Беларусь
http://www.linkedin.com/in/[email protected]