Download - Илья Евлампиев - Grinder
![Page 1: Илья Евлампиев - Grinder](https://reader031.vdocuments.net/reader031/viewer/2022012400/54b6a5f64a795969088b4717/html5/thumbnails/1.jpg)
Нагрузочное тестирование с помощью Grinder
Илья Евлампиев“Exigen Services”
![Page 2: Илья Евлампиев - Grinder](https://reader031.vdocuments.net/reader031/viewer/2022012400/54b6a5f64a795969088b4717/html5/thumbnails/2.jpg)
Нагрузочное тестирование…
определение того, как быстро работает система при определенной нагрузке. Позволяет также определить такие параметры системы как расширяемость и надежность.
Вкратце, это: Имитация реальной нагрузки на систему Выполнение тестов Анализ результатов
![Page 3: Илья Евлампиев - Grinder](https://reader031.vdocuments.net/reader031/viewer/2022012400/54b6a5f64a795969088b4717/html5/thumbnails/3.jpg)
Цели нагрузочного тестирования
Недопущение «падения» системы Обойтись без излишних затрат на «железо» Снизить стоимость продукта Облегчить обслуживание Продемонстрировать заказчику, что система
удовлетворяет требованиям
![Page 4: Илья Евлампиев - Grinder](https://reader031.vdocuments.net/reader031/viewer/2022012400/54b6a5f64a795969088b4717/html5/thumbnails/4.jpg)
Стратегии нагрузочного тестирования
Поиск «узкого горла» Оптимизация Сравнение альтернативных вариантов Определение максимального объема данных Чистый интерес
![Page 5: Илья Евлампиев - Grinder](https://reader031.vdocuments.net/reader031/viewer/2022012400/54b6a5f64a795969088b4717/html5/thumbnails/5.jpg)
Типы нагрузочного тестирования
Нагрузочное тестирование (load testing) Тестирование отказоустойчивости (failover
testing) Стресс-тестирование (stress testing) Целевые испытания (targeted infrastructure
test) Объемное тестирование (volume testing) Тестирование стабильности (endurance
testing) Тестирование производительности
(performance testing) Тестирование пропускной способности сети
(network sensitivity testing)
![Page 6: Илья Евлампиев - Grinder](https://reader031.vdocuments.net/reader031/viewer/2022012400/54b6a5f64a795969088b4717/html5/thumbnails/6.jpg)
Словарь
Vuser – виртуальный пользователь Load generator (agent) – генератор нагрузки Process - процесс Thread - поток Run - прогон Ramp-up – «разброс» Load controller – контроллер нагрузки
![Page 7: Илья Евлампиев - Grinder](https://reader031.vdocuments.net/reader031/viewer/2022012400/54b6a5f64a795969088b4717/html5/thumbnails/7.jpg)
Схема
![Page 8: Илья Евлампиев - Grinder](https://reader031.vdocuments.net/reader031/viewer/2022012400/54b6a5f64a795969088b4717/html5/thumbnails/8.jpg)
Метрики
Времена отклика + Построение графиков производительности + Пропускная способность + Надежность (MTBF - Mean Time Between Failures) Доступность (какой процент времени сервис лежал) Загрузка процессора Загрузка памяти Сетевой траффик + Особые показатели сервера приложений Особые показатели сервера баз данных Запросы в секунду +
![Page 9: Илья Евлампиев - Grinder](https://reader031.vdocuments.net/reader031/viewer/2022012400/54b6a5f64a795969088b4717/html5/thumbnails/9.jpg)
Что нужно знать о каждой метрике?
Среднее значение Разброс Максимальное и минимальное достигнутое
значение Перцентиль (уложившиеся около среднего
90% результатов) Все распределение Упавшие запросы (процент)
![Page 10: Илья Евлампиев - Grinder](https://reader031.vdocuments.net/reader031/viewer/2022012400/54b6a5f64a795969088b4717/html5/thumbnails/10.jpg)
The Grinder
100% Java (любая ОС с поддержкой J2SE) Протоколы HTTP, HTTPS (out of the box) SOAP, XML-RPC IIOP, RMI/IIOP, RMI/JRMP, and JMS. POP3, SMTP, FTP, and LDAP. Базы данных – JDBC Скрипт на Jython / Автозапись HTTP GrinderStone for Eclipse - дебаггинг Бесплатный
![Page 11: Илья Евлампиев - Grinder](https://reader031.vdocuments.net/reader031/viewer/2022012400/54b6a5f64a795969088b4717/html5/thumbnails/11.jpg)
The Grinder: Настройка среды
Java (JVM) Jython (add to PATH) Add external JARs to Grinder /lib/
![Page 12: Илья Евлампиев - Grinder](https://reader031.vdocuments.net/reader031/viewer/2022012400/54b6a5f64a795969088b4717/html5/thumbnails/12.jpg)
Схема нагрузочного тестирования
![Page 13: Илья Евлампиев - Grinder](https://reader031.vdocuments.net/reader031/viewer/2022012400/54b6a5f64a795969088b4717/html5/thumbnails/13.jpg)
The Grider: Property File
![Page 14: Илья Евлампиев - Grinder](https://reader031.vdocuments.net/reader031/viewer/2022012400/54b6a5f64a795969088b4717/html5/thumbnails/14.jpg)
The Grider: Property File
grinder.processes grinder.threads grinder.runs grinder.processIncrement grinder.processIncrementInterval grinder.initialProcesses grinder.duration grinder.script grinder.initialSleepTime grinder.sleepTimeVariation grinder.sleepTimeFactor
![Page 15: Илья Евлампиев - Grinder](https://reader031.vdocuments.net/reader031/viewer/2022012400/54b6a5f64a795969088b4717/html5/thumbnails/15.jpg)
The Grinder: UI
![Page 16: Илья Евлампиев - Grinder](https://reader031.vdocuments.net/reader031/viewer/2022012400/54b6a5f64a795969088b4717/html5/thumbnails/16.jpg)
Workflow: Запись скрипта
![Page 17: Илья Евлампиев - Grinder](https://reader031.vdocuments.net/reader031/viewer/2022012400/54b6a5f64a795969088b4717/html5/thumbnails/17.jpg)
Пример скрипта
![Page 18: Илья Евлампиев - Grinder](https://reader031.vdocuments.net/reader031/viewer/2022012400/54b6a5f64a795969088b4717/html5/thumbnails/18.jpg)
Jython
“an implementation of the Python programming language written in Java”
Python Syntax + ability to use Java classes Python написанный на Java, т.е. с
возможностью использовать синтаксис Python и библиотеки Java
![Page 19: Илья Евлампиев - Grinder](https://reader031.vdocuments.net/reader031/viewer/2022012400/54b6a5f64a795969088b4717/html5/thumbnails/19.jpg)
Содержимое скрипта
Импорт Java библиотек Определение переменных (HTTP
headers/connection settings) Определение прокси-объектов для Test Группировка отдельных тестов в функции
Test group Вызов каждой тестовой функции из главной
функции __call__(self)
![Page 20: Илья Евлампиев - Grinder](https://reader031.vdocuments.net/reader031/viewer/2022012400/54b6a5f64a795969088b4717/html5/thumbnails/20.jpg)
Пример лог файла
![Page 21: Илья Евлампиев - Grinder](https://reader031.vdocuments.net/reader031/viewer/2022012400/54b6a5f64a795969088b4717/html5/thumbnails/21.jpg)
Grinder Analyzer
Специальный питоновский скрипт для анализа логов, записанных с помощью Grinder HTTP Plugin
необходима установка Jython/Python
![Page 22: Илья Евлампиев - Grinder](https://reader031.vdocuments.net/reader031/viewer/2022012400/54b6a5f64a795969088b4717/html5/thumbnails/22.jpg)
Пример отчета
![Page 23: Илья Евлампиев - Grinder](https://reader031.vdocuments.net/reader031/viewer/2022012400/54b6a5f64a795969088b4717/html5/thumbnails/23.jpg)
Пример отчета
![Page 24: Илья Евлампиев - Grinder](https://reader031.vdocuments.net/reader031/viewer/2022012400/54b6a5f64a795969088b4717/html5/thumbnails/24.jpg)
Пример отчета
![Page 25: Илья Евлампиев - Grinder](https://reader031.vdocuments.net/reader031/viewer/2022012400/54b6a5f64a795969088b4717/html5/thumbnails/25.jpg)
Вопросы?
End