Skip to Content

Скрипты

Скриптом является набор действий, входящих внутрь элемента Test fragment. Всё его содержимое (за исключением тестовых данных и UDV) являются неотъемлемой частью скрипта на уровне Диспетчера.

Скрипты хранятся в Диспетчере как независимые сущности в рамках своего проекта. Можно добавлять новые скрипты в проект, обновлять, выгружать и удалять существующие. Уникальность скрипта определяется в том числе связкой “скрипт”-“проект”. Таким образом, если требуется использовать один и тот же скрипт в тестировании разных проектов, он должен быть явно добавлен в Хранилище каждого проекта отдельно (как и все другие артефакты).

Расписание скриптов

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

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

schedule.PNG

Создание расписания

Чтобы задать расписание, необходимо выбрать конкретный скрипт и определить расписание в области “Расписание скрипта”. Расписание может состоять из трёх видов элементов, которые могут повторяться и сочетаться в любом порядке. При наведении курсора на иконки элементов выдаются подсказки.

  1. Старт потоков (обязательно). Определяет какое количество потоков и с каким интервалом времени будут созданы для исполнения скрипта. Например, можно указать 10 потоков и настроить их все на одновременный старт (по умолчанию). Или распределить их старт во времени.

    ПолеНазначение
    всего потоковУказывается сколько виртуальных пользователей запустить
    Опционально можно настроить гибкую модель запуска пользователей (без нее все пользователи стартуют одновременно):
    старт поУказывается, по сколько пользователей из указанного количества в поле “всего потоков”, запускать с задержкой
    ддЗадержка в днях (по умолчанию = 0)
    чч:мм:ссЗадержка в чч:мм:сс
  2. Период ожидания (необязательно). Задает интервал времени (сумма указанных дней, часов, минут и секунд), в течение которого сохраняется уровень нагрузки, моделируемый с помощью всех предыдущих элементов. Например:

  • если требуется, чтобы 10 стартовавших потоков параллельно в течение 1,5 часа исполняли действия скрипта, необходимо задать период ожидания = 1 час 30 минут 00 секунд.

  • если требуется, чтобы 10 стартовавших потоков параллельно в течение 36 часов исполняли действия скрипта, необходимо задать период ожидания = 1 день + 12 часов 00 минут 00 секунд.

Соответственно, без предшествующих одного или нескольких элементов создания потоков, элемент «Период ожидания» можно использовать для отложенного запуска скрипта.

ПолеНазначение
дниУказывается, сколько удерживать нагрузку в днях (по умолчанию = 0 )
чч:мм:ссУказывается, сколько удерживать нагрузку в чч:мм:сс
  1. Остановка потоков (необязательно). Завершает работу потоков. Определяет какое количество потоков и с каким интервалом будут остановлены. Например, можно указать 10 потоков и настроить их все на моментальную остановку (по умолчанию). Или распределить завершение их работы во времени.

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

ПолеНазначение
всего потоковУказывается сколько виртуальных пользователей остановить
Опционально можно настроить гибкую модель запуска пользователей (без нее все пользователи стартуют одновременно):
стоп поУказывается, по сколько пользователей из указанного количества в поле “всего потоков”, останавливать с задержкой
ддЗадержка в днях (по умолчанию = 0)
чч:мм:ссЗадержка в чч:мм:сс

Копирование расписания

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

  1. Нажать на нужный скрипт в дереве навигации артефактов сценария

  2. Нажать “Копировать расписание”

  3. В открывшемся окно со списком скриптов отметить чекбоксами целевые скрипты, в которые будет скопировано расписание выбранного в данный момент скрипта

  4. Нажать “Копировать”

schedule_copy.PNG

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

Удаление расписания

Удалить можно как отдельные элементы расписания, так и полностью расписание целиком. Для удаление одного элемента необходимо нажать иконку действия удаления справа напротив элемента. Для очистки всего расписания (удаления всех элементов) - нажать кнопку “Очистить”.

Распределение скриптов по генераторам

Распределенное тестирование позволяет запустить тест на нескольких машинах одновременно, выполняя нагрузку и имитируя действия множества виртуальных пользователей целевой системы с разных точек доступа. Каждый скрипт должен быть назначен на исполнения хотя бы одному генератору. Генераторы должны быть предварительно добавлены в проект.

distributions_by_gens.PNG

Чтобы назначить скрипт на исполнение, пользователь должен выполнить следующие действия:

  1. Нажать на нужный скрипт в дереве навигации артефактов сценария

  2. С правой стороны экрана напротив названия скрипта выбрать вкладку “Генераторы”

  3. Нажать кнопку “Добавить генератор”

  4. В Открывшемся окне с выбором генераторов отметить чекбоксами один или несколько генераторов, на которых будет исполняться данный скрипт.

  5. Нажать “Добавить”

Если скрипт исполняется на двух и более генераторах, пользователю необходимо так распределить потоки скрипта между ними, чтобы их сумма была равна 100%. В поле “Потоков на генератор, %” указывается не аболютное количество потоков, а именно доля от их общего числа, выраженная в процентах.

Правило равенства 100% требуется соблюдать каждый раз при увеличении или уменьшении количества генераторов, исполняющих скрипт. Это можно сделать вручную или задать равномерное распределение автоматически нажатием кнопки “Распределить”.

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

Другие настройки скриптов

Так же, как и расписание, настройки одного скрипта могут быть скопированы в другие скрипты аналогичным образом нажатием кнопки “Копировать настройки”.

Количество повторов в минуту

Настройка определяет, как часто будет выполняться скрипт каждым своим потоком во время теста. Значение по умолчанию отсутствует, чтобы пользователь явно определил необходимую частоту. Минимальное значение 0.01 повторов в минуту (т.е. скрипт не может выполнятья реже, чем 1 раз в 100 минут).

Следует обратить внимание, что во время теста фактическая длительность выполнения скрипта может не позволить обеспечить заданную частоту. В таком случае, интенсивность выполнений будет ниже запланированного. Для достижения требуемой частоты можно снизить значение этой настройки, одновременно увеличив количество потоков скрипта.

Поведение при ошибке

Выпадающий список статических значений. Может быть выбрано только какое-то одно значение:

  • Продолжить (выбрано по умолчанию) — проигнорировать ошибку и продолжить выполнение теста.
  • Начать следующую итерацию — начать новую итерацию не выполняя следующие запросы после ошибки.
  • Остановить поток — поток с ошибкой завершает работу.
  • Остановить тест — весь тест завершается в конце выполнения всех текущих запросов.
  • Остановить тест немедленно — весь тест завершается не дожидаясь окончания выполнения текущих запросов.
Обновлено: