Общие сведения

ВступлениеПодготовка к запускуАрхитектура платформы TestoПорядок запускаПолитика запуска тестов

Обучающие материалы по Testo для Hyper-V

Часть 1. Самый первый тестЧасть 2. Устанавливаем Ubuntu ServerЧасть 3. Доступ в Интернет из виртуальной машиныЧасть 4. Гостевые дополненияЧасть 5. ПараметрыЧасть 6. КешированиеЧасть 7. Связываем две машины по сетиЧасть 8. ФлешкиЧасть 9. МакросыЧасть 10. Конструкция ifЧасть 11. No snapshotsЧасть 12. Управление мышкойЧасть 13. Импортирование жёстких дисковЧасть 14. JS-селекторыЧасть 15. Циклы

Обучающие материалы по Testo для QEMU

Часть 1. Самый первый тестЧасть 2. Устанавливаем Ubuntu ServerЧасть 3. Гостевые дополненияЧасть 4. ПараметрыЧасть 5. КешированиеЧасть 6. Доступ в Интернет из виртуальной машиныЧасть 7. Связываем две машины по сетиЧасть 8. ФлешкиЧасть 9. МакросыЧасть 10. Конструкция ifЧасть 11. No snapshotsЧасть 12. Управление мышкойЧасть 13. Импортирование жёстких дисковЧасть 14. JS-селекторыЧасть 15. ЦиклыЧасть 16. Макросы с объявлениями

Спецификация языка

Общая структура скриптовых файловБазовые конструкции языкаOбъявление виртуальной машиныОбъявление виртуального флеш-накопителяОбъявление виртуальной сетиПараметрыОбъявление тестовМакросыДействия с виртуальными машинамиДействия с мышкойПоиск изображений на экранеДействия с виртуальными флеш-накопителямиУсловияЦиклыСписок идентификаторов клавиш

Запросы на языке Javascript

Общая концепция построения JS-селекторовВстроенные глобальные функции JavascriptИсключенияКласс TextTensorКласс ImgTensorКласс Point

Поиск изображений на экране

Помимо поиска надписей, язык Testo-lang поддерживает также возможность поиска изображений на экране на основе шаблона. Шаблон представляет из себя картинку в формате .png, которая содержит искомое изображение (см. пример ниже).

Поиск изображений может применяться в действиях wait img, mouse click img, а также при проверке состояния экрана с помощью if(check img).

Подготовка шаблона

В отличие от поиска текста на экране, поиск изображений требует небольшой предварительной подготовки - создания шаблона искомого изображения.

Подготовка шаблона обычно выполняется довольно просто:

  1. Необходимо сделать скриншот экрана виртуальной машины с изображением, шаблон которого Вы хотите подготовить;
  2. Затем необходимо открыть скриншот в любом графическом редакторе и вырезать участок изображения, которое вы хотите использовать как шаблон;
  3. Обрезанное изображение нужно сохранить на диск в виде png-картинки.

Конечно, можно взять шаблон с изображением и из другого места (например, скачать иконку из Интернета), но точность распознавания может оказаться ниже той, которую можно получить, подготовив шаблон обычным способом.

Теперь, когда шаблон подготовлен, можно указывать путь к нему в действиях wait img, mouse click img и в проверках if(check img).

Примеры

Рассмотрим в качестве примера следующую ситуацию. Дан следующий экран:

На этом экране в ходе проведения тестов необходимо убедиться в наличии трех компонентов:

  1. Иконки файлового менеджера в панели быстрого запуска слева;
  2. Папки Some folder;
  3. Папки Another folder.

Начнём с иконки файлового менеджера. Откроем скриншот экрана и вырежем иконку файлового менеджера:

Сохраним полученный шаблон в файл /opt/icons/file_manager.png.

Теперь в ходе теста достаточно вызвать действие

wait img "/opt/icons/file_manager.png"

и проверка наличие иконки файлового менеджера на этом будет закончена.

Теперь займемся детектом папок. Здесь важно правильно подготовить шаблоны для поиска. Если сделать шаблон для поиска слишком маленьким:

То вместо поиска конкретных папок будет выполнен поиск вообще всех папок (с такой иконкой):

Для того, чтобы искать именно нужные папки, необходимо расширить шаблоны и включить в них название папок:

Сохраним эти шаблоны в файлы /opt/icons/some_folder.png и /opt/icons/another_folder.png соответственно.

Результаты поиска теперь будут другими

wait img "/opt/icons/some_folder.png"
wait img "/opt/icons/another_folder.png"