LoadView Goal-Based Load Test — это интеллектуальный инструмент тестирования, который обеспечивает тестирование по целевому количеству транзакций, автоматически корректируя все необходимые параметры теста, такие как пользовательская нагрузка и продолжительность теста.
В LoadView транзакция представляет собой тестовый сценарий (тестовый образец), который может включать одно или несколько действий пользователя, таких как переход на страницу «Связаться с нами», заполнение формы и ее отправка. Цель транзакции представляет собой количество таких транзакций, которые ваш сайт может обработать в минуту.
Объяснение алгоритма тестирования
Чтобы достичь желаемого количества транзакций в минуту и учесть возможные колебания производительности целевого сервера и приложения, LoadView выполняет тест в несколько циклов. Этот итеративный процесс продолжается до тех пор, пока не истечет заданная продолжительность теста.
Во время каждого цикла система выполняет следующие этапы.
1. Запустите расчет пользовательской нагрузки (только в первом цикле)
Чтобы соответствовать указанной цели транзакции, первоначальное количество одновременных пользователей вычисляется на основе установленной цели транзакции и времени отклика, измеренного для тестового запуска для одного пользователя, выполненного во время проверки теста:
Start User Load = Цель транзакции в минуту × Продолжительность ответа на валидацию
2. Генерация нагрузки
На основе расчетов система формирует виртуальную пользовательскую нагрузку.
3. Оценка достигнутого количества транзакций в минуту по сравнению с Целью транзакции
После завершения первого тестового цикла система подсчитывает фактическое количество транзакций в минуту за цикл. Затем система проверяет, соответствует ли сгенерированное количество одновременных виртуальных пользователей желаемой цели транзакции, учитывая среднюю продолжительность ответа в текущем цикле (Avg. Response Duration).
Если это число не совпадает с желаемой целью транзакции, пользовательская нагрузка на следующий цикл корректируется по формуле:
Пользовательская нагрузка = Цель транзакции в минуту × Средняя. Продолжительность ответа
Где Средняя. Продолжительность ответа рассчитывается как среднее время отклика, измеренное для текущего цикла. Для обеспечения точности тестовый сценарий выполняется несколько раз в течение каждого цикла, при этом количество выполнений определяется параметром теста Adjustment Rate .
Пример из жизни
Чтобы объяснить, как это работает в реальной жизни, давайте посмотрим на отчет ниже, где цель транзакции установлена на уровне 2 000 транзакций в минуту (TPM), а продолжительность ответа на проверку — 0,18 секунды.
Рекомендуемая начальная пользовательская нагрузка для первого цикла рассчитывается следующим образом:
Начальная пользовательская нагрузка = 2000 TPM × 0,18 сек = 377 одновременных виртуальных пользователей.
Первый цикл: Первичная оценка
В первом тестовом цикле LoadView достиг 1176 транзакций в минуту, что не дотянуло до целевого показателя в 2000 транзакций в минуту. Среднее время отклика (Avg. Response Duration) составило 19,39 секунды. На основе этих данных система пересчитывает необходимую пользовательскую нагрузку на следующий цикл по формуле:
Пользовательская нагрузка₂ = (2,000 / 60) × 19.39 ≈ 646 одновременных виртуальных пользователей
Второй цикл: регулировка пользовательской нагрузки
Во втором цикле пользовательская нагрузка увеличилась до 646 одновременных виртуальных пользователей. Однако время отклика целевого сервера начало расти (на что указывает первая стрелка на графике времени отклика). Это увеличение привело к увеличению средней продолжительности реакции до 32,39 сек.
Несмотря на возросшую пользовательскую нагрузку, система по-прежнему достигала всего 1176 транзакций в минуту. Это говорит о том, что скорость транзакций не улучшилась с дополнительной нагрузкой.
Третий и четвертый циклы: дальнейшие корректировки и наблюдения
LoadView пересчитал пользовательскую нагрузку для третьего цикла:
Пользовательская нагрузка₃ = (2 000 / 60) × 32,39 ≈ 1 079 одновременных виртуальных пользователей
В течение третьего цикла время отклика продолжало расти пропорционально увеличению пользовательской нагрузки. В четвертом цикле время отклика сервера продолжало увеличиваться вместе с нагрузкой на пользователя, следуя тенденциям, наблюдавшимся в предыдущих циклах. Этот шаблон предполагает, что производительность сервера снижалась по мере добавления новых пользователей, что не позволяло LoadView достичь желаемой цели транзакции.
Этот пример показывает, что значительное увеличение времени отклика, даже при более высокой пользовательской нагрузке, может указывать на проблемы с производительностью сервера или приложения, которые необходимо устранить для достижения желаемой цели транзакции.