Способы расширения зоны влияния вашей системы автотестов. Подойницын Даниил Ventra
Houston, we have a problem Другие Виды GUI Дано: Хороший коробочный инструмент для GUI Нужно: Встроить в его тесты такие проверки, которые он сам, из коробки, сделать не может.
Задача 1. Без GUI • Получить данные из базы • Получить данные из веб сервисов • Совершить действия другой программой.
Быстрый вариант Кто-нибудь наверняка предложит по-быстрому написать маленькую программу, которая делает ту самую проверку/действие.
• 1. Берем значение с GUI $message
• 1. Берем значение с GUI • 2. Подставляем как параметр в запускаемую строку $message
• 1. Берем значение с GUI • 2. Подставляем как параметр в запускаемую строку • 3. Исполняем Main test app • get $message from GUI cmd • C:\app.exe –P1=$message One action app • Check DB by $message
• 1. Берем значение с GUI • 2. Подставляем как параметр в запускаемую строку • 3. Исполняем • 4. Слушаем exit code (0, -1, -2 и тд)
Маленькие C# программы. • Кол-во .exe выросло с 3 до 40 за 3 месяца. • Поддерживать каждую нужно отдельно. • Делать это может только автор. • Лучше не делать так.
Приемлемый вариант • Берем хороший инструмент.
Приемлемый вариант • Берем хороший инструмент. • По той же схеме, данные отправляем через cmd. Во внешнем проекте строим сложную логику их обработки.
Приемлемый вариант • Берем хороший инструмент. • По той же схеме, данные отправляем через cmd. Во внешнем проекте строим сложную логику их обработки. • И слушаем exit code.
tips and tricks • Если уперлись в 255 символов cmd — сокращайте имена параметров до P1, P2... • Аккуратней с кавычками, знаками равно, и другими спец. символами
Двустороннее общение. • Исходящие данные в виде cmd или записи в txt файл. Main Test app input.txt Ext app cmd params
Двустороннее общение. • Исходящие данные в виде cmd или записи в txt файл. • Вывод из консоли в txt файл. Считываем нужное. Main Test app input.txt or cmd Ext app output.txt
tips and tricks • Std out не подходит. • Если txt файл заблокирован — скопируйте его. • Можно заложить разветвленную логику.
Задача 2. На GUI внешней системы
Автокликер по координатам.
Плохой вариант.
Автокликер 2.0!
Последняя надежда для нестандартных GUI. * * Фрагмент модифицированного GUI Oracle Forms 6
tips and tricks • Sikuli любит капризничать в связи с точкой запуска. • Хорошо различает форму, но не цвет.
Будущее… Компьютерное зрение Ускорение видеокартой OCR* *Optical character recognition – Оптическое распознавание символов, например известный FineReader
...Уже здесь.
Добавить нужный функционал самому. • - Требует много времени. • - Не факт что получится. • + Даст много опыта • + Интересно.
Сменить инструмент • Крайняя мера • Новые тесты, не повторять работающие.
Итоги. • Плохие варианты: -просто автокликер. -самописные проги на любой чих. • Хорошие варианты: +Интегрировать с хорошими сторонними приложениями +Заглянуть в исходники главного инструмента +Сменить инструмент
Вопросы? • http ://d-podoynitsin.moikrug.ru / • danila@r0.ru