Компонентная среда разработки инструментария нагрузочного тестирования Евгений Рачинский. СПбГУ в сотрудничестве с Siemens Corporate Technology СПбГ У.

Презентация:



Advertisements
Похожие презентации
Нагрузочное тестирование с помощью Grinder Илья Евлампиев Exigen Services.
Advertisements

Автоматизация тестирования. План 1.Применение автоматизированного тестирования 2.Выбор инструментария 3.Процесс автоматизации (IBM Rational) GUI тестирование.
3. СОЗДАНИЕ ТЕСТОВ НА JMETER Разработка Моделирование Запуск.
Team System - фреймворк для автоматизации тестирования от Microsoft Футорняк Елена Apriorit Сообщество Тестировщиков Днепропетровска 29/09/2011.
Андреев Андрей Александрович ИССЛЕДОВАНИЕ УСТОЙЧИВОСТИ СЕРВЕРНЫХ ПРИЛОЖЕНИЙ Тамбовский государственный университет им. Г.Р. Державина Институт математики,
АлтГТУ им И. И. Ползунова Проектирование и реализация каркаса распределенной системы мониторинга и диспетчеризации процессов гетерогенной среды Данил Старовойтов,
Платформа J2EE Сервис: Java Naming Directory (JNDI) – универсальный сервис хранения объектов в иерархической структуре имен (аналогично файловой системе)
АлтГТУ им И. И. Ползунова Проектирование и реализация каркаса распределенной системы мониторинга и диспетчеризации процессов гетерогенной среды Данил Старовойтов,
Web - сервисы. Веб-служба, веб-сервис (англ. web service) идентифицируемая веб-адресом программная система со стандартизированными интерфейсами.англ.веб-адресоминтерфейсами.
АлтГТУ им И. И. Ползунова Проектирование и реализация каркаса распределенной системы мониторинга и диспетчеризации процессов гетерогенной среды Данил Старовойтов,
Нагрузочное тестирование Рыбак Игорь. Глобальная цель тестирования Прибыль Довольный пользователь Качество продукта.
Платформа J2EE Сервис: Java Naming Directory (JNDI) – универсальный сервис хранения объектов в иерархической структуре имен (аналогично файловой системе)
Тестирование производительности. Содержание лекции Зачем нужно тестировать производительность? Виды тестирования производительности Нагрузочное тестирование.
Рассматриваемые темы Технология EJB Типы EJB Вызов EJB Сборка и развертывание EJB- приложения 2-1.
Опыт проведения нагрузочного тестирования DocsVision Виктор Сущев DocsVision Директор по консалтингу.
Построение системы мониторинга информационной среды Грунау Андрей Борисович 20/02/08
Рогов Павел (271 ПИ ) Назаренко Дмитрий (272 ПИ ) Научный руководитель : Гринкруг Е. М. Курсовая работа. Клиент - серверное Android- приложение для планирования.
Selenium: Начало.. Особенности WEB-приложений Множество браузеров, отличающиеся реализацией Отсутсвие строгих правил в HTML Различные конфигурации на.
Белым по черному или альтернативное использование unit-тестирования.
Мониторинг в Mail.Ru Group Лихобабин Сергей Руководитель отдела внутренней разработки.
Транксрипт:

Компонентная среда разработки инструментария нагрузочного тестирования Евгений Рачинский. СПбГУ в сотрудничестве с Siemens Corporate Technology СПбГ У

Нагрузочное тестирование Изучение поведения многопользовательской системы под нагрузкой Цели: – Оценка характеристик производительности системы под нагрузкой – Поиск узких мест в системе – Планирование производительности Средства – Моделирование нагрузки – Инструментарий генерации нагрузки и измерения показателей – Методы анализа результатов

Инструментарий Существующие средства нагрузочного тестирования не обладают достаточной гибкостью и адаптивностью Решение: создание платформы для разработки инструментария нагрузочного тестирования Области применения – Нагрузочное и стресс тестирование с использованием нестандартных протоколов – Поддержка статистических методов в нагрузочном тестировании – Автоматизация нагрузочного тестирования – Поддержка continues integration process

Типовая архитектура Load injectors Controller Analysis Scenario definition Workload definition SUT Load Control Measurements Input Output Monitoring

Области расширения Компонентная среда (OSGi/Java) Архитектура основанная на plug-ins API, точки расширения Platform/ framework Scenario Workload Protocol and measurements Statistics and analysis Load test management

Сценарий Симулирует поведение пользователей Java классы –Сценарий –Транзакция (шаг) –Запрос Иерархичность, модульность Идентификация частей сценария Генерация кода сценариев Отладка (Eclipse) Scenario Transaction Request 1 * 1 *

Сценарий (пример) public class Service1Scenario extends WebScenario { Transaction1 transaction1 = new Transaction1(); Transaction2 transaction2 = new Transaction2(); public void run() { runTransaction(transaction1); sleep(1000); runTransaction(transaction2); } public class Transaction1 extends WebTransaction { Request1 request1 = new Request1(); public void run() { runRequest(request1); } public class Request1 extends WebRequest { public void run() { HttpResponse response = null; response = getContext(). getClient().execute(url ); }

Нагрузка Request time Virtual users Think time time Request rate... Virtual users SUT λµ Нагрузка это частота обращений к системе Определяется через –количество виртуальных пользователей И –среднее значение и распределение времени ответа

Определение нагрузки (пример) int maximumVirtualUsers = 15; int incrementInterval = 60; int incrementVirtaulUsersBy = 1; public IThinkTime getThinkTimeOnTime(long time) { return new ConstantThinkTime(1000); } public int getVirtualUserNumberOnTime(long time) { int vu = Math.min( maximumVirtualUsers, (int)((time/incrementInterval)+1)*incrementVirtaulUsersBy ); return vu; } int Amplitude = 5; //virtual users double Frequency = 1/60; //virtual users per second int VerticalShift = 10; //oscillate around public IThinkTime getThinkTimeOnTime(long time) { return new ExponentialThinkTime(1000); } public int getVirtualUserNumberOnTime(long time) { return (int)(VerticalShift + Amplitude*Math.sin(Frequency*time)); }

Поддержка сетевых протоколов и измерений Любой протокол, имеющий клиентcкие Java библиотеки Регистрация значений: –Время исполнения –Ошибки протокола/приложения –Проткол-специфические измерения (размер пакета, время установления соединения, DNS время и т.п.) Инструментирование библиотек протоколов Поддержка протоколов интегрируется в базовые классы сценариев

Run-time статистика и журналирование Измерения собираются в статистики: –Среднее значение –Частота событий –Счетчики –Определенная пользователем Масштабирование значений –Среднее значение на разных масштабах времени Расширяемый «движок» статистики –Filter/Pipe design pattern Журналирование –Набор CSV файлов, Apache Derby –Формат определен протоколом

Управление тестом Пользовательский интерфейс – Eclipse RCP UI – Command line Подготовка теста –Eclipse Java IDE, PDE –Рабочее окружение Eclipse Исполнение теста и мониторинг –Графики статистики Расширяемость –Eclipse plugin-ins –Chart API (JFree chart) –ANT tasks Results export Load test controller Load test definition

Компоненты платформы Agent container Scenario manager Virtual users manager Statistics service Log service Experiment session Service Controller container Workload manager Experiment workflow Remote agent management Run time statistics processing Results Repository Scenario Workload Statistics filters definition Network protocol libraries Log format definition Test artifacts (OSGi bundles ) Remote deploy Legend: Platform ServiceDeployable component

Замечания по реализации Высокая производительность агентов Сложность точного измерения времени в Java ( msec, nanosec ) Синхронизация потоков виртуальных пользователей Синхронизация времени в распределенной среде Интенсивный поток данных (измерений) Сложность использование Java аннотаций и рефлексии

Приложения платформы Стандартное нагрузочное тестирование –HTTP, SOAP, RMI Сложные сценарии –Различные протоколы в одном сценарии –Симуляция вероятностного поведения пользователя (СBMG) –Генерация кода сценариев (из трасс или моделей) Нагрузочное тестирование и регулярная сборка –ANT task для определения и запуска теста End Start

Приложения платформы (2) Генерация заданной нагрузки –Пуассоновский поток запросов Автоуправление нагрузкой в зависимости от текущих показателей производительности –Измерение среднего значения времени ответа с заданным доверительным интервалом –Автоматический поск максимальной пропускной способности системы (max TPS) Симуляция пульсирующей нагрузки

Максимальная пропускная способность системы Load Response time Load Throughput (TPS) Average response timeThroughput (TPS)

Анализ результатов Пакеты статистической обработки –S-Plus (R statistics) Д исперсионный анализ –сравнение производительности альтернативных конфигураций системы Корреляционный анализ Вывод параметров аналитических моделей (очереди) Построение моделей «черного ящика»

Спасибо за внимание!

Backup slides

Descriptive statistics example – KPI VS. load

Тестирование производительности распределенных систем Web server Application Server Database Authentication Service LDAP Tickets Reservation Service Доступно для тестирования под нагрузкой Недоступно для тестирования под нагрузкой

Approach overview – Perform load test and collect measurements Windmill + dynamic workload – Determine response time distribution Statistical tests Lognormal, Gamma, Weibull distributions – Fit response time distribution parameters Non-parametric models (cubic splines) – Setup runtime simulator Analytical or table representation of the model – Performance load test of a SUT

Results comparison SUT with real service SUT with emulated service Legend:

time