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

ВступлениеПодготовка к запускуАрхитектура платформы 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

Действия с виртуальными машинами

start

Запускает виртуальную машину. На момент выполнения действия виртуальная машина должна быть выключена. Попытка запустить уже запущенную виртуальную машину приведет к ошибке.

start

Аргументы: нет

stop

Останавливает виртуальную машину, имитируя обрыв электропитания. На момент выполнения действия виртуальная машина должна быть запущена. Попытка остановить уже остановленную виртуальную машину приведет к ошибке.

stop

Аргументы: нет

shutdown

Посылает сигнал ACPI в виртуальную машину, запуская "мягкую" остановку виртуальной машины. Действие дожидается окончания мягкой остановки виртуальной машины. Длительность ожидания зависит от опционального параметра timeout_time_spec. Для работы этого действия ОС в виртуальной машине должна поддерживать обработку сигнала ACPI. На момент выполнения действия виртуальная машина должна быть запущена. Попытка остановить уже остановленную виртуальную машину приведет к ошибке.

shutdown [timeout timeout_time_spec]

Аргументы:

  • timeout_time_spec - Тип: спецификатор времени или строка. Максимальная длительность ожидания остановки виртуальной машины. Значение по умолчанию - одна минута. В случае, если в качестве аргумента указывается строка, значение выражения внутри строки должно быть приводимым к спецификатору времени. Внутри строки можно использовать обращение к параметрам

Примеры:

  shutdown

  shutdown timeout 10m

  shutdown timeout "5m"

  #сработает в случае, если значение параметра shutdown_timeout можно преобразовать к спецификатору времени
  shutdown timeout "${shutdown_timeout}"

press

Посылает в ВМ сигнал к нажатию клавиш клавиатуры, указанных в key_spec. При необходимости действие press позволяет передавать сразу последовательность нажатий клавиш. В этом случае нажатия клавиш должны разделяться запятой. С помощью спецификатора interval_time_spec можно регулировать временной интервал между нажатиями клавиш. Виртуальная машина должна быть запущена.

press <key_spec1>[,key_spec2][,key_spec3]... [interval interval_time_spec]

Аргументы:

  • key_spec - Сочетание клавиш, которое необходимо нажать.
  • interval_time_spec - Тип: спецификатор времени или строка. Временной интервал между нажатиями клавиш в пределах одного действия press. Значение по умолчанию: 30ms. Значение по умолчанию можно поменять с помощью служебного параметра TESTO_PRESS_DEFAULT_INTERVAL. Подробности см. здесь.

Сочетание клавиш

Сочетание клавиш представляет собой особую языковую конструкцию, которая имеет следующий формат:

<key_id1>[+key_id2][+key_id3]...[*number]

key_id представляет собой идентификатор с названием клавиши. Полный список идентификаторов клавиш представлен здесь. Идентификатор с названием клавиши нечувствителен к регистру, поэтому идентификатор enter эквивалентен Enter и ENTER

Сочетание клавиш состоит из двух составляющих: перечисление одновременно нажимаемых клавиш и спецификатор количества повторений. Секция одновременно перечисляемых клавиш должна состоять из key_id хотя бы одной клавиши. Если требуется одновременно нажать несколько клавиш, то для их перечисления используется знак +. Спецификатор количества повторений указывает, сколько раз необходимо нажать клавиши, указанные в первой секции.

Спецификатор количества повторений (number) может быть как положительным целым числом, так и строкой. В случае, когда используется строка,значение выражения внутри строки должно быть приводимым к положительному целому числу. Внутри строки можно использовать обращение к параметрам.

Несколько примеров:

  • Down - единичное нажатие клавиши "стрелка Вниз"
  • LEFTCTRL + alt + Delete - единичное нажатие сочетания клавиш Ctrl Alt Delete
  • LEFTCTRL + alt + Delete * 1 - эквивалентно предыдущему
  • Backspace * "6" - нажать клавишу Backspace 6 раз
  • leftalt + F2 * "${number_num}" - Нажать одновременно клавиши "Left alt" и F2 столько раз, сколько указано в number_num. Сработает только в том случае если значение параметра number_num - положительное целое число.

Примеры использования действия press

  #6 раз нажать клавишу "Вниз", затем нажать "Enter"
  press Down*6, Enter

  # один раз нажать сочетание Ctrl Alt Delete, затем два раза нажать клавишу
  #"стрелка вниз", затем трижды - Enter
  press LeftCTRL + LEFTALT + Delete, Down*2, Enter*3

hold

Посылает в ВМ сигнал к зажиманию и удерживанию клавиш клавиатуры, указанных в key_spec. Клавиши будут зажаты до тех пор, пока не будут явно отпущены с помощью действия release Виртуальная машина должна быть запущена.

hold <key_spec>

Аргументы:

  • key_spec - Сочетание клавиш, которое необходимо нажать.

Примечания

Действие hold имеет ряд ограничений:

  1. Нельзя зажимать уже зажатые клавиши;
  2. Нелья завершать тест с зажатыми клавишами. Перед окончанием теста обязательно необходимо выполнить действие release;
  3. Зажатые клавиши нельзя использовать в действии press;
  4. Зажатые клавиши не могут участвовать при наборе текста в действии type;
  5. В сочетании клавиш key_spec запрещено указывать количество повторений. Клавиши всегда зажимаются один раз.

release

Посылает в ВМ сигнал к отпусканию клавиш. Клавиши предварительно должны быть зажаты с помощью действия hold. С помощью release можно либо отпустить все зажатые клавиши, либо только подмножество зажатых клавиш. Виртуальная машина должна быть запущена.

release [key_spec]

Аргументы:

  • key_spec - Сочетание клавиш, которое необходимо отпустить.

Примечания

Действие release можно использовать без аргументов. В этом случае будут отпущены все зажатые клавиши. Если же нужно отпустить только конкретные клавиши, то необходимо использовать агумент key_spec.

Действие release имеет следующие ограничения:

  1. Нельзя отпускать незажатые клавиши;
  2. Нельзя вызывать release без аргументов если ни одна клавиша не зажата;
  3. В сочетании клавиш key_spec запрещено указывать количество повторений. Клавиши всегда отпускаются один раз.

Примеры

#Зажать клавиши левый ctrl и левый alt
hold LeftCtrl + LeftAlt

press Delete

#Отпустить только левый ctrl
release LeftCtrl

#Отпустить все зажатые клавиши
release

type

Набрать с помощью клавиатуры виртуальной машины текст, указанный в text. Витруальная машина должна быть включена. Если в строке присутствуют переносы строк, они будут преобразованы в нажатие клавиши Enter. Если в строке будут присутствовать знаки табуляции, то они будут преобразованы в нажатие клавиши Tab.

type <text> [interval interval_time_spec]

Аргументы:

  • text - Тип: строка. Строка, которую необходимо ввести с помощью виртуальной клавиатуры. Внутри строки можно использовать обращение к параметрам.
  • interval_time_spec - Тип: спецификатор времени или строка. Задержка между нажатиями на клавиши. Значение по умолчанию - 30 миллисекунд. Значение по умолчанию можно поменять с помощью служебного параметра TESTO_TYPE_DEFAULT_INTERVAL. Подробности см. здесь. В случае, если в качестве аргумента указывается строка, значение выражения внутри строки должно быть приводимым к спецификатору времени. Внутри строки можно использовать обращение к параметрам

Примеры:

type "Hello world"

type "Hello ${World}"

type """Hello ${World}
    Some multiline
    string ${World} another multiline
string
"""

type "Hello world" interval 30ms

type "Hello world" interval "1s"

#сработает в случае, если значение параметра type_interval можно преобразовать к спецификатору времени
type "Hello world" interval "${type_interval}"

mouse

Действия, связанные с мышкой, подробно разбираются здесь.

sleep

Выполнить безусловное ожидание в течение времени, указанного в timeout_time_spec.

sleep <timeout_time_spec>

Аргументы

  • timeout_time_spec - Тип: спецификатор времени или строка. Период времени, в течение которого требуется выполнить ожидание. В случае, если в качестве аргумента указывается строка, значение выражения внутри строки должно быть приводимым к спецификатору времени. Внутри строки можно использовать обращение к параметрам

Примеры:

  sleep 10s

  # сработает в случае, если значение параметра sleep_timeout можно преобразовать к спецификатору времени
  sleep "${sleep_timeout}"

wait

Дождаться появления на экране события, указанного в select_expr. Длительность ожидания зависит от параметра timeout_time_spec. Если в течении указанного периода времени нужное выражение не обнаруживается, генерируется ошибка. С помощью спецификатора interval_time_spec можно регулировать частоту проверки состояния экрана. Для работы действия виртуальная машина должна быть запущена.

wait <select_expr> [timeout timeout_time_spec] [interval interval_time_spec]

Аргументы:

  • select_expr - Выражение, которое необходимо дождаться. Необязательный атрибут.
  • timeout_time_spec - Тип: спецификатор времени или строка. Максимальная длительность ожидания выражения. Значение по умолчанию - одна минута. Значение по умолчанию можно поменять с помощью служебного параметра TESTO_WAIT_DEFAULT_TIMEOUT. Подробности см. здесь. В случае, если в качестве аргумента указывается строка, значение выражения внутри строки должно быть приводимым к спецификатору времени. Внутри строки можно использовать обращение к параметрам
  • interval_time_spec - Тип: спецификатор времени или строка. Время между проверками состояния экрана. Значение по умолчанию - одна секунда. Значение по умолчанию можно поменять с помощью служебного параметра TESTO_WAIT_DEFAULT_INTERVAL. Подробности см. здесь. В случае, если в качестве аргумента указывается строка, значение выражения внутри строки должно быть приводимым к спецификатору времени. Внутри строки можно использовать обращение к параметрам

Формат выражений для действий wait и check

Действия wait и check предоставляют возможность осуществлять как базовые, так и сложные проверки, а также их комбинации. Всего существует три типа проверок:

  1. Проверка наличия строк на экране.
  2. Проверка наличия изображения на экране.
  3. Выполнение javascript-запроса.

Базовые проверки с помощью строк

Если требуется простая проверка наличия надписи на экране, то достаточно использовать действие wait в следующем формате

wait "Искомая строка"

Внутри строк можно использовать обращение к параметрам

wait "Искомая строка с параметром ${param}"

Надпись должна быть непрерывной, т.е. не допускаются переносы строк или большие интервалы между символами в надписи. Например, если искомая надпись состоит из трёх слов, но последнее слово отстоит слишком далеко от первых двух, то поиск такой надписи окажется неудачным.

Базовые проверки с помощью изображений

Если требуется определить наличие изображения на экране, то в действии wait необходимо указать путь до искомого изображения:

wait img "/path/to/img/to/be/searched"

Подробнее про поиск изображений на экране можно почитать здесь

Проверки с помощью javascript-запросов

Для более сложных проверок в действия wait и check можно передавать запросы, написанные на языке javascript. Javascript-запросы представляют собой код на языке Javascript, который обязательно должен возвращать значение true или false.

Если javascript вернул значение true, то действия wait и check считаются выполненными, и управление переходит к следующему действию. Если вернулось значение false, то действия wait и check продолжат свою работу до тех пор, пока не будет возвращено значение true или пока не закончится таймаут. Все остальные возвращаемые значения будут восприниматься как ошибка и приводить к остановке выполнения теста.

wait js "find_text('Hello world').match_color('blue', 'gray').size() == 1"

Пример выше позволяет проверить наличие на экране строки "Hello world", у которой цвет букв - синий, а цвет фона - серый. Такая строка может олицетворять, например, выделенный пункт меню.

Более подробно про построение запросов с помощью javascript можно почитать здесь.

Комбинация нескольких проверок в одном действии

Проверки можно комбинировать с помощью логических операторов && (И), || (ИЛИ) и ! (отрицание), формируя, таким образом, выражения select_expr. В выражениях также можно использовать скобки для вычисления вложенных выражений.

Примеры

Дождаться одновременного наличия на экране надписи "Hello world" и изображения, путь к которому содержит параметр IMG_DIR.

wait "Hello world" && img "${IMG_DIR}/my_icon.png"

Дождаться либо отсутствия на экране надписи "Hello world", либо наличия на экране надписи "Menu entry" с серым фоном и цветом букв, определенным в параметре foreground_colour. Частота проверок состояния экрана зависит от значения параметра wait_interval. Максимальное время ожидания - 10 минут.

#значение параметра wait_timeout должно быть правильным спецификатором времени
wait !"Hello world" || js """
    find_text("Menu entry")
        .match_color("${foreground_colour}", "gray")
        .size() == 1
""" timeout 10m interval "${wait_interval}"

Вызов макроса

Вызвать макрос macro_name. Макрос должен быть заранее объявлен и содержать действия (не команды), допустимые для виртуальных машин.

Формат вызовов макросов рассмотрен здесь

plug

Действие plug предназначено для подключения различных устройств к виртуальной машине. Ниже преведены доступные варианты этого действия.

plug flash

Это действие недоступно для Hyper-V

Подключить виртуальный флеш-накопитель к виртуальной машине.

plug flash <flash_name>

Аргументы:

  • flash_name - Тип: идентификатор или строка. Имя флеш-накопителя, который нужно подключить к виртуальной машине. Флеш-накопитель должен быть предварительно объявлен и не подключен в какую-либо виртуальную машину. В случае, если в качестве аргумента указывается строка, значение выражения внутри строки должно быть приводимым к идентификатору. Внутри строки можно использовать обращение к параметрам.

Примеры:

  plug flash my_flash

  plug flash "my_flash"

  # Сработает в случае, если значение параметра flash_name можно преобразовать к идентификатору
  # и только если флешка с получившимся именем объявлена ранее
  plug flash "${flash_name}"

На текущий момент нельзя подключать одновременно более одного флеш-накопителя в одну виртуальную машину.

Если тест не помечен атрибутом no_snapshots: true, то все подключенные в тесте флешки должны быть отключены перед окончанием теста. Попытка завершить тест с подключенными флеш-накопителями приведёт к ошибке.

Попытка подключить уже подключенную виртуальную флешку приведёт к ошибке.

plug nic

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

plug nic <nic_name>

Аргументы:

  • nic_name - Тип: идентификатор или строка. Имя сетевого адаптера, который необходимо подключить. Сетевой адаптер должен быть объявлен в конфигурации виртуальной машины. В случае, если в качестве аргумента указывается строка, значение выражения внутри строки должно быть приводимым к идентификатору. Внутри строки можно использовать обращение к параметрам
  plug nic internet_nic

  plug nic "internet_nic"

  # Сработает в случае, если значение параметра nic_name можно преобразовать к идентификатору
  # и только если сетевой адаптер с получившимся именем существует в виртуальной машине, к которой применяется действие
  plug nic "${nic_name}"

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

Попытка подключить уже подключенный сетевой адаптер приведёт к ошибке.

plug link

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

plug link <nic_name>

Аргументы:

  • nic_name - Тип: идентификатор или строка. Имя сетевого адаптера, к которому необходимо подключить кабель. В случае, если в качестве аргумента указывается строка, значение выражения внутри строки должно быть приводимым к идентификатору. Внутри строки можно использовать обращение к параметрам.

Попытка подключить уже подключенный кабель приведёт к ошибке.

plug dvd

Подключить ISO-образ диска к виртуальному DVD-приводу.

plug dvd <path_to_iso_file>

Аргументы:

  • path_to_iso_file - Тип: строка. Путь к ISO-образу. ISO-образ должен существовать. Внутри строки можно использовать обращение к параметрам.

Попытка подключить ISO-образ в уже занятый DVD-привод приведёт к ошибке.

plug hostdev usb

Это действие недоступно для Hyper-V

Подключить хостовое USB-устройство в виртуальную машину.

plug hostdev usb <usb_device_address>

Аргументы:

  • usb_device_address - Тип: строка. USB-адрес устройства на хосте в формате "Bus_num-Device_num", где Bus_num и Device_num - десятичные числа (например, "3-1"). Внутри строки можно использовать обращение к параметрам.

Попытка подключить уже подключенное USB-устройство приведет к ошибке.

Одно USB-устройство одновременно может быть подключено только к одной виртуальной машине.

Если тест не помечен атрибутом no_snapshots: true, то все подключенные в тесте USB-устройства должны быть отключены перед окончанием теста. Попытка завершить тест с подключенными USB-устройствами приведёт к ошибке.

Узнать USB-адрес хостового устройства можно, например, с помощью утилиты lsusb

ВАЖНО! Testo не создает снепшоты для подключенных USB-устройств и никаким иным образом не обеспечивает целостность подключенных USB-устройств! Testo не сможет отменить изменения с USB-устройствами, которые произошли в ходе проведения тестов! Используйте данную возможность на свой страх и риск!

unplug

Действие unplug предназначено для отключения различных устройств от виртуальной машины. Ниже приведены доступные варианты этого действия.

unplug flash

Это действие недоступно для Hyper-V

Отключить виртуальный флеш-накопитель от виртуальной машины.

unplug flash <flash_name>

Аргументы:

  • flash_name - Тип: идентификатор или строка. Имя флеш-накопителя, который нужно отключить. Флеш-накопитель должен быть предварительно объявлен. В случае, если в качестве аргумента указывается строка, значение выражения внутри строки должно быть приводимым к идентификатору. Внутри строки можно использовать обращение к параметрам.

На момент окончания теста необходимо отключить все подключённые флешки. Запрещается завершать тестовые сценарии с подключенными флеш-накопителями.

Попытка отключить уже отключенную виртуальную флешку приведёт к ошибке.

unplug nic

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

unplug nic <nic_name>

Аргументы:

  • nic_name - Тип: идентификатор или строка. Имя сетевого адаптера, который необходимо отключить. Сетевой адаптер должен быть объявлен в конфигурации виртуальной машины. В случае, если в качестве аргумента указывается строка, значение выражения внутри строки должно быть приводимым к идентификатору. Внутри строки можно использовать обращение к параметрам.

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

Попытка отключить уже отключенный сетевой адаптер приведет к ошибке.

unplug link

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

unplug link <nic_name>

Аргументы:

  • nic_name - Тип: идентификатор или строка. Имя сетевого адаптера, от которого необходимо отключить кабель. В случае, если в качестве аргумента указывается строка, значение выражения внутри строки должно быть приводимым к идентификатору. Внутри строки можно использовать обращение к параметрам.

Попытка отключить уже отключенный виртуальный кабель приведёт к ошибке.

unplug dvd

Отключить текущий ISO-образ от DVD-привода виртуальной машины.

unplug dvd

Аргументы: нет

Попытка отключить ISO-образ из "пустого" DVD-привода приведет к ошибке.

unplug hostdev usb

Это действие недоступно для Hyper-V

Отключить хостовое USB-устройство от виртуальной машины.

unplug hostdev usb <usb_device_address>

Аргументы:

  • usb_device_address - Тип: строка. USB-адрес подключенного устройства в формате "Bus_num-Device_num", где Bus_num и Device_num - десятичные числа (например, "3-1"). Внутри строки можно использовать обращение к параметрам.

Попытка отключить не подключенное USB-устройство приведет к ошибке.

exec

Выполняет в виртуальной машине скрипт, указанный в <script> с помощью интерпретатора, который указан в <interpreter>. Для работы необходимо наличие в виртуальной машине агента testo-guest-additions. Если интерпретатор выполнил скрипт с ошибкой (код возврата не равен 0), то действие exec завершает текущий тест с ошибкой. Поток вывода и поток ошибок скрипта перенаправляется на поток вывода интерпретатора testo, так что пользователь может наблюдать за ходом выполнения скрипта в режиме реального времени.

exec <interpreter> <script> [timeout timeout_time_spec]

Аргументы:

  • interpreter - Тип: идентификатор. Имя интерпретатора, который будет выполнять скрипт. В настоящее время поддерживается интерпретаторы bash, cmd, python, python2 и python3. Указанный интерпретатор должен быть установлен в гостевой системе и доступен для использования.
  • script - Тип: строка. Скрипт, который необходимо выполнить.
  • timeout_time_spec - Тип: спецификатор времени или строка. Максимальное время ожидания выполнения скрипта. Значение по умолчанию - 10 минут. Значение по умолчанию можно поменять с помощью служебного параметра TESTO_EXEC_DEFAULT_TIMEOUT. Подробности см. здесь. В случае, если в качестве аргумента указывается строка, значение выражения внутри строки должно быть приводимым к спецификатору времени. Внутри строки можно использовать обращение к параметрам.

Примеры:

  exec bash "echo Hello world!"

  exec cmd "echo Hello world!" timeout 5m

  #значение параметра python_timeout должно быть спецификатором времени
  exec python """
    print('Hello, world!')
  """ timeout "${python_timeout}"

copyto

Копирует файл или папку из хостовой машины на виртуальную машину. Для работы необходимо наличие в виртуальной машине агента testo-guest-additions.

copyto <from> <to> [nocheck] [timeout timeout_time_spec]

Аргументы:

  • from - Тип: строка. Путь к файлу или папке на хостовой машине, которую необходимо скопировать на виртуальную машину.
  • to - Тип: строка. Полный путь назначения на виртуальной машине.
  • nocheck - Тип: фиксированный идентификатор. Наличие этого спецификатора предписывает Testo отключить проверку наличия файла на хосте во время семантического анализа. Это позволяет запустить тест с действием copyto даже если на момент запуска теста копируемый файл на хосте ещё не существует. Предполагается, что тест появится на хосте к моменту реального выполнения действия copyto.
  • timeout_time_spec - Тип: спецификатор времени или строка. Максимальное время ожидания завершения копирования файлов. Значение по умолчанию - 10 минут. Значение по умолчанию можно поменять с помощью служебного параметра TESTO_COPY_DEFAULT_TIMEOUT. Подробности см. здесь. В случае, если в качестве аргумента указывается строка, значение выражения внутри строки должно быть приводимым к спецификатору времени. Внутри строки можно использовать обращение к параметрам.

В качестве пути назначения должен фигурировать полный путь (то есть с указанием конечного файла или папки). Например, если необходимо скопировать файл /home/user/some_file.txt на виртуальную машину, то нужно выполнить действие copyto /home/user/some_file.txt /path/on/vm/some_file.txt. Аналогично необходимо поступать с копированием папок.

Не допускается копирование ссылок.

При наличии спецификатора nocheck нужно помнить, что файлы, указанные в from, не участвуют в формировании кеша для теста. Так что при изменении таких файлов кеш теста с copyto не инвалидируется.

copyfrom

Копирует файл или папку из виртуальной машины на хост. Для работы необходимо наличие в виртуальной машине агента testo-guest-additions.

copyfrom <from> <to> [timeout timeout_time_spec]

Аргументы:

  • from - Тип: строка. Путь к файлу или папке на виртуальной машине, которую необходимо скопировать на хост.
  • to - Тип: строка. Полный путь назначения на хостовой машине.
  • timeout_time_spec - Тип: спецификатор времени или строка. Максимальное время ожидания завершения копирования файлов. Значение по умолчанию - 10 минут. Значение по умолчанию можно поменять с помощью служебного параметра TESTO_COPY_DEFAULT_TIMEOUT. Подробности см. здесь. В случае, если в качестве аргумента указывается строка, значение выражения внутри строки должно быть приводимым к спецификатору времени. Внутри строки можно использовать обращение к параметрам.

В качестве пути назначения должен фигурировать полный путь (то есть с указанием конечного файла или папки) (см. copyto).

Не допускается копирование ссылок.

screenshot

Сохранить скриншот с текущим состоянием экрана виртуальной машины на диск.

screenshot <destination_path>

Аргументы:

  • destination_path - Тип: строка. Путь к файлу куда необходимо сохранить скриншот.

Виртуальная машина должна быть запущена на момент вызова этого действия

Если файл уже существует, он будет перезаписан

abort

Аварийно завершает выполнение текущего теста и генерирует сообщение об ошибке. Тест считается неудачно завершившимся.

abort <error_message>

Аргументы:

  • error_message - Тип: строка. Сообщение об ошибке.

print

Выводит в stdout сообщение, после чего тест продолжает работу.

print <message>

Аргументы:

  • message - Тип: строка. Сообщение, которое необходимо вывести в stdout.