Нагрузочное тестирование с помощью Grinder

Содержание

Слайд 2

Нагрузочное тестирование… определение того, как быстро работает система при определенной нагрузке.

Нагрузочное тестирование…

определение того, как быстро работает система при определенной нагрузке. Позволяет

также определить такие параметры системы как расширяемость и надежность.
Вкратце, это:
Имитация реальной нагрузки на систему
Выполнение тестов
Анализ результатов
Слайд 3

Цели нагрузочного тестирования Недопущение «падения» системы Обойтись без излишних затрат на

Цели нагрузочного тестирования

Недопущение «падения» системы
Обойтись без излишних затрат на «железо»
Снизить стоимость

продукта
Облегчить обслуживание
Продемонстрировать заказчику, что система удовлетворяет требованиям
Слайд 4

Стратегии нагрузочного тестирования Поиск «узкого горла» Оптимизация Сравнение альтернативных вариантов Определение максимального объема данных Чистый интерес

Стратегии нагрузочного тестирования

Поиск «узкого горла»
Оптимизация
Сравнение альтернативных вариантов
Определение максимального объема данных
Чистый интерес

Слайд 5

Типы нагрузочного тестирования Нагрузочное тестирование (load testing) Тестирование отказоустойчивости (failover testing)

Типы нагрузочного тестирования

Нагрузочное тестирование (load testing)
Тестирование отказоустойчивости (failover testing)
Стресс-тестирование (stress testing)
Целевые

испытания (targeted infrastructure test)
Объемное тестирование (volume testing)
Тестирование стабильности (endurance testing)
Тестирование производительности (performance testing)
Тестирование пропускной способности сети (network sensitivity testing)
Слайд 6

Словарь Vuser – виртуальный пользователь Load generator (agent) – генератор нагрузки

Словарь

Vuser – виртуальный пользователь
Load generator (agent) – генератор нагрузки
Process - процесс
Thread

- поток
Run - прогон
Ramp-up – «разброс»
Load controller – контроллер нагрузки
Слайд 7

Схема

Схема

Слайд 8

Метрики Времена отклика + Построение графиков производительности + Пропускная способность +

Метрики

Времена отклика +
Построение графиков производительности +
Пропускная способность +
Надежность (MTBF - Mean

Time Between Failures)
Доступность (какой процент времени сервис лежал)
Загрузка процессора
Загрузка памяти
Сетевой траффик +
Особые показатели сервера приложений
Особые показатели сервера баз данных
Запросы в секунду +
Слайд 9

Что нужно знать о каждой метрике? Среднее значение Разброс Максимальное и

Что нужно знать о каждой метрике?

Среднее значение
Разброс
Максимальное и минимальное достигнутое значение
Перцентиль

(уложившиеся около среднего 90% результатов)
Все распределение
Упавшие запросы (процент)
Слайд 10

The Grinder 100% Java (любая ОС с поддержкой J2SE) Протоколы HTTP,

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/

The Grinder: Настройка среды

Java (JVM)
Jython (add to PATH)
Add external JARs to

Grinder /lib/
Слайд 12

Схема нагрузочного тестирования

Схема нагрузочного тестирования

Слайд 13

The Grider: Property File

The Grider: Property File

Слайд 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

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

Слайд 15

The Grinder: UI

The Grinder: UI

Слайд 16

Workflow: Запись скрипта

Workflow: Запись скрипта

Слайд 17

Пример скрипта

Пример скрипта

Слайд 18

Jython “an implementation of the Python programming language written in Java”

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) Определение

Содержимое скрипта

Импорт Java библиотек
Определение переменных (HTTP headers/connection settings)
Определение прокси-объектов для Test
Группировка

отдельных тестов в функции Test group
Вызов каждой тестовой функции из главной функции __call__(self)
Слайд 20

Пример лог файла

Пример лог файла

Слайд 21

Grinder Analyzer Специальный питоновский скрипт для анализа логов, записанных с помощью

Grinder Analyzer

Специальный питоновский скрипт для анализа логов, записанных с помощью

Grinder HTTP Plugin
необходима установка Jython/Python
Слайд 22

Пример отчета


Пример отчета

Слайд 23

Пример отчета

Пример отчета

Слайд 24

Пример отчета

Пример отчета