LoadView Goal-Based Load Test — это интеллектуальный инструмент тестирования, который обеспечивает тестирование по целевому количеству транзакций, автоматически корректируя все необходимые параметры теста, такие как пользовательская нагрузка и продолжительность теста.
В LoadView транзакция представляет собой тестовый сценарий (тестовый образец), который может включать одно или несколько действий пользователя, таких как переход на страницу «Связаться с нами», заполнение формы и ее отправка. Цель транзакции представляет собой количество таких транзакций, которые ваш сайт может обработать в минуту.
Объяснение алгоритма тестирования
Чтобы достичь желаемого количества транзакций в минуту и учесть возможные колебания производительности целевого сервера и приложения, LoadView выполняет тест в несколько циклов. Во время каждого цикла система выполняет следующие этапы:
- Система проверяет, соответствует ли сгенерированное количество одновременных виртуальных пользователей желаемой цели транзакции, учитывая среднюю продолжительность ответа в текущем цикле (Avg. Response Duration).
- Если сгенерированной пользовательской нагрузки недостаточно для достижения установленной цели транзакции, система корректирует нагрузку на следующий цикл.
Чтобы соответствовать указанной цели транзакции, первоначальное количество одновременных пользователей вычисляется на основе установленной цели транзакции и времени отклика, измеренного для тестового запуска для одного пользователя, выполненного во время проверки теста:
Start User Load = Цель транзакции в минуту × Продолжительность ответа на валидацию
После завершения первого тестового цикла система подсчитывает фактическое количество транзакций в минуту за цикл. Если это число не совпадает с желаемой целью транзакции, пользовательская нагрузка на следующий цикл корректируется по формуле:
Пользовательская нагрузка = Цель транзакции в минуту × Средняя. Продолжительность ответа
Где Средняя. Продолжительность ответа рассчитывается как среднее время отклика, измеренное для текущего цикла. Для обеспечения точности тестовый сценарий выполняется несколько раз в течение каждого цикла, при этом количество выполнений определяется параметром теста Adjustment Rate .
Этот итеративный процесс оценки цели транзакции и корректировки нагрузки продолжается до тех пор, пока не истечет заданная продолжительность теста .
Пример из жизни
Чтобы объяснить, как это работает в реальной жизни, давайте посмотрим на отчет ниже, где цель транзакций установлена на уровне 2 000 транзакций в минуту (TPM), а рекомендуемая начальная пользовательская нагрузка составляет 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 достичь желаемой цели транзакции.
Этот пример показывает, что значительное увеличение времени отклика, даже при более высокой пользовательской нагрузке, может указывать на проблемы с производительностью сервера или приложения, которые необходимо устранить для достижения желаемой цели транзакции.