Нагрузочное тестирование
Влад Алюков
2
Нагрузочное
тестирование
Нагрузочное тестирование
3
SLA
4
Нервные пользователи
5
Цели
 Поиск узких мест
 Оценка допустмых пределов
 Определение границ QoS
6
Стратегия
 Проработка модели нагрузки
 Создание профилей нагрузки
 Генерация нагрузки
 Мониторинг тестируемых систем
 Анализ результатов
7
Профили нагрузки
8
Модель нагрузки
 Список профилей нагрузки
 Интенсивность выполнения операции
 Зависимость интенсивности операций
от времени выполнения
9
Профиль нагрузки
 Определение сценариев нагрузки
 Определение точек нагрузки
 Определение количества пользователей
10
Точки нагрузки
 Определение точек нагрузки
 Технические точки нагрузки
 Функциональные точки нагрузки
 Определение интенсивности выполнения
операций
11
Технические точки нагрузки
 Работа с базой (модификация сущностей)
 Задействуют несколько подсистем
приложения
12
Функциональные точки
нагрузки
 Критический важные функции вашего
приложения
 Регистрация
 Логин
 Основные бизнес-кейсы
13
14
Анализ результатов
Метрики
 Время отклика
 Количество ошибок
 Disk IO (tps, kb/t)
 RAM (memory use)
 CPU
 LA
15
LoadAverage
 Количество процессов в очереди
 Временной интервал 1/5/15 минут
16
Время ответа
 Стремится к нормальному распределению
 С наименьшим среднеквадратичным
отклонением
17
Типичные проблемы
 Input/Output
 Недостаточно производительный генератор
нагрузки
18
19
Типичные ошибки
Прогрев
20
Среднее арифметическое
21
Только протоколы
22
Достойные инструменты
 multi-mechanize
 locustio
 jmeter
 grinder
 tsung
23
24
Вопросы?
25
DevOps
26
Причины
27
Проблемы
 «У меня всѐ работает»
 Конфликт интересов
разработчиков/операторов
 Отложенный фидбек
Идеология
28
29
 We build, we run
 Configuration management
 Мониторинг
30
Практическая реализация
 Автоматиазция
 Тестирование автоматизации
31
Автоматизация
 Консистентность среды
 Известное состояние среды
32
Автоматизация
 Автоматизируемые задачи
 Собрки (Continuous Integration)
 Тестирование
 Deploy (Continuous Deployment)
 Конфигурация
 Откат
33
CMS
 Chef
 Puppet
 CFEngine
 Ansible
 SaltStack
34
Инфраструктура как код
 Версионирование
 Масштабирование сред
 Управляемые изменения в тестовых и
производственных средах
35
Chef
 Кукбук
 Атрибуты
 Ресурсы
 Рецепты
 Шаблоны
 Файлы
36
Knife
 Управление состоянием chef server
 Интеграция с внешними API
 Управление кукбуками и их репозитарием
37
Автоматизация
38
Автоматизация
 Любая автоматизаия производимая
непосредственно вами нуждается в
тестировании
39
Тестирование конфигурации
 Vagrant
 test-kitchen
 Serverspec
 Chefspec
40
Мониторинг
41
Мониторинг
 Метрики
 Определяйте/Изучайте/Улучшайте
 Поиск проблем
 Планирование нагрузки
 Анализ деградации/улучшения сервиса
 Сокращая, таким образом, feedback loop
42
Мониторинг
 Логи
 Logstash/graylog
 Метрики
 Graphite/statsd
 Системы мониторинга
 Nagios/Zabbiz
 Cucumber-nagios
43
Вопросы?

Тестирование весна 2014 смешанное занятие 3