LoadRunner / LRE

LoadRunner / LRE

LoadRunner / HP Performance Center

Составляющие

LoadRunner (сокращенно LR) - это мощный инструмент для нагрузочного тестирования, разработанный компанией Micro Focus (ранее HP). Он позволяет имитировать работу тысяч пользователей, чтобы проверить производительность, надежность и масштабируемость приложений под нагрузкой.

Основные составляющие LoadRunner

Virtual User Generator (VuGen)

Назначение: Создание и редактирование виртуальных пользователей (VUsers) — скриптов, которые имитируют действия реальных пользователей.

Поддерживаемые протоколы: HTTP/HTTPS (Web), SAP, Oracle, Java, .NET, REST, SOAP, MQ и многие другие.

Функции:

Запись и воспроизведение сценариев.

Параметризация (подстановка динамических данных).

Корреляция (извлечение данных из ответов сервера).

Добавление проверок (checkpoints) и точек измерения (transactions).

LoadRunner Controller

Назначение: Управление нагрузочными тестами, распределение виртуальных пользователей, мониторинг системы.

Основные функции:

Планирование сценариев (сколько VUsers запускать, с какой интенсивностью).

Настройка сценариев (например, ramp-up — постепенное увеличение нагрузки).

Распределение нагрузки между несколькими генераторами нагрузки (Load Generators).

Мониторинг производительности серверов (CPU, память, сеть и т. д.).

LoadRunner Analysis

Назначение: Анализ результатов тестирования, построение графиков и отчетов.

Что можно анализировать:

Время отклика (response time).

Пропускную способность (throughput).

Количество ошибок.

Загрузку серверов (CPU, память, диски).

Сравнение нескольких тестов.

Load Generators

Назначение: Машины, которые генерируют нагрузку, выполняя скрипты VUsers.

Как работает:

Controller управляет Load Generators, распределяя между ними виртуальных пользователей.

Можно использовать несколько генераторов для масштабирования теста.

Runtime Settings

Назначение: Настройка поведения скриптов во время выполнения.

Что можно настроить:

Think Time (паузы между действиями).

Логирование (сколько данных сохранять).

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

Таймауты.

Additional Components (Дополнительные компоненты)

LoadRunner Enterprise (ранее Performance Center) — облачное/корпоративное решение для управления нагрузочными тестами в команде.

LoadRunner Developer — инструмент для разработчиков, позволяющий создавать сложные скрипты с помощью кода.

TruClient — технология для тестирования современных веб-приложений (поддержка AJAX, HTML5) с реальным браузерным движком.

VuGen

Virtual User Generator (VuGen) — это ключевой компонент LoadRunner, предназначенный для создания, редактирования и отладки скриптов, которые имитируют поведение реальных пользователей при нагрузочном тестировании.

Основные функции VuGen - VuGen позволяет:

Записывать действия пользователя (например, нажатия кнопок, заполнение форм в веб-приложении).

Генерировать скрипты на разных языках (чаще всего C, но также Java, JavaScript, VB и др., в зависимости от протокола).

Параметризовать данные (например, подставлять разные логины/пароли из файла).

Коррелировать динамические значения (извлекать данные из ответов сервера и использовать их в последующих запросах).

Добавлять проверки (например, проверять, что страница загрузилась без ошибок).

Настраивать транзакции (отслеживать время выполнения ключевых операций).

Поддерживаемые протоколы - VuGen работает с десятками протоколов, включая:

Веб (Web HTTP/HTML, TruClient) – для тестирования веб-приложений.

API (REST, SOAP, Web Services) – для тестирования API.

Базы данных (ODBC, Oracle, SQL) – для эмуляции SQL-запросов.

Корпоративные системы (SAP, Siebel, PeopleSoft) – для тестирования ERP-решений.

Мобильные приложения (Mobile) – через протоколы HTTP или специализированные SDK.

Почта (SMTP, POP3, IMAP) – для тестирования почтовых сервисов.

Процесс работы с VuGen (кратко)

Шаг 1: Запись скрипта

Выбирается протокол (например, Web HTTP/HTML).

Запускается встроенный браузер или прокси-запись (если тестируется мобильное приложение).

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

VuGen записывает все HTTP-запросы и генерирует скрипт (обычно на языке C).

Шаг 2: Редактирование скрипта - После записи скрипт можно:

Упростить (убрать лишние запросы, например, загрузку картинок).

Параметризовать (заменить статические данные на переменные из CSV-файла).

Добавить проверки (web_reg_find() – поиск текста на странице).

Настроить транзакции (lr_start_transaction(), lr_end_transaction() – замер времени).

Шаг 3: Корреляция

Если приложение возвращает динамические данные (например, sessionID), их нужно извлечь из ответа и подставить в следующий запрос. Подробнее описано тут.

Шаг 4: Настройка Runtime Settings

Think Time – имитация задержек между действиями пользователя.

Итерации – сколько раз выполнять скрипт.

Логирование – уровень детализации логов (минимальный, расширенный).

Обработка ошибок – что делать, если тест падает (continue или stop).

Шаг 5: Валидация скрипта (Replay) - Перед запуском нагрузочного теста важно убедиться, что скрипт работает корректно:

Запускается отладка (F5).

Проверяются логи (View → Output Window).

Анализируется результат воспроизведения (Pass/Fail).

4. Расширенные возможности VuGen

Функции на языке C – можно писать сложную логику (циклы, условия, обработку ошибок).

Поддержка JavaScript (TruClient) – для современных SPA-приложений (Angular, React).

Интеграция с Git/SVN – для контроля версий скриптов.

Генерация пользовательских метрик (lr_user_data_point()).

Controller

LoadRunner Controller — это центральный модуль LoadRunner, который управляет выполнением нагрузочных тестов. Он координирует работу виртуальных пользователей (VUsers), распределяет нагрузку между генераторами и собирает данные для анализа.

Основные функции Controller

LRE

LoadRunner Enterprise (ранее известный как HP Performance Center) — это корпоративное решение для управления нагрузочным тестированием в масштабах организации. Оно предоставляет централизованную платформу для планирования, выполнения, анализа и хранения результатов тестирования, поддерживая командную работу и интеграцию с CI/CD.

Ключевые возможности LoadRunner Enterprise

Централизованное управление тестированием

Хранение скриптов, сценариев и результатов в едином репозитории.

Контроль версий (интеграция с Git, SVN).

Ролевой доступ (администраторы, тестировщики, аналитики).

Масштабируемость и распределенная нагрузка

Поддержка облачных и локальных Load Generators (AWS, Azure, Docker, физические серверы).

Динамическое масштабирование (автоматическое добавление генераторов при росте нагрузки).

Интеграция с CI/CD и DevOps

API для автоматизации (REST API для запуска тестов из Jenkins, Azure DevOps). Выберите

Плагины для Jenkins, Bamboo, TeamCity.

Поддержка Shift-Left тестирования (ранние проверки в разработке).

Расширенная аналитика и отчетность

Дашборды с ключевыми метриками (Response Time, Throughput, Errors).

Сравнение тестов (A/B-тестирование производительности).

Автоматические отчеты (PDF, Excel, HTML).

Поддержка разных технологий

Веб, мобильные, API, ERP (SAP, Oracle), микросервисы.

TruClient для современных SPA (React, Angular).

Сценарии на Python, JavaScript, Groovy.

Архитектура LoadRunner Enterprise

Основные компоненты

Отличия Controller и LRE

Оба инструмента являются частью экосистемы LoadRunner, но предназначены для разных сценариев использования.

Ключевые различия

Общие черты

Использование скриптов VuGen

Оба инструмента работают с одними и теми же скриптами, созданными в Virtual User Generator.

Поддержка Load Generators

Могут распределять нагрузку между локальными и удаленными генераторами.

Поддерживают одни и те же протоколы (Web, SAP, API и др.).

Анализ результатов в LoadRunner Analysis

Результаты тестов можно анализировать в одном и том же модуле Analysis.

Настройка сценариев - Оба позволяют настраивать:

Количество VUsers.

Ramp-up/ramp-down.

Когда что использовать?

LoadRunner Controller

✅ Для локального тестирования (например, разработчик проверяет свой код перед коммитом).

✅ Небольшие тесты (до 1000 VUsers на одном ПК/сервере).

LoadRunner Enterprise

✅ Командная работа (тест-дизайнеры, инженеры, аналитики).

✅ Крупные проекты (10 000+ VUsers с облачными генераторами).

✅ Непрерывное тестирование (CI/CD, автоматические запуски).

✅ Долгосрочное хранение отчетов (аудит, сравнение версий).Распределение нагрузки между скриптами.

Вывод

Controller — это "легковесный" инструмент для инженеров.

Enterprise — "тяжелая" платформа для корпоративного тестирования.

Analysis

LoadRunner Analysis — это инструмент для анализа результатов нагрузочного тестов, который помогает выявлять узкие места в производительности системы. Он преобразует сырые данные, собранные во время теста, в наглядные графики, таблицы и отчеты.

Основные функции Analysis

Визуализация данных (графики, диаграммы, сводные таблицы).

Анализ производительности (время отклика, throughput, ошибки).

Сравнение нескольких тестов (например, до и после оптимизации).

Генерация отчетов (HTML, PDF, Word, Excel).

Детализация проблем (поиск причин медленной работы).

Ключевые графики и метрики

Основные графики

Дополнительные метрики

CPU / Memory / Disk Usage – загрузка серверных ресурсов.

Network Delay – задержки сети.

Database Metrics – время выполнения SQL-запросов (если подключен мониторинг БД).

Немного С (на когда-нибудь)

Язык программирования C - очень полезный сайт, до сих пор обновляется и дополняется.

Переменные

Функции

Массивы

Динамические массивы

Условные конструкции

Циклы

Основные функции LR

lr_save_string function in Loadrunner with examples - SOFTWAREHOUR

Type of LoadRunner Variables

В данном разделе кратко рассмотрим основные функции, которые используются для написания скриптов в LR.

Работа со строками

Из-за того что в С нет строк как отдельной переменной или класса, не получится использовать конструкцию типа:

char OrderNo[]=”45789″;

web_url(“OrderNo”, “URL=OrderNo“, ……., LAST );

web_url() - функция LR для отправки get запроса (но об этом позже).

Для работы со строками в LR можно использовать две жизненно-важные функции:

lr_save_string() - позволяет сохранить строку как параметр LR, который потом можно удобно использовать при передаче строки в тело/заголовок и т.д.

lr_eval_string() - возвращает строку после применения всех параметров LR, если аргумент содержит только параметр - возвращает его текущее значение в виде строки.

lr_output_message() - дополнительная полезная функция для вывода информации в Output. Более подробно о логировании ниже в п. Отладка и логирование.

Примеры использования:

lr_save_string() - из переменной С в параметр LR

Создаем массив char на языке С “stringExampleInC” со значением “hello”, далее сохраняем значение переменной “stringExampleInC” в виде параметра/переменной LR “stringExampleInLR” так же со значением “hello”;

lr_save_string() - сохранение строки введенной тестировщиком в виде параметра LR

В отличие от предыдущего примера сразу задаем строку со значением “hello”, которую сохраняем в виде параметра LR “stringExampleInLR”.

lr_eval_string() - из параметра LR в переменную С.

В данном примере мы передаем параметр LR “stringExampleInLR” со значением “hello” в переменную С “stringExampleInC” с помощью lr_eval_string().

lr_eval_string() - использование совместно с lr_save_string(). Позволяет удобно собрать тело сообщения или заголовок.

Предположим у нас есть json структуры:

{

“name” = ,

“surname” =

}

и два параметра LR, в который сохранена нужная нам информация:

Соберем из этого полноценный json и сохраним его в переменную LR “body”:

В данном коде сначала выполняется lr_eval_string(), в котором проставляются в строку два параметра (name и surname) и далее итоговая строка "{"Name":"Morgan","surname":"U"}" помещается в параметр LR под названием “body”.

Обратите внимание, кавычки необходимо экранировать \” !!!

lr_output_message() - вывод из переменной С:

Выводит в Output строку “message = example”:

lr_output_message() - вывод из параметра LR:

Вывод:

Запросы

В данном разделе рассмотрим функции и примера их использования, связанные с HTTP запросами (подробная теория изложена в “Сетевое взаимодействие”)

Каждую рассмотрим подробно:

web_url() - функция реализующая GET запрос:

Данная функция возвращает LR_PASS (0) в случае успешного прохождения запроса, иначе LR_FAIL (1).

web_custom_request() - это универсальная функция для выполнения произвольных HTTP-запросов (GET, POST, PUT, DELETE и других методов).

Основные возможности

Поддержка любых HTTP-методов (GET, POST, PUT, DELETE, PATCH и др.)

Возможность отправки произвольных тел запросов (JSON, XML, бинарные данные)

Гибкая настройка заголовков (headers)

Работа с разными Content-Type

Поддержка параметризации и корреляции

Заголовки

В LoadRunner заголовки HTTP-запросов играют ключевую роль при тестировании веб-приложений и API. Они используются для:

Авторизации (Bearer tokens, Basic Auth)

Управления кэшированием

Определения формата данных (JSON/XML)

Передачи метаданных

Заголовки необходимо писать перед запросами!!!

Заголовков можно добавить несколько.

web_add_header() — Добавление кастомного заголовка к запросу один раз

web_add_auto_header() — Добавление заголовка ко всем последующим запросам.

web_remove_auto_header() - удаляет авто-заголовок, указанный в функции.

web_cleanup_auto_headers() - удаляет все заголовки

Транзакции

Транзакции в LoadRunner используются для измерения времени выполнения ключевых операций в тестовом сценарии. Они позволяют:

Замерять производительность отдельных шагов

Анализировать узкие места в системе

Сравнивать результаты между тестами

Пример создания транзакции

Параметры для lr_end_transaction():

Транзакции можно закрывать через условия. но чаще всего достаточно обычного функционала.

После выполнения теста в Analysis вы увидите:

Среднее время выполнения

Минимальное/максимальное время

Процент успешных транзакций

График зависимости времени от нагрузки

Как улучшить анализ:

Давайте транзакциям понятные имена ("Login", "SearchProduct")

Группируйте связанные транзакции (префиксы "01_", "02_")

Используйте разные статусы (PASS/FAIL) для точной диагностики

Создание скрипта

HTTPBin - Тестовая API, на которой будем тренироваться записывать скрипт.

Скрипт делится на Actions - блоки кода выполняющиеся в определенном порядке (определяется пользователем).

Виды Actions:

vuser_init - выполняется единожды при инициализации пользователя, используется для получения токенов или других параметров, которые будут использоваться в ходе ВСЕГО теста.

Action - обычный, заданный тестировщиком Action. Может быть переименован. Можно создать несколько таких Actions.

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

Создание скрипта может происходить 2-мя разными способами:

Автоматически - с помощью записи трафика через UI приложения/браузера или через воспроизведения действий из архивов “перехваченного”/записанного сетевого трафика.

Вручную - написание скрипта своими руками с помощью функций, предоставленных разработчиками LR.

Где и что лучше использовать:

Запись скрипта средствами LR:

Автоматическая запись скрипта позволяет быстро создать большой скрипт (по сути черновой) со всем трафиком, проходящим через клиентское устройство, что делает скрипт тяжелым для визуального восприятия. - удобно для записи взаимодействий с UI систем через клиент или браузер.

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

Написание скриптами самостоятельно:

Ручное написание скрипта подразумевает наличие какого-либо API в том или ином виде.

Вручную обычно пишутся небольшие скрипты (до 10 взаимодействий) - написание и редактура здесь обычно совмещенные процессы, что в сумме занимает меньше времени чем редактура записанного скрипта.

Запись скрипта (recording)

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

1)Перед началом записи

2) Теперь рассмотрим настройки записи скрипта

Выбираем в какой Action будем вести запись (не сильно важная настройка, в процессе редактуры скрипт можно расположить в различных экшенах)

Выбираем тип записи (оставим тут браузер):

Выбираем приложение для записи (т.к выше был выбран браузер, выбираем microsoft Edge)

В данном поле можно задать начальный URL, с которого браузер начнет работу. (для примера воспользуемся сайтом https://httpbin.org/#/ - тестовым API)

Вы можете начать запись скрипта в двух режимах:

Immediately (немедленно) - запись начнется как только кликнем кнопку Start Recording. (Оставим данный вариант для примера)

In delayed mode (в отложенном режиме) - запись начнется позже, если нужны какие действия перед ней.

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

Дополнительные подробные настройки записи.

Заполнив все поля, приступаем к записи скрипта.

2)Запись скрипта

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

Стоп запись - останавливает запись и генерирует новый скрипт из записанного трафика.

Пауза

Отмена записи

Выбрать в какой Action записывать (в нашем случае Action)

Создать новый Action

Создать новую транзакцию

Закрыть транзакцию из списка созданных

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

Добавить комментарий - добавляет текстовый комментарий

Проверка текста - добавляет проверку на ожидаемый текст. Аналог assertions из Jmeter.

Открываем транзакцию “getinfo”

Проводим необходимое нам действие:

Закрываем транзакцию:

И останавливаем запись:

3) Редактура скрипта

После окончания записи откроется окно с результатами.

Здесь отключаем лишних хостов и оставляем только нужный нам (httpbin.org). И нажимаем кнопку “ре-генерации скрипта”, LR пересоберет его уже с только нужными сервисами.

Можем увидеть в своем Action записанный скрипт и добавить в него, что нам необходимо для более точного тестирования.

Параметризация

Параметризация — это замена статических данных в скрипте на динамические значения из внешних источников (файлы, БД, встроенные генераторы). Это позволяет имитировать поведение реальных пользователей, которые используют разные данные (логины, пароли, ID товаров и т. д.).

Типы параметров в VuGen

Встроенные генераторы параметров

Внешние источники

CSV/TXT-файлы — самый популярный вариант.

Базы данных (через ODBC) — для сложных сценариев.

API-запросы (редко, через кастомный код на C).

Типы обновления/изменения параметров в течение теста:

Each occurrence - параметр меняется (если возможно) при каждом обращении к нему через {paramName}. Удобно использовать для уникализации данных (например messageId).

Each iteration - параметр меняется (если возможно) единожды за итерацию к нему через {paramName}. Удобно использовать для данных, которые должны быть одинаковы в ходе всей транзакции (например sessionId)

Once - параметр задается единожды при создании и в ходе всего теста остается одинаковым.

Создание параметров

Пошаговая инструкция:

Заходим в меню параметров

Создаем новый параметр, меняем ему имя, выбираем нужный тип;

задаем нужное значение

теперь можем использовать использовать этот параметр в скрипте

Обратите внимание, что параметры, заданные через лист параметров, при вставке их в текст выделяются рамкой.

А теперь обратимся к выводу:

Корреляция

Корреляция — это процесс извлечения динамических данных из ответов сервера и подстановки их в последующие запросы. Это необходимо для:

Обработки session ID, токенов, CSRF-ключей

Работы с параметрами, которые меняются между запросами

Эмуляции реального поведения пользователей

Все функции корреляции вставляются ПЕРЕД запросами, из которых мы хотим получить данные. Функций корреляций перед запросами может быть несколько.

Основные функции корреляции:

web_reg_save_param() — Сохранение параметра из ответа. Пример - извлечение sessionId

Параметры:

LB (Left Boundary) — текст перед искомым значением

RB (Right Boundary) — текст после искомого значения

Search — где искать (HEADERS, BODY, ALL)

Ord — порядковый номер совпадения (если несколько)

web_reg_save_param_ex() — Расширенная версия предыдущей команды.

Отличия:

Поддержка регулярных выражений

Более гибкие границы

web_reg_save_param_regexp() — Корреляция через регулярные выражения. В данном примере извлекается элемент JSON.

web_reg_save_param_xpath() — Для корреляции XML/HTML через xPath: Free Online XPath Tester / Evaluator - FreeFormatter.com

web_reg_save_param_json() - Для корреляции JSON - body через JSONPath: JSONPath Online Evaluator

Корреляция нескольких значений - функции корреляции могут обнаружить в ответе несколько попаданий под критерии поиска. В таком случае к параметрам можно обращаться таким образом: “paramName_number”.

Пример с циклом:

Отладка и логирование

Отладка созданных скриптов в LR происходит с помощью логов.

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

В логах можем увидеть информацию о старте/выключении пользователя.

Применение заголовка

Найденные ресурсы

Краткую информацию о запросе (старт и статус: успех/ошибка)

Краткую информацию о транзакции (старт и статус: успех/ошибка)

Сведения об итерациях

Включение подробных логов, для начала зайдем в Runtime Settings:

Далее, переходим во вкладку логи:

На вкладке логов включаем (НЕ ЗАБУДЬТЕ ВЫКЛЮЧИТЬ ПЕРЕД ТЕСТОМ, т.к. :

логирование, если выключено

Extended log - расширенный лог

все галочки - для максимально подробного лога

Теперь посмотрим наиболее подробные логи на том же примере:

В данном логе можем наблюдать:

Полную информацию о запросе:

все заголовки запроса

тело запроса

статус ответа

тело ответа

заголовки ответа

и т.д.

Также при добавлении параметров увидим подставленные значения

Далее отлаживаем, проверяем заголовки/ответы/заголовки - доводим скрипт необходимого состояния.

Настройка проверок

Проверки ответов сервера — критически важная часть нагрузочного тестирования, позволяющая убедиться, что система работает корректно под нагрузкой. В LoadRunner существует несколько методов для валидации ответов.

Основные методы проверки ответов

Функция web_reg_find() — Поиск текста в ответе

Назначение: Проверка наличия/отсутствия текста в ответе сервера.

Синтаксис:

Примеры:

Проверка успешного входа:

Проверка отсутствия ошибки:

Подсчет элементов:

Проверка кода ответа HTTP

Метод 1: Через web_get_int_property()

Метод 2: Через корреляцию

Продвинутые методы проверки

Проверка JSON-ответов

Использование web_reg_save_param_json():

Проверка XML-ответов

Обработка ошибок

Типы ошибок в LoadRunner:

Ошибки соединения (например, timeout)

HTTP-ошибки (404, 500 и т.д.)

Логические ошибки (неверные данные в ответе)

Настройка обработки ошибок

Кастомная обработка

Лучшие практики

Всегда проверяйте HTTP-код — даже успешный запрос может вернуть 500 ошибку

Используйте транзакции для группировки проверок:

Комбинируйте методы — например, проверяйте и код ответа, и наличие текста

Настройте логирование для отладки:

Заключение:

Правильная проверка ответов включает:

Обязательные проверки HTTP-кода и времени ответа

Логические проверки содержимого ответа

Грамотную обработку ошибок

Подробное логирование для анализа проблем

💡 Совет: Для сложных API используйте web_reg_save_param_json() + web_custom_request(), для веб-страниц — web_reg_find() + web_url()

Настройка интенсивности

Настройка интенсивности происходит в два этапа:

pacing - Внутри скрипта

Количеством пользователей - в PC/LRE

В данном разделе рассмотрим настройку интенсивности с помощью pacing:

Pacing (интервалы между итерациями) — критически важный параметр, который определяет, как часто виртуальный пользователь (VUser) будет повторять сценарий. Правильная настройка pacing позволяет:

Эмулировать реалистичную нагрузку

Избегать "пиковых" нагрузок на сервер

Соответствовать реальному поведению пользователей

Чтобы настроить Pacing, откроем Runtime Settings:

Далее открываем вкладку Pacing:

Основные типы Pacing:

Fixed Pacing (Фиксированный интервал) - Между окончанием одной итерации и началом следующей проходит строго заданное время.

Для равномерной нагрузки (например, 1 запрос в минуту на пользователя)

Тестирование API с лимитом запросов

Random Pacing (Случайный интервал) - Интервал между итерациями выбирается случайно из заданного диапазона.

Для более реалистичной эмуляции пользователей

Когда нужно избегать синхронных запросов

Позволяет избежать "эффекта толпы" (все пользователи делают запросы одновременно)

As soon as the previous iteration ends - VUser начинает новую итерацию немедленно после завершения предыдущей.

Для максимальной нагрузки на сервер

При тестировании "на разрыв"

Для коротких smoke-тестов

Может создавать не реалистичную нагрузку

Сервер может перегрузиться слишком быстро

Рекомендации по выбору типа Pacing:

Примеры расчета нагрузки:

Фиксированный Pacing (30 сек):

100 VUsers × (1 итерация / 30 сек) = 3.3 RPS (запросов в секунду)

Случайный Pacing (10-60 сек):

Среднее 35 сек → 100 VUsers × (1/35) ≈ 2.8 RPS

Частые ошибки:

Слишком короткий Pacing

Сервер перегружается

Не учитывается think time пользователей

Pacing ≠ Think Time

Pacing — между итерациями

Think Time — внутри одной итерации

Игнорирование Random Pacing

Без случайности все VUsers работают синхронно

Нагрузка становится "пилообразной"

Работа с PC и LRE (Лекционный материал)

Работа с генераторами (Лекционный материал)

Запуск тестов (Лекционный материал)

Отложенный запуск (Лекционный материал)

Мониторинг скриптов (Лекционный материал)

Анализ результатов (Лекционный материал)

Полезности

Step Toolbox

Step Toolbox (Панель шагов) — это интеллектуальное контекстно-зависимое меню в VuGen, которое автоматически предлагает подходящие функции для вставки в скрипт на основе выбранного протокола и текущего контекста кода.

Это панель в интерфейсе VuGen, которая:

Содержит все доступные функции для текущего протокола

Позволяет быстро вставлять код без ручного набора

Группирует функции по категориям (HTTP, проверки, корреляция и т.д.)

Автоматически обновляется в зависимости от контекста

Как открыть Step Toolbox:

Открывается панель, при желании - её можно передвинуть.

✍️ Заглушки + spring

Составляющие

Классы, поля, методы, конструкторы — основные строительные блоки программ на Java.

Классы и объекты:

Класс — это шаблон, по которому создаются объекты (экземпляры). Класс может содержать поля (состояние) и методы (поведение).

Конструкторы:

Конструктор — это специальный метод, который вызывается при создании объекта и инициализирует его поля. Если вы не указываете конструктор, Java создает пустой по умолчанию

Можно также добавить конструктор без параметров:

Модификаторы доступа:

Пакеты и импорт:

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

static и final:

static — принадлежит классу, а не объекту

final — запрещает изменение значения (переменные), переопределение (методы), наследование (классы)