Script

Узел, выполняющий сценарии, написанные на JavaScript. Script будет полезен для решения разных задач:

  • Реализация сложных тестов над результатами одного или нескольких других узлов

  • Генерация тестовых данных

  • Преобразование переменных других узлов

  • Выполнение операций для приведения тестируемой системы в заданное состояние (set_up, tear_down)

  • Отладка и доступ к состоянию всех узлов проекта

Редактирование

Окно редактирования узла разделено на две области - окно редактирования кода и окно консольного вывода. Для скрытия консоли нажмите на кнопку .

Над окном консольного вывода расположена панель инструментов для управления поведением консоли:

  • / - переключение между режимами сохранения результатов выполнения в консоли. - очистка консоли перед каждым запуском скрипта, - накопление результатов запуска.

  • - автоматическая прокрутка к последней строке вывода консоли

  • - очистить текущий вывод консоли

Запуск

Скрипт начинает выполнение при нажатии на кнопку RUN. Узел заканчивает свое выполнение после исполнения всех строки кода и после завершения всех асинхронных задач (например, setTimeout). Скрипт считается выполненным успешно при выполнении следующих условий:

  • В коде не выявлено синтаксических ошибок

  • При выполнении все выброшенные исключения обработаны

  • Выполнение заняло не более 30 секунд (по истечении этого времени скрипт будет прерван)

Библиотеки

Запуск осуществляется в виртуальном окружении node.js. Пользователю доступно некоторые модули из node.js, а также все встроенные возможности JavaScript, поддерживаемые движком V8.

Осуществляется поддержка стандарта ECMAScript 6

Доступные модули из 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 - возвращает интерфейс для родительского узла. Для узла проекта значение будет null

  • name: string - имя данного узла

  • type: string - тип данного узла.

  • path: string - путь до данного узла, относительно корня проекта.

  • children: nodeAPI[] - список интерфейсов дочерних узлов

  • findChild(name: string): nodeAPI - поиск дочернего узла по его `name`. Если узел с таким именем не найдет, вернется null

  • next: nodeAPI - интерфейс следующего по порядку узла в группе. Если текущий узел является последним, то вернется null

  • prev: nodeAPI - интерфейс предыдущего по порядку узла в группе. Если текущий узел является первым в группе, то вернется null

  • nextNodes: 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?