Script
Узел, выполняющий сценарии, написанные на JavaScript. Script будет полезен для решения разных задач:
Реализация сложных тестов над результатами одного или нескольких других узлов
Генерация тестовых данных
Преобразование переменных других узлов
Выполнение операций для приведения тестируемой системы в заданное состояние (set_up, tear_down)
Отладка и доступ к состоянию всех узлов проекта
Редактирование
Окно редактирования узла разделено на две области - окно редактирования кода и окно консольного вывода. Для скрытия консоли нажмите на кнопку
.
Над окном консольного вывода расположена панель инструментов для управления поведением консоли:
/
- переключение между режимами сохранения результатов выполнения в консоли.
- очистка консоли перед каждым запуском скрипта,
- накопление результатов запуска.
- автоматическая прокрутка к последней строке вывода консоли
- очистить текущий вывод консоли
Запуск
Скрипт начинает выполнение при нажатии на кнопку RUN. Узел заканчивает свое выполнение после исполнения всех строки кода и после завершения всех асинхронных задач (например, setTimeout). Скрипт считается выполненным успешно при выполнении следующих условий:
В коде не выявлено синтаксических ошибок
При выполнении все выброшенные исключения обработаны
Выполнение заняло не более 30 секунд (по истечении этого времени скрипт будет прерван)
Вызов скрипта обернут в функцию, поэтому для того, чтобы прервать выполнение без ошибок воспользуйтесь инструкцией возврата: return;
Чтобы прервать выполнения скрипта с ошибкой, воспользуйтесь выбросом любого исключения: throw new Error('Something went wrong');
Библиотеки
Запуск осуществляется в виртуальном окружении node.js. Пользователю доступно некоторые модули из node.js, а также все встроенные возможности JavaScript, поддерживаемые движком V8.
Доступные модули из node.js
fs - работа с файловой системой
Доступные сторонние модули
lodash - библиотека со множеством утилитарных алгоритмов
moment.js - библиотека для работы с датами
CryptoJS - библиотека реализующая множество криптографических алгоритмов
random-js - библиотека для генерации математически корректных случайных чисел
faker.js - библиотека для генерации случайных данных для свойств различных сущностей
chai.js - библиотека предоставляющая комфортные интерфейсы для проверки логических утверждений.
request - библиотека предоставляющая простой в использовании HTTP-клиент.
Контекст выполнения
Ниже приведены объекты и функции глобальной области видимости скрипта.
Доступ к сторонним модулям
Все описанные модули автоматически подключаются к контексту выполнения и доступны в глобальной области видимости.
lodash

moment.js

CryptoJS

random-js

faker.js

chai.js

request

console.*
Методы для вывода данных в консоль: log, info, warn, error, debug, exception
Сигнатура методов совпадает с их стандартными версиями. Каждый тип события в консоли окрашивается в свой цвет. Каждая строка сопровождается указателем на строку и столбец, из которой произошел вызов функции вывода. События типа exception отображаются вместе со стеком вызовов внутри скрипта.

Навигация по проекту
В глобальной области видимости доступен объект для доступа к проекту и текущему Script узлу - tm.
tm
currentNode: nodeAPI- интерфейс текущего Script узлаproject: nodeAPI- интерфейс узла проектаenv: envAPI- интерфейс для доступа к переменным окружения проектаcookies: cookie[]- список установленных в проекте cookies
nodeAPI
parent: nodeAPI- возвращает интерфейс для родительского узла. Для узла проекта значение будет nullname: string- имя данного узлаtype: string- тип данного узла.path: string- путь до данного узла, относительно корня проекта.children: nodeAPI[]- список интерфейсов дочерних узловfindChild(name: string): nodeAPI- поиск дочернего узла по его `name`. Если узел с таким именем не найдет, вернется nullnext: nodeAPI- интерфейс следующего по порядку узла в группе. Если текущий узел является последним, то вернется nullprev: nodeAPI- интерфейс предыдущего по порядку узла в группе. Если текущий узел является первым в группе, то вернется nullnextNodes: nodeAPI[]- список всех узлов в группе следующих за текущим. Если текущий узел является последним, то вернется пустой списокprevNodes: nodeAPI[]- список всех узлов в группе предшествующих текущему. Если текущий узел является первым по порядку, то вернется пустой списокvars: object- объект, содержащий все статические переменные данного узлаdynamicVars: object- объект, содержащий все динамические переменные данного узла.setDynamicVar(name: string, value: any): void- метод устанавливает динамическую переменную `name` cо значением `value` для данного узла.
requestNodeAPI
Узел типа RequestStep обладает расширенным интерфейсом.
request: object- объект содержит настройки запроса узла.response: object- объект содержит результаты последнего выполнения запроса
envAPI
active: string- имя активного окруженияvars: object- объект содержит переменные текущего окружения
Примеры
Рекурсивный обход потомков узла
Поиск узлов по имени
Файловое представление
Last updated
Was this helpful?