Слайд 2 Нагрузочное тестирование…
определение того, как быстро работает система при определенной нагрузке. Позволяет также
определить такие параметры системы как расширяемость и надежность.
Вкратце, это:
Имитация реальной нагрузки на систему
Выполнение тестов
Анализ результатов
Слайд 3 Цели нагрузочного тестирования
Недопущение «падения» системы
Обойтись без излишних затрат на «железо»
Снизить стоимость продукта
Облегчить
обслуживание
Продемонстрировать заказчику, что система удовлетворяет требованиям
Слайд 4 Стратегии нагрузочного тестирования
Поиск «узкого горла»
Оптимизация
Сравнение альтернативных вариантов
Определение максимального объема данных
Чистый интерес
Слайд 5 Типы нагрузочного тестирования
Нагрузочное тестирование (load testing)
Тестирование отказоустойчивости (failover testing)
Стресс-тестирование (stress testing)
Целевые испытания
(targeted infrastructure test)
Объемное тестирование (volume testing)
Тестирование стабильности (endurance testing)
Тестирование производительности (performance testing)
Тестирование пропускной способности сети (network sensitivity testing)
Слайд 6 Словарь
Vuser – виртуальный пользователь
Load generator (agent) – генератор нагрузки
Process - процесс
Thread -
поток
Run - прогон
Ramp-up – «разброс»
Load controller – контроллер нагрузки
Слайд 8 Метрики
Времена отклика +
Построение графиков производительности +
Пропускная способность +
Надежность (MTBF - Mean Time
Between Failures)
Доступность (какой процент времени сервис лежал)
Загрузка процессора
Загрузка памяти
Сетевой траффик +
Особые показатели сервера приложений
Особые показатели сервера баз данных
Запросы в секунду +
Слайд 9 Что нужно знать о каждой метрике?
Среднее значение
Разброс
Максимальное и минимальное достигнутое значение
Перцентиль (уложившиеся
около среднего 90% результатов)
Все распределение
Упавшие запросы (процент)
Слайд 10 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 - дебаггинг
Бесплатный ☺
Слайд 11 The Grinder: Настройка среды
Java (JVM)
Jython (add to PATH)
Add external JARs to Grinder
/lib/
Слайд 12 Схема нагрузочного тестирования
Слайд 14 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
Слайд 18 Jython
“an implementation of the Python programming language written in Java”
Python Syntax +
ability to use Java classes
Python написанный на Java, т.е. с возможностью использовать синтаксис Python и библиотеки Java
Слайд 19 Содержимое скрипта
Импорт Java библиотек
Определение переменных (HTTP headers/connection settings)
Определение прокси-объектов для Test
Группировка отдельных
тестов в функции Test group
Вызов каждой тестовой функции из главной функции __call__(self)
Слайд 21 Grinder Analyzer
Специальный питоновский скрипт для анализа логов, записанных с помощью Grinder
HTTP Plugin
необходима установка Jython/Python