SlideShare ist ein Scribd-Unternehmen logo
1 von 25
Компонентная среда разработки инструментария нагрузочного тестирования Евгений Рачинский. СПбГУ в сотрудничестве с  Siemens Corporate Technology СПбГУ
Нагрузочное тестирование ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Инструментарий ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Типовая архитектура Load Control Measurements Input Output Monitoring Load injectors Controller Analysis Scenario definition Workload definition SUT
Области расширения ,[object Object],[object Object],[object Object],Platform/ framework Scenario Workload Protocol and measurements Statistics and analysis Load test management
Сценарий ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],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   ); } }
Нагрузка ,[object Object],[object Object],[object Object],[object Object],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)); }
Поддержка сетевых протоколов и измерений ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Run -time  статистика и журналирование ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Управление тестом ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Results export Load test controller Load test definition
Компоненты   платформы Scenario Workload Statistics filters  definition Network protocol  libraries Log format definition T est artifacts (OSGi bundles ) Remote deploy Legend : Platform Service Deployable component 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
Замечания по реализации ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Приложения платформы ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],0.9 0.3 0.7 1.0 0.5 1.0 0.5 0.1 End Start
Приложения платформы (2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Максимальная пропускная способность системы Load Response time Load Throughput (TPS) Average response time  Throughput  ( TPS)
Анализ результатов  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Спасибо за внимание!
Backup slides
Descriptive statistics example – KPI VS. load
Тестирование производительности распределенных систем Web server Application  Server Application Server Database Authentication Service LDAP Tickets Reservation Service Доступно для тестирования под нагрузкой Недоступно для тестирования под нагрузкой
Approach overview ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Results comparison SUT with real service SUT with emulated service Legend:
time

Weitere ähnliche Inhalte

Was ist angesagt?

6 лекция. тестирование производительности
 6 лекция. тестирование производительности 6 лекция. тестирование производительности
6 лекция. тестирование производительностиvyacheslavmaslov
 
Григорий Липин: Автоматизация нагрузочного тестирования
Григорий Липин: Автоматизация нагрузочного тестированияГригорий Липин: Автоматизация нагрузочного тестирования
Григорий Липин: Автоматизация нагрузочного тестированияYandex
 
6 кареев киров
6 кареев киров6 кареев киров
6 кареев кировqasib
 
Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов ...
Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов ...Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов ...
Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов ...Ontico
 
Распределенные системы в Одноклассниках / Олег Анастасьев (Одноклассники)
Распределенные системы в Одноклассниках / Олег Анастасьев (Одноклассники)Распределенные системы в Одноклассниках / Олег Анастасьев (Одноклассники)
Распределенные системы в Одноклассниках / Олег Анастасьев (Одноклассники)Ontico
 

Was ist angesagt? (7)

6 лекция. тестирование производительности
 6 лекция. тестирование производительности 6 лекция. тестирование производительности
6 лекция. тестирование производительности
 
Григорий Липин: Автоматизация нагрузочного тестирования
Григорий Липин: Автоматизация нагрузочного тестированияГригорий Липин: Автоматизация нагрузочного тестирования
Григорий Липин: Автоматизация нагрузочного тестирования
 
Автоматическое обновление аннотации новостного кластера
Автоматическое обновление аннотации новостного кластераАвтоматическое обновление аннотации новостного кластера
Автоматическое обновление аннотации новостного кластера
 
6 кареев киров
6 кареев киров6 кареев киров
6 кареев киров
 
лекция 2
лекция 2лекция 2
лекция 2
 
Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов ...
Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов ...Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов ...
Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов ...
 
Распределенные системы в Одноклассниках / Олег Анастасьев (Одноклассники)
Распределенные системы в Одноклассниках / Олег Анастасьев (Одноклассники)Распределенные системы в Одноклассниках / Олег Анастасьев (Одноклассники)
Распределенные системы в Одноклассниках / Олег Анастасьев (Одноклассники)
 

Andere mochten auch

Prologue 2012 SDF
Prologue   2012 SDFPrologue   2012 SDF
Prologue 2012 SDFSoko Guree
 
Introduction into OSGi
Introduction into OSGiIntroduction into OSGi
Introduction into OSGiPeter Kriens
 
Concierge - Bringing OSGi (back) to Embedded Devices
Concierge - Bringing OSGi (back) to Embedded DevicesConcierge - Bringing OSGi (back) to Embedded Devices
Concierge - Bringing OSGi (back) to Embedded DevicesJan S. Rellermeyer
 
Modularity with OSGi
Modularity with OSGiModularity with OSGi
Modularity with OSGiPeter Kriens
 
Системы работы с информацией . Инструменты? Протезы? Тренажеры? Компьютерные ...
Системы работы с информацией. Инструменты? Протезы? Тренажеры? Компьютерные ...Системы работы с информацией. Инструменты? Протезы? Тренажеры? Компьютерные ...
Системы работы с информацией . Инструменты? Протезы? Тренажеры? Компьютерные ...aivanoff
 
Modularity with OSGi
Modularity with OSGiModularity with OSGi
Modularity with OSGiPeter Kriens
 
Application Developer Days 2011 - Teamlead - Писать плагины проще простого!
Application Developer Days 2011 - Teamlead - Писать плагины проще простого!Application Developer Days 2011 - Teamlead - Писать плагины проще простого!
Application Developer Days 2011 - Teamlead - Писать плагины проще простого!Teamlead
 
Liferay & Big Data Dev Con 2014
Liferay & Big Data Dev Con 2014Liferay & Big Data Dev Con 2014
Liferay & Big Data Dev Con 2014Miguel Pastor
 
Field injection, type safe configuration, and more new goodies in Declarative...
Field injection, type safe configuration, and more new goodies in Declarative...Field injection, type safe configuration, and more new goodies in Declarative...
Field injection, type safe configuration, and more new goodies in Declarative...bjhargrave
 
How to manage software complexity with OSGi
How to manage software complexity with OSGiHow to manage software complexity with OSGi
How to manage software complexity with OSGiPeter Kriens
 
Dynamically assembled REST Microservices using JAX-RS and... Microservices? -...
Dynamically assembled REST Microservices using JAX-RS and... Microservices? -...Dynamically assembled REST Microservices using JAX-RS and... Microservices? -...
Dynamically assembled REST Microservices using JAX-RS and... Microservices? -...mfrancis
 
OSGi toolchain from the ground up - Matteo Rulli
OSGi toolchain from the ground up - Matteo RulliOSGi toolchain from the ground up - Matteo Rulli
OSGi toolchain from the ground up - Matteo Rullimfrancis
 
Eclipse + Maven + OSGi has never been so easy - Atllia Kiss
Eclipse + Maven + OSGi has never been so easy - Atllia KissEclipse + Maven + OSGi has never been so easy - Atllia Kiss
Eclipse + Maven + OSGi has never been so easy - Atllia Kissmfrancis
 
Moved to https://slidr.io/azzazzel/software-craftsmanship-in-the-era-of-softw...
Moved to https://slidr.io/azzazzel/software-craftsmanship-in-the-era-of-softw...Moved to https://slidr.io/azzazzel/software-craftsmanship-in-the-era-of-softw...
Moved to https://slidr.io/azzazzel/software-craftsmanship-in-the-era-of-softw...Milen Dyankov
 
WebSockets and Equinox OSGi in a Servlet Container - Nedelcho Delchev
WebSockets and Equinox OSGi in a Servlet Container - Nedelcho DelchevWebSockets and Equinox OSGi in a Servlet Container - Nedelcho Delchev
WebSockets and Equinox OSGi in a Servlet Container - Nedelcho Delchevmfrancis
 
It's beautiful enRoute - Paul Fraser
It's beautiful enRoute - Paul FraserIt's beautiful enRoute - Paul Fraser
It's beautiful enRoute - Paul Frasermfrancis
 
Microservices and OSGi: Better together?
Microservices and OSGi: Better together?Microservices and OSGi: Better together?
Microservices and OSGi: Better together?Graham Charters
 
Dockerizing apps for the Deployment Platform of the Month with OSGi - David B...
Dockerizing apps for the Deployment Platform of the Month with OSGi - David B...Dockerizing apps for the Deployment Platform of the Month with OSGi - David B...
Dockerizing apps for the Deployment Platform of the Month with OSGi - David B...mfrancis
 
Use Case: Building OSGi Enterprise Applications (QCon 14)
Use Case: Building OSGi Enterprise Applications (QCon 14)Use Case: Building OSGi Enterprise Applications (QCon 14)
Use Case: Building OSGi Enterprise Applications (QCon 14)Carsten Ziegeler
 
Евгений Бова: "Modularity in Java: introduction to Jigsaw through the prism o...
Евгений Бова: "Modularity in Java: introduction to Jigsaw through the prism o...Евгений Бова: "Modularity in Java: introduction to Jigsaw through the prism o...
Евгений Бова: "Modularity in Java: introduction to Jigsaw through the prism o...Anna Shymchenko
 

Andere mochten auch (20)

Prologue 2012 SDF
Prologue   2012 SDFPrologue   2012 SDF
Prologue 2012 SDF
 
Introduction into OSGi
Introduction into OSGiIntroduction into OSGi
Introduction into OSGi
 
Concierge - Bringing OSGi (back) to Embedded Devices
Concierge - Bringing OSGi (back) to Embedded DevicesConcierge - Bringing OSGi (back) to Embedded Devices
Concierge - Bringing OSGi (back) to Embedded Devices
 
Modularity with OSGi
Modularity with OSGiModularity with OSGi
Modularity with OSGi
 
Системы работы с информацией . Инструменты? Протезы? Тренажеры? Компьютерные ...
Системы работы с информацией. Инструменты? Протезы? Тренажеры? Компьютерные ...Системы работы с информацией. Инструменты? Протезы? Тренажеры? Компьютерные ...
Системы работы с информацией . Инструменты? Протезы? Тренажеры? Компьютерные ...
 
Modularity with OSGi
Modularity with OSGiModularity with OSGi
Modularity with OSGi
 
Application Developer Days 2011 - Teamlead - Писать плагины проще простого!
Application Developer Days 2011 - Teamlead - Писать плагины проще простого!Application Developer Days 2011 - Teamlead - Писать плагины проще простого!
Application Developer Days 2011 - Teamlead - Писать плагины проще простого!
 
Liferay & Big Data Dev Con 2014
Liferay & Big Data Dev Con 2014Liferay & Big Data Dev Con 2014
Liferay & Big Data Dev Con 2014
 
Field injection, type safe configuration, and more new goodies in Declarative...
Field injection, type safe configuration, and more new goodies in Declarative...Field injection, type safe configuration, and more new goodies in Declarative...
Field injection, type safe configuration, and more new goodies in Declarative...
 
How to manage software complexity with OSGi
How to manage software complexity with OSGiHow to manage software complexity with OSGi
How to manage software complexity with OSGi
 
Dynamically assembled REST Microservices using JAX-RS and... Microservices? -...
Dynamically assembled REST Microservices using JAX-RS and... Microservices? -...Dynamically assembled REST Microservices using JAX-RS and... Microservices? -...
Dynamically assembled REST Microservices using JAX-RS and... Microservices? -...
 
OSGi toolchain from the ground up - Matteo Rulli
OSGi toolchain from the ground up - Matteo RulliOSGi toolchain from the ground up - Matteo Rulli
OSGi toolchain from the ground up - Matteo Rulli
 
Eclipse + Maven + OSGi has never been so easy - Atllia Kiss
Eclipse + Maven + OSGi has never been so easy - Atllia KissEclipse + Maven + OSGi has never been so easy - Atllia Kiss
Eclipse + Maven + OSGi has never been so easy - Atllia Kiss
 
Moved to https://slidr.io/azzazzel/software-craftsmanship-in-the-era-of-softw...
Moved to https://slidr.io/azzazzel/software-craftsmanship-in-the-era-of-softw...Moved to https://slidr.io/azzazzel/software-craftsmanship-in-the-era-of-softw...
Moved to https://slidr.io/azzazzel/software-craftsmanship-in-the-era-of-softw...
 
WebSockets and Equinox OSGi in a Servlet Container - Nedelcho Delchev
WebSockets and Equinox OSGi in a Servlet Container - Nedelcho DelchevWebSockets and Equinox OSGi in a Servlet Container - Nedelcho Delchev
WebSockets and Equinox OSGi in a Servlet Container - Nedelcho Delchev
 
It's beautiful enRoute - Paul Fraser
It's beautiful enRoute - Paul FraserIt's beautiful enRoute - Paul Fraser
It's beautiful enRoute - Paul Fraser
 
Microservices and OSGi: Better together?
Microservices and OSGi: Better together?Microservices and OSGi: Better together?
Microservices and OSGi: Better together?
 
Dockerizing apps for the Deployment Platform of the Month with OSGi - David B...
Dockerizing apps for the Deployment Platform of the Month with OSGi - David B...Dockerizing apps for the Deployment Platform of the Month with OSGi - David B...
Dockerizing apps for the Deployment Platform of the Month with OSGi - David B...
 
Use Case: Building OSGi Enterprise Applications (QCon 14)
Use Case: Building OSGi Enterprise Applications (QCon 14)Use Case: Building OSGi Enterprise Applications (QCon 14)
Use Case: Building OSGi Enterprise Applications (QCon 14)
 
Евгений Бова: "Modularity in Java: introduction to Jigsaw through the prism o...
Евгений Бова: "Modularity in Java: introduction to Jigsaw through the prism o...Евгений Бова: "Modularity in Java: introduction to Jigsaw through the prism o...
Евгений Бова: "Modularity in Java: introduction to Jigsaw through the prism o...
 

Ähnlich wie Компонентная среда разработки инструментария нагрузочного тестирования

Илья Евлампиев - Grinder
Илья Евлампиев - GrinderИлья Евлампиев - Grinder
Илья Евлампиев - GrinderAlexey Chumagin
 
АНТОН СЕРПУТЬКО «Start performance testing from scratch» QADay 2019
АНТОН СЕРПУТЬКО «Start performance testing from scratch» QADay 2019АНТОН СЕРПУТЬКО «Start performance testing from scratch» QADay 2019
АНТОН СЕРПУТЬКО «Start performance testing from scratch» QADay 2019GoQA
 
Нагрузочное тестирование API. Как летать, а не ползать?
Нагрузочное тестирование API. Как летать, а не ползать?Нагрузочное тестирование API. Как летать, а не ползать?
Нагрузочное тестирование API. Как летать, а не ползать?IT61
 
АНТОН СЕРПУТЬКО «Start performance testing from scratch» QADay 2019
АНТОН СЕРПУТЬКО «Start performance testing from scratch» QADay 2019АНТОН СЕРПУТЬКО «Start performance testing from scratch» QADay 2019
АНТОН СЕРПУТЬКО «Start performance testing from scratch» QADay 2019GoQA
 
Дело тестера боится: как в опытных руках могут заиграть Java и TestNg
Дело тестера боится: как в опытных руках могут заиграть Java и TestNgДело тестера боится: как в опытных руках могут заиграть Java и TestNg
Дело тестера боится: как в опытных руках могут заиграть Java и TestNgIT61
 
"Опыт создания системы управления сборкой и тестированием" (полная)
"Опыт создания системы управления сборкой и тестированием" (полная)"Опыт создания системы управления сборкой и тестированием" (полная)
"Опыт создания системы управления сборкой и тестированием" (полная)SPB SQA Group
 
Маргарита Сафарова - Аудит процессов тестирования при смене проектной команды
Маргарита Сафарова - Аудит процессов тестирования при смене проектной командыМаргарита Сафарова - Аудит процессов тестирования при смене проектной команды
Маргарита Сафарова - Аудит процессов тестирования при смене проектной командыSQALab
 
TRAFFIC SIMULATOR
TRAFFIC SIMULATORTRAFFIC SIMULATOR
TRAFFIC SIMULATORsoft-point
 
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...yaevents
 
9.1 resource analysis.templ
9.1   resource analysis.templ9.1   resource analysis.templ
9.1 resource analysis.templNatalia Odegova
 
Нагрузочное тестирование JMeter Кожухов
Нагрузочное тестирование JMeter КожуховНагрузочное тестирование JMeter Кожухов
Нагрузочное тестирование JMeter КожуховИлья Кожухов
 
Тестирование ПО (лекция 3)
Тестирование ПО (лекция 3)Тестирование ПО (лекция 3)
Тестирование ПО (лекция 3)Igor Khmelnytskyy
 
вебинар взаимодействие Info watch traffic monitor c субд oracle
вебинар   взаимодействие  Info watch traffic monitor c субд oracleвебинар   взаимодействие  Info watch traffic monitor c субд oracle
вебинар взаимодействие Info watch traffic monitor c субд oracleIW_test
 
Ломаем (и строим) вместе
Ломаем (и строим) вместеЛомаем (и строим) вместе
Ломаем (и строим) вместеDmitry Evteev
 
Примеры быстрой разработки API на масштабируемом сервере приложений Impress д...
Примеры быстрой разработки API на масштабируемом сервере приложений Impress д...Примеры быстрой разработки API на масштабируемом сервере приложений Impress д...
Примеры быстрой разработки API на масштабируемом сервере приложений Impress д...Timur Shemsedinov
 
Как оценивать состояние проекта по разработке с помощью формальных метрик и о...
Как оценивать состояние проекта по разработке с помощью формальных метрик и о...Как оценивать состояние проекта по разработке с помощью формальных метрик и о...
Как оценивать состояние проекта по разработке с помощью формальных метрик и о...Dmitry Andreev
 
Оценка трудозатрат на тестирование в проектах сопровождения
Оценка трудозатрат на тестирование в проектах сопровожденияОценка трудозатрат на тестирование в проектах сопровождения
Оценка трудозатрат на тестирование в проектах сопровожденияSQALab
 
Разработка средств управления и мониторинга распределенной мультиагентной сис...
Разработка средств управления и мониторинга распределенной мультиагентной сис...Разработка средств управления и мониторинга распределенной мультиагентной сис...
Разработка средств управления и мониторинга распределенной мультиагентной сис...Valentin Bazarevsky
 

Ähnlich wie Компонентная среда разработки инструментария нагрузочного тестирования (20)

Илья Евлампиев - Grinder
Илья Евлампиев - GrinderИлья Евлампиев - Grinder
Илья Евлампиев - Grinder
 
АНТОН СЕРПУТЬКО «Start performance testing from scratch» QADay 2019
АНТОН СЕРПУТЬКО «Start performance testing from scratch» QADay 2019АНТОН СЕРПУТЬКО «Start performance testing from scratch» QADay 2019
АНТОН СЕРПУТЬКО «Start performance testing from scratch» QADay 2019
 
Нагрузочное тестирование API. Как летать, а не ползать?
Нагрузочное тестирование API. Как летать, а не ползать?Нагрузочное тестирование API. Как летать, а не ползать?
Нагрузочное тестирование API. Как летать, а не ползать?
 
АНТОН СЕРПУТЬКО «Start performance testing from scratch» QADay 2019
АНТОН СЕРПУТЬКО «Start performance testing from scratch» QADay 2019АНТОН СЕРПУТЬКО «Start performance testing from scratch» QADay 2019
АНТОН СЕРПУТЬКО «Start performance testing from scratch» QADay 2019
 
Simonova sql server-enginetesting
Simonova sql server-enginetestingSimonova sql server-enginetesting
Simonova sql server-enginetesting
 
Дело тестера боится: как в опытных руках могут заиграть Java и TestNg
Дело тестера боится: как в опытных руках могут заиграть Java и TestNgДело тестера боится: как в опытных руках могут заиграть Java и TestNg
Дело тестера боится: как в опытных руках могут заиграть Java и TestNg
 
Load testing with Tsung
Load testing with TsungLoad testing with Tsung
Load testing with Tsung
 
"Опыт создания системы управления сборкой и тестированием" (полная)
"Опыт создания системы управления сборкой и тестированием" (полная)"Опыт создания системы управления сборкой и тестированием" (полная)
"Опыт создания системы управления сборкой и тестированием" (полная)
 
Маргарита Сафарова - Аудит процессов тестирования при смене проектной команды
Маргарита Сафарова - Аудит процессов тестирования при смене проектной командыМаргарита Сафарова - Аудит процессов тестирования при смене проектной команды
Маргарита Сафарова - Аудит процессов тестирования при смене проектной команды
 
TRAFFIC SIMULATOR
TRAFFIC SIMULATORTRAFFIC SIMULATOR
TRAFFIC SIMULATOR
 
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
 
9.1 resource analysis.templ
9.1   resource analysis.templ9.1   resource analysis.templ
9.1 resource analysis.templ
 
Нагрузочное тестирование JMeter Кожухов
Нагрузочное тестирование JMeter КожуховНагрузочное тестирование JMeter Кожухов
Нагрузочное тестирование JMeter Кожухов
 
Тестирование ПО (лекция 3)
Тестирование ПО (лекция 3)Тестирование ПО (лекция 3)
Тестирование ПО (лекция 3)
 
вебинар взаимодействие Info watch traffic monitor c субд oracle
вебинар   взаимодействие  Info watch traffic monitor c субд oracleвебинар   взаимодействие  Info watch traffic monitor c субд oracle
вебинар взаимодействие Info watch traffic monitor c субд oracle
 
Ломаем (и строим) вместе
Ломаем (и строим) вместеЛомаем (и строим) вместе
Ломаем (и строим) вместе
 
Примеры быстрой разработки API на масштабируемом сервере приложений Impress д...
Примеры быстрой разработки API на масштабируемом сервере приложений Impress д...Примеры быстрой разработки API на масштабируемом сервере приложений Impress д...
Примеры быстрой разработки API на масштабируемом сервере приложений Impress д...
 
Как оценивать состояние проекта по разработке с помощью формальных метрик и о...
Как оценивать состояние проекта по разработке с помощью формальных метрик и о...Как оценивать состояние проекта по разработке с помощью формальных метрик и о...
Как оценивать состояние проекта по разработке с помощью формальных метрик и о...
 
Оценка трудозатрат на тестирование в проектах сопровождения
Оценка трудозатрат на тестирование в проектах сопровожденияОценка трудозатрат на тестирование в проектах сопровождения
Оценка трудозатрат на тестирование в проектах сопровождения
 
Разработка средств управления и мониторинга распределенной мультиагентной сис...
Разработка средств управления и мониторинга распределенной мультиагентной сис...Разработка средств управления и мониторинга распределенной мультиагентной сис...
Разработка средств управления и мониторинга распределенной мультиагентной сис...
 

Mehr von SQALab

Готовим стажировку
Готовим стажировкуГотовим стажировку
Готовим стажировкуSQALab
 
Куда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаКуда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаSQALab
 
Оптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиОптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиSQALab
 
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияАвтоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияSQALab
 
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...SQALab
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testingSQALab
 
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженКонфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженSQALab
 
Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииSQALab
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовSQALab
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовSQALab
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsSQALab
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеSQALab
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииSQALab
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеSQALab
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестированиеSQALab
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"SQALab
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовSQALab
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных системSQALab
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросSQALab
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...SQALab
 

Mehr von SQALab (20)

Готовим стажировку
Готовим стажировкуГотовим стажировку
Готовим стажировку
 
Куда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаКуда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщика
 
Оптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиОптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержки
 
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияАвтоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
 
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testing
 
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженКонфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нужен
 
Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихии
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советов
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестов
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIs
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджменте
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестирование
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектов
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных систем
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопрос
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
 

Компонентная среда разработки инструментария нагрузочного тестирования

  • 1. Компонентная среда разработки инструментария нагрузочного тестирования Евгений Рачинский. СПбГУ в сотрудничестве с Siemens Corporate Technology СПбГУ
  • 2.
  • 3.
  • 4. Типовая архитектура Load Control Measurements Input Output Monitoring Load injectors Controller Analysis Scenario definition Workload definition SUT
  • 5.
  • 6.
  • 7. Сценарий (пример) 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 ); } }
  • 8.
  • 9. Определение нагрузки (пример) 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)); }
  • 10.
  • 11.
  • 12.
  • 13. Компоненты платформы Scenario Workload Statistics filters definition Network protocol libraries Log format definition T est artifacts (OSGi bundles ) Remote deploy Legend : Platform Service Deployable component 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
  • 14.
  • 15.
  • 16.
  • 17. Максимальная пропускная способность системы Load Response time Load Throughput (TPS) Average response time Throughput ( TPS)
  • 18.
  • 21. Descriptive statistics example – KPI VS. load
  • 22. Тестирование производительности распределенных систем Web server Application Server Application Server Database Authentication Service LDAP Tickets Reservation Service Доступно для тестирования под нагрузкой Недоступно для тестирования под нагрузкой
  • 23.
  • 24. Results comparison SUT with real service SUT with emulated service Legend:
  • 25. time

Hinweis der Redaktion

  1. Уважаемые участники конференции, хочу попредведствовать вас и представиться. Меня зовут Евгений Рачинский. Последние четыре года я работаю аналитиком по вопросам инженерии производительности в компании Siemens в городе Мюнхене. Одновременно с этим Я работаю над диссертацией псвященной методам тестирования производительности клиент серверных систем. Отдел в котором я работю занимается консультациямивнутренних заказчиков, а так же занимается исследовательской Деятельностью.
  2. Сначала немного о производительности в целом. Воо бще вопросы производительноти были поднеяты достаточно Давно. В телекоме анализ и планирования производительности хорошо развиты уже напротяжении нескольких десятков Лет. Во всем виноват обычный телефон, в начале 20 ого века встал вопрос как заранее узнать сколько абонентов Сможет одновременно обработать станция и сколько в среднем придется ждать соединения. Математическая теория была разработана Агнером Эрлангом и называется теорией массового обслуживания. Поискав в интернете по клчючевым вопросам производительность Вы скорее в сего попадете на страницы по теории СМО. Для не подготовленного человека будет не просто понять как это Приложить в повседневной разработке ПО. Да и для подготовленного это не простая задача требующая серьезного опыта. Да простят меня математики, но наиболее популярные методы в повседневной разработке это профилирование и нагрузочной тестирование. В профилировании изучается время выполнения отдельных участков кода, а так же синхронизация и взаимодействие потоков. В Случае же нагрузочного тестирования нас интересует как ведет себя система (и ее компоненты) обслуживая много пользователей. Итак Тепрель про слайды Вообще в программной инженении термин Производительность и анализ производительности весьма универсален и применяется ко многим вещам, хотя у всех Этих вещей есть общее – время. Производительность это время! Среди этих вещей можно Выделить аналитической моделирование (сети очередей и симуляция), профилирование, проблемы синхронизации распределенных процессов, Так же сюда относят надежность систем.
  3. По этому вопросу можно долго рассуждать и спорить, но в целом я бы охарактеризовал Существующие средства как мотолитные продукты. Эти средства достаточно четко Указывают как и что нужно делать и соодветственно предоставляют поддержку только для своего КАК. Ну например моделирование нагрузки, в большестве средств предоставляется Довольно ограниченная возможность. Или например интеграция нагрузочного тестирования в ночную сборку. Важный момент! Все определяется в коде! Количество конфигурационных файлов сведено к минимуму. В частности Параметры конкретного теста определены в коде. Конфигурация конкретного теста это набор скомпилированных программных Компонент. Таким образом мы решили создать собственную платформу для разработки таких средств. Платформа реализует общую функциональность для таких тулов, а вот все остальное может разработать Тести инжененр. Наш подход: не просто еще один инсрумент нагрузочного тестирования, а платформа для создания таких инструментов. Таки образом, тест инженер получил возможность подгонять свой инструмент для конкретных нужд. Кочеться еще отдельно сказать об инструменарии на коленке. К сожалению в этой области это опасно. Сам инструмент должен быть выскопроизводительным, иначе он может вностить существенные погрешности в измрения Которые сложно отследить. Помимо прочего данная платформа служит для экспериментов с методиками нагрузочного тестирования и оценки производительности в целом. Про области применения:
  4. Эта высоко уровневая архитектура свойственна для большенства средств нагрузочного тестирования. Наша платформа не исключение. Основные элементы это Контроллер и сеть распределенных Инжегторов, или генераторов или агентов. Контороллер занимается управлением то есть запуском, Котролем и котролем теста, распределенным управлением агентами, мониторингом измерений.
  5. Теперь рассмотрем поподробнее области расширения, то есть те аспекты, в которых требуется Гибкость и адаптивность. Точнее, это те аспекты которые могут варьироваться в зависимости от Тестируемой системы, целей тестирования, процесса тестирования. Сценарий – возможность реализации любой логики поведения польователя Нагрузка - возможность симулировать любые шаблоны нагрузки Протоколы и измерения – использование любых требуемых протоколов коммуникации между LA и SUT Статистика и анализ – применение статистических методов (особенно во время проведения нагрузочного теста) Управление процедурой теста – запуск, контроль, автоматизированный запуск например из ANT скрипта Теперь рассмотрим каждый аспект в отдельности
  6. Почему не деклараьивно : унас добалвяется еще один интерпретатор. Ограниченность, сложные условные переходы требуют сложного интерпретатора. Скриптовый язык Скриптовые языки достаточно медленны . Разрабатывать свой, ЗАчем? ! Все это возможно сделать на Java . Плюсы + любая логика + готовые инструменты для генерации ( eclipse, AST) + простота + готовая среда разработки и отладки Каждый запрос это отдельный класс это существенно облегчает разработку и Упрощает алгоритм генерации из моделей. Помимо всего прочего это служит для Идентификации артефактов сценария. (На монирое исполнения сценария пользователь Однозначно понимает что за объект (идетификация, генерация)) Может быть имплементирована любая пользовательская логика Но пока что все что рассказывал не имеет никакого отношения к производительноти Игде же тут производительность? Это стоит продемонстировать на примере.
  7. Так а где же здесть производительность, пока что подобные сценарии характирны и для Функционального тестирования. Тут без примера сложно обойтись. Некоторые аспекты в примере опущены (например инициализация) Логика RUN Но главное вот оно метод RUN в каждом классе. Он будет измерен . Инструментарий ( ассистирование написание кода, шаблоны )
  8. С точки зрения сервера, нагрузка это частота обращений к нему. Таким образом, нагрузка, на стороне клиента (то есть генератора нагрузки) Представим как можно генерировать нарузку. Несколько готовых потоков, которым мы командуем через промежутки времени старт. Определяется как количество виртуальных пользоватлей и время ожидания между итерациями сценария (или шага или даже запроса). Но для высокой частоты мы получаем проблему синхронизации . Поэтому проще в виде закрытой систымы , когда запросы на выполнение возвращаются в пул. Как это выглядит на практике. Паралельные ряды это Виртуальны пользователи, полоски это время испольнения запроса к серверу включающее все. Промежутки между ними это время обдумывания. Спроецировав начало запросов на единую ось времени мы получим частоту обращений. Она то и будет нагрузкой. Поэтому опредение нагрузки как количество пользователей системы не однозначно (хотя определяет средную нагрузку) Распределение времени обдумывания так же имеет важное значение, при использовании константных Значений поток В кнце хочу отметить, что зачастую под термином нагрузка подразумевается поведение пользователя . В данном докладе Я понимаю под этим термином много пользовательскую нагрузку и все что с этим связано. А определение поведения Пользователя называю сценарием , так как это не имеет прямого отношения к произваодительноти.
  9. Как определяется нагрузка. По сути, это функция от времени , которая принемает значения количество виртуальных Пользоватлей и время обдумывания для всех виртуальных пользователей (точнее говоря распределений вероятностей) Таким образом мы можем задать любую зависимость .
  10. Любой протокол, имеющий клиент c кие Java библиотеки Для каждого запроса регистрируются значения. Тип значений зависит от протокола. Время испольнения это общее что есть у всех протоколов. AspektJ для токо чтобы померить отдельные части времени исполнения запроса в уже скомпилированных библиотеках.
  11. Единичное отдельное измерение нам не интересно. Для этого собираем в статистики, которые статистически характеризуют измеряемые значения. Примеры Представим что мы измеряем среднее время ответа на интервале в 30 сек. Мы берем сумму всех измереий и делим на Количество этих измеренй. И так для каждого интервала в 30 сек. А теперь представми что мы хотим Узнать среднее время ответа на интервале в один час. А у нас только по 30 сек. Что бы посчитать за час, на нужно Всю сумму поделить на общее колво измерений за весь час. Таким образом храним == { сумма зн a чений, интервал времени, количество значений, сумма квадратов значений }
  12. На контроллере мы активно используем Eclipse и OSGi. Расширяемость за счет плагинов. Интеграция с другими средствами нпример PDE , EMF,
  13. Как же все это фунционирует . Big picture . Во первых есть два конейнера : агент и контороллер. Не случайно использую слово конейнер, потому что, по сути это application servers . В коненерах есть сервисы, которые обеспечивают базовае функции для генерации нагрузки , сбора измерений, управление Удалнными агентами и так далее. И на конец есть конкретная конфигурация теста, в виде компоненты OSGi , то есть по сути это jar пакеты \\с мета информацией. Перед началом теста, эти пакеты автоматически деплоятся (инстолируеются на удаленных агентах) Среди них … ТО есть перед тестом конструируется приложение нагрузочного тестирования.