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

preview_player
Показать описание
Нагрузочное тестирование

Тестирование производительности - нефункциональная характеристика (стандарт 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-очередь (очередь сообщений, обеспечивающая временное хранилище данных, когда целевая программа занята)
Рекомендации по теме
Комментарии
Автор

Хотя бы написали к чему это видео. Для чего это снято? В ролике решили отказаться от понятия "нагрузочная точка". А в ролике под видео термин остался. Короче, видео ни о чем. Диз.

namesurname