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

ВступлениеПодготовка к запускуАрхитектура платформы 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 можно рассматривать как последовательность объявлений. Помимо объявлений, на верхнем уровне можно использовать только директиву include.

Объявления делятся на:

  • machine - объявление виртуальной машины.
  • flash - объявление виртуального флеш-накопителя.
  • network - объявление виртуальной сети.
  • param - объявление параметра.
  • test - объявление теста.
  • macro - объявление макроса.
  • Вызовы макросов, которые содержат объявления (см. здесь)

Все эти объявления могут быть расположены в любом порядке и могут быть распределены по нескольким файлам. Однако, виртуальные машины, флеш-накопители, виртуальные сети, параметры и макросы должны быть объявлены до того, как к ним произойдет обращение. Чтобы включить в скриптовый файл все объявления из другого файла, можно использовать директиву include. Директива include может располагаться только между другими объявлениями, ее запрещено использовать внутри объявлений.

Основная идея написания тестов выглядит следующим образом. В объявлениях machine, flash и network разработчик перечисляет, какие ресурсы ему понадобятся в тестовом сценарии, описывая их атрибуты. С помощью директивы param разработчик перечисляет глобальные константы, которые будут использоваться в дальнейшем в тексте тестовых сценариев. Объявив нужные ресурсы и константы, разработчик может переходить к описанию тестов.

Тесты состоят из набора команд. Каждая команда состоит из заголовка (имени виртуальной машины или флешки) и тела (действие или набор действий, применяемых к этой машине/флешке). Если одно из действий внутри тела команды не будет выполнено успешно, то тест считается ошибочным и управление переходит к следующему запланированному тесту (если не указан аргумент командной строки --stop_on_fail).

Условия и циклы с точки зрения Testo-lang тоже рассматриваются как действия и могут использоваться внутри тела команды.

Наиболее часто повторяемые действия и команды могут быть оформлены в виде макросов с помощью директивы macro. Макросы могут принимать параметры.