!Марафон по нагрузочному тестированию: схема общих понятий

Нагрузочное тестирование Тестирование производительности - нефункциональная характеристика (стандарт ISO 25010 [ISO25000]) Три составляющих тестирования производительности: 1. Производительность системы (как система отвечает на действия пользователей в течение определенного времени и при определенных условиях) 2. Использование ресурсов (Например, выделение оперативное памяти) 3. Потенциальные возможности (количество пользователей или объемы данных, масштабируемость) Термины: Время отклика - показатель качества, показывающий время отклика на транзакцию, время выполнения транзакции - с момента отправки запроса к серверу, до получения последнего байта от сервера Пропускная способность - показатель качества, показывающий количество транзакций, которые произошли за единицу времени Виртуальный пользователь - программный процесс, циклический выполняющий моделируемые операции Интенсивность выполнения операций - частота выполнения операции в единицу времени, в тестовом скрипте задается интервалом времени между итерациями Нагрузка - совокупное выполнение операций на общем ресурсе Производительность - количество выполняемых операций за период времени Масштабируемость приложения - пропорциональный рост производительности при увеличении нагрузки Профиль нагрузки - набор операций с заданными интенсивностями, полученный на основе сбора статистических данных или анализа требований к системе Нагрузочная точка - сценарий НТ - рассчитанное (заданное) количество виртуальных пользователей в группах, выполняющих операции с определенными интенсивностями - нагрузочный сценарий, объединенные операции с разными скриптами -- максимальная вместимость, максимальная производительность Строительные блоки теста производительности: 1) Запрос 2) Транзакция (объединение всех запросов вместе: запрос на открытие страницы, прогрузку элементов и скриптов) 3) Сценарий (логическое объединение транзакций: войти на страницу, ввод логина и пароля и т.д.) 4) Профиль нагрузки (объединение сценариев, сколько и каких необходимо выполнять сценариев. Для каждого сеанса тестирования определяется профиль нагрузки, строятся отчеты и графики по выбранным методикам тестирования производительности) Как выбрать транзакции для теста: 1. Критически важные риски часто используемое 2. Требуемые тех экспертом заказчика 3. Ресурсоемкие Профиль нагрузки включает в себя: 1. Количество виртуальных пользователей 2. Количество сценариев (операций задержки) 3. Интенсивность (операций) Принципы тестирования производительности: 1. Сценарии НТ должен корректно загружать систему по корректному профилю 2. Методика НТ, отчет и вывод; результат визуализирован понятным образом для большого круга заинтересованных лиц 3. Тесты должны осуществлять на системе (тестовом окружении), в достаточной мере воспроизводящей производственную среду; максимально приближено к архитектуре прода ЦЕЛИ тестирования производительности: 1) Получение подтверждения, что система удовлетворяет предъявленным критериям производительности и максимальная производительность 2) Проверка возможности масштабируемости 3) Выявление узких мест - определение компонента системы, приводящего к снижению производительности или отказу 4) Выявление влияние нагрузки на аппаратные ресурсы МЕТРИКИ: Категории метрик: 1. Со стороны приложения: а) Интенсивность б) Время отклика в) Загрузка очередей г) Метрики БД д) Соотношение ошибок 2. Со стороны аппаратной части а) ЦПУ б) ОЗУ в) hdd Как выбрать: При поиске узких мест следует включать неспецифические метрики Инструменты для сбора метрик производительности: а) Инструменты нагрузочного тестирования (набор измерений и отображения метрик) б) Инструменты мониторинга производительности (мониторинг метрик производительности на постоянной основе и информирование при снижении) аа) Linux бб) Windows в) Инструменты анализа лог-файлов (сканирование логов с сервера и сбор метрик на их основе) Примеры инструментов: 1. Apache Jmeter 2. LoadRunner 3. Load Ninja 4. WebLoad 5. LoadUI Pro 6. BlazeMeter 7. Яндекс танк ​ План проекта по проведению нагрузочному тестированию: 1. Выяснить цель 2. Описать требования и условия 3. Описать профиль нагрузки 4. Разработать сценарий 5. Прогнать сценарии и откалибровать 6. Анализ результатов выполнения нагрузки и ОТЧЕТ Способы задания нагрузки: 1. Создание нагрузки через пользовательский интерфейс (с помощью инструментов функционального теста через UI) 2. Создание нагрузки с помощью большого числа тестировщиков 3. Создание нагрузки через API (через программный интерфейс приложения) \ mq-очередь (очередь сообщений, обеспечивающая временное хранилище данных, когда целевая программа занята)
Back to Top