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

Содержание

Слайд 2

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

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

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

Слайд 3

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

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

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

Слайд 4

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

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

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

Слайд 5

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

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

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

Слайд 6

Словарь

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

Словарь Vuser – виртуальный пользователь Load generator (agent) – генератор нагрузки Process
поток
Run - прогон
Ramp-up – «разброс»
Load controller – контроллер нагрузки

Слайд 7

Схема

Схема

Слайд 8

Метрики

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

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

Слайд 9

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

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

Что нужно знать о каждой метрике? Среднее значение Разброс Максимальное и минимальное
около среднего 90% результатов)
Все распределение
Упавшие запросы (процент)

Слайд 10

The Grinder

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

The Grinder 100% Java (любая ОС с поддержкой J2SE) Протоколы HTTP, HTTPS
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

The Grinder: Настройка среды Java (JVM) Jython (add to PATH) Add external JARs to Grinder /lib/
/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”
Python Syntax +

Jython “an implementation of the Python programming language written in Java” Python
ability to use Java classes
Python написанный на Java, т.е. с возможностью использовать синтаксис Python и библиотеки Java

Слайд 19

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

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

Содержимое скрипта Импорт Java библиотек Определение переменных (HTTP headers/connection settings) Определение прокси-объектов
тестов в функции Test group
Вызов каждой тестовой функции из главной функции __call__(self)

Слайд 20

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

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

Слайд 21

Grinder Analyzer

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

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

Слайд 22


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

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

Слайд 23

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

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

Слайд 24

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

Пример отчета
Имя файла: Нагрузочное-тестирование-с-помощью-Grinder.pptx
Количество просмотров: 224
Количество скачиваний: 0