2. О докладчике
Виталий Шульга
Software Test Automation Engineer
в EPAM Systems
Минск, Беларусь
www.linkedin.com/in/vitalliuss
vitalliuss@gmail.com
3. План доклада
1. Case study
2. Принцип действия image-based технологии
3. Наиболее популярные инструменты
4. Существующие image-based API
5. Трудности интеграции с .NET
6. Анализ задачи и реализация алгоритма поиска
7. Оптимизация поискового алгоритма
8. Симуляция устройств ввода
9. Анализ полученного решения
4. Как все начиналось
• .NET приложение на WPF
• MS UI Automation + NUnit
• > 1200 тестов
+
• + Приложение в Citrix для 30 тестов
9. Трудность интеграции с .NET
• Необходимость «посредников»
• Большое время поиска
• Громоздкое и сложное решение
10. Анализ задачи и реализация алгоритма поиска
1. Получить массив пикселов экрана
2. Сравнить часть экрана с искомым
изображением
3. Выполнять сдвиг вправо и вниз пока
не будет найдено совпадение
12. А как же скорость работы?
• Пусть картинка будет иметь размер
80х120 пикселов
• Посчитаем сколько операций нужно
произвести, чтобы найти еѐ на экране
размером 1280х1024
• 1280 х 1024 х 80 х 120 = 12,5 млрд
операций сравнения
• Это несколько минут для поиска
картинки на экране
13. Оптимизация поискового алгоритма
1. Найдем 5 пикселов картинки на экране
2. Произведем обычный попиксельный поиск
3. CLR -> unsafe code
• 1280 х 1024 х 5 = 6,5 млн
операций сравнения
• Это ~ 0.2 секунды на
изображение
14. Время поиска картинки 40х40 пикселов
2
1.8
1.6
1.4 OpenCV из .NET
1.2
1 Sikuli из Java
0.8
0.6 Наше решение
0.4
0.2
0
Среднее время поиска, секунды
15. Эмуляция устройств ввода
• Нам понадобятся следующие
возможности:
– Мышь
– Клавиатура
• Реализация: WinAPI
16. Полученное решение
• Быстрый поиск изображения
• Действия мыши
• Нажатия клавиш
• Ввод текста
17. Спасибо за внимание!
Краткий план доклада
1. Case study
2. Принцип действия image-based технологии
3. Наиболее популярные инструменты
4. Существующие image-based API
5. Трудности интеграции с .NET
6. Анализ задачи и реализация алгоритма поиска
7. Оптимизация поискового алгоритма
8. Эмуляция устройств ввода
9. Анализ полученного решения
Editor's Notes
Linkedin + epam.com mail
remove
Аргументация + сравнение
Убрать
Консультация .net
Join 8-9
¾ CLR
¾
+code
Сколько времени понадобилось на имплементацию?Сколько уже ранаются эти тесты??Время, число 500ранов5 минутСтабильность -,????Багов-нашли?
Итого-в простых случаях – стандартные инструментыЕсть image based tools где простые вещи не работаютВажна интеграция, скорость, надежностьИногда проще сделать свое решениеСравнивать картиники проще чем кажется