Способы расширения зоны
влияния вашей системы
автотестов.
Подойницын Даниил
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
Способы расширения зоны влияния вашей системы автотестов