Performance/Load/Volume/Stress 
testing
 Основные понятия 
 Методика проведения
 Производительность (Performance) 
• степень, с которой система или компонент выполняет заложенные 
в нее функции в установленных рамках 
 на время обработки 
 на пропускную способность. 
 Профилирование производительности (performance 
profiling) 
• определение пользовательских профилей в тестировании 
производительности, нагрузочном или стрессовом тестировании. 
Профили должны отражать ожидаемое или реальное 
использование, основываясь на функциональный разрез 
компонента или системы и, соответственно, ожидаемой рабочей 
нагрузки. 
 Функциональный разрез (operational profile) 
• представление особого множества задач, выполняемых 
компонентом или системой, возможно опирающихся на поведение 
пользователя при взаимодействии с компонентом или системой, с 
указанием вероятности их появления.
 Эффективность (efficiency) 
• способность системы обеспечивать 
необходимую производительность, 
относительно количества ресурсов, 
используемых при установленных условиях. [ISO 
9126] 
 Тестирование эффективности 
• это процесс тестирования для установления 
эффективности программного продукта
 тип тестирования 
производительности, 
проводимый с целью 
• оценки поведения 
компонента или системы 
при возрастающей 
нагрузке, например 
количестве 
параллельных 
пользователей и/или 
операций, 
• определения какую 
нагрузку может 
выдержать компонент 
или система.
 Номинальная 
 Минимальная 
 Максимальная
 тестирование, при котором система 
испытывается на больших объемах 
данных.
 Надежность (reliability) 
• способность программного 
продукта функционировать при 
заданных условиях на 
протяжении определенного 
периода времени, или для 
определенного количества 
операций. Также применяются 
термины soak testing, endurance 
testing и т.д. 
 Тестирование надежности 
• процесс тестирования, 
исследующий надежность 
программного продукта.
вид тестирования производительности, оценивающий 
систему или компонент на граничных значениях рабочих 
нагрузок или за их пределами, или же в состоянии 
ограниченных ресурсов, таких как память или доступ к 
серверу.
 Тестирование использования ресурсов (resource 
utilization testing) 
• процесс тестирования, исследующий использование ресурсов 
программным продуктом. Использование ресурсов (resource 
utilization) - способность использования программным 
продуктом соответствующего количества ресурсов 
определенного типа (например, объема оперативной памяти и 
памяти второго уровня, размера временных файлов и т.д.) во 
время работы в установленных условиях.
 Тестирование масштабируемости 
(scalability testing) 
• тестирование с целью оценить масштабируемость 
программного продукта. Масштабируемость 
(scalability) – способность программного продукта к 
модернизации с целью удовлетворения 
возрастающей нагрузки.
 Базовые этапы 
Анализ, определение 
и проектирование 
модели нагрузки 
(профилирование) 
Настройка 
стенда 
реализации 
Разработка 
типовых 
сценариев и 
реализация 
модели 
нагрузки 
Проведение 
испытаний 
Анализ 
результатов 
Подготовка 
отчетов
 Профилирование: 
• Изучение бизнес-процесса, опрос конечных 
пользователей об условиях и требованиях к 
эксплуатации 
• Анализ текущего состояния системы 
• Апроксимации и прогнозы развития системы 
• т. д. 
 Кто? Сколько человек? Какие операции? 
В каком количесвте? Как часто? Сколько 
данных? Как долго? Как быстро? И т.д.
 Продумать и обговорить 
следующие моменты: 
• Точно определить, какие параметры 
компьютера/сервера необходимы 
для проведения испытаний. 
Параметры компьютера должны 
быть максимально приближены к 
тем, которые будут использованы у 
конечных пользоватей; 
• Определить какое программное 
обеспечение будет установлено на 
стенде, в том числе и инструменты 
для проведения испытаний и 
инструменты для мониторинга 
системы. А также определить какую 
нагрузку на систему будут нести все 
установленные приложения; 
• Убедиться, что стенд для 
проведения испытаний будет 
изолирован от внешних.
 Проектирование сценариев 
 Запись VU-скриптов 
 Подготовка данных 
 Подготовка конфигураций 
 Подготовка профилей нагрузки
• Варианты запуска: 
 Все одновременно 
 Постепенно по одному 
 По расписанию 
 Хаотично партиями 
• Варианты прогона: 
 Все фремя фиксированная нагрузка 
(load/performance/efficiency ) 
 Все время возрастающая нагрузка (stress) 
 Переменная нагрузка (reliability)
Apache Jmeter 
(http://jakarta.apache.org/jmeter/) 
Open Systems Testing Architecture 
(OpenSTA, http://www.opensta.org/) 
WAPT – Web Application Testing 
(http://www.loadtestingtool.com) 
HP LoadRunner (www.mercury.com) 
IBM Rational Performance Tester 
(http://www.interface.ru/fset.asp?Url=/rati 
onal/PerfomTest.htm)
 Зафиксировать состояние системы 
 Следить за состоянием системы между 
тестами 
 Предварительный прогон теста с 
разными уровнями нагрузки (малыми) 
 Настроить средства мониторинга 
производительности системы: 
• Обычный 
• Агентный 
• Встроенный
 MS Performance 
• Для запуска системного монитора также достаточно 
ввести perfmon из Start (Пуск)/Run (Выполнить)
 OS Unix 
• sar - 
http://www.opennet.ru/man.shtml?topic=sar&russian=0&cat 
egory=&submit=%F0%CF%CB%C1%DA%C1%D4%D8+m 
an 
• http://www.ibm.com/developerworks/ru/library/au-unix-perfmonsar/ 
index.html 
• top - 
http://www.opennet.ru/man.shtml?topic=top&russian=0&cat 
egory=&submit=%F0%CF%CB%C1%DA%C1%D4%D8+m 
an 
• vmstat – 
http://www.opennet.ru/man.shtml?topic=vmstat&russian=0& 
category=&submit=%F0%CF%CB%C1%DA%C1%D4%D8 
+man
 Время отклика системы 
 Степень загрузки процессора 
• системная загрузка 
• пользовательская загрузка 
• ожидание окончания операции ввода-вывода 
• Бездействие 
 Память 
 Дисковая подсистема и операции 
ввода-вывода 
 Загруженность сети
 Изучение статистики 
 Поиск узкого места – botleneck 
 Рекомендации к улучшению

03 load testing

  • 1.
  • 2.
     Основные понятия  Методика проведения
  • 4.
     Производительность (Performance) • степень, с которой система или компонент выполняет заложенные в нее функции в установленных рамках  на время обработки  на пропускную способность.  Профилирование производительности (performance profiling) • определение пользовательских профилей в тестировании производительности, нагрузочном или стрессовом тестировании. Профили должны отражать ожидаемое или реальное использование, основываясь на функциональный разрез компонента или системы и, соответственно, ожидаемой рабочей нагрузки.  Функциональный разрез (operational profile) • представление особого множества задач, выполняемых компонентом или системой, возможно опирающихся на поведение пользователя при взаимодействии с компонентом или системой, с указанием вероятности их появления.
  • 5.
     Эффективность (efficiency) • способность системы обеспечивать необходимую производительность, относительно количества ресурсов, используемых при установленных условиях. [ISO 9126]  Тестирование эффективности • это процесс тестирования для установления эффективности программного продукта
  • 6.
     тип тестирования производительности, проводимый с целью • оценки поведения компонента или системы при возрастающей нагрузке, например количестве параллельных пользователей и/или операций, • определения какую нагрузку может выдержать компонент или система.
  • 7.
     Номинальная Минимальная  Максимальная
  • 8.
     тестирование, прикотором система испытывается на больших объемах данных.
  • 9.
     Надежность (reliability) • способность программного продукта функционировать при заданных условиях на протяжении определенного периода времени, или для определенного количества операций. Также применяются термины soak testing, endurance testing и т.д.  Тестирование надежности • процесс тестирования, исследующий надежность программного продукта.
  • 10.
    вид тестирования производительности,оценивающий систему или компонент на граничных значениях рабочих нагрузок или за их пределами, или же в состоянии ограниченных ресурсов, таких как память или доступ к серверу.
  • 11.
     Тестирование использованияресурсов (resource utilization testing) • процесс тестирования, исследующий использование ресурсов программным продуктом. Использование ресурсов (resource utilization) - способность использования программным продуктом соответствующего количества ресурсов определенного типа (например, объема оперативной памяти и памяти второго уровня, размера временных файлов и т.д.) во время работы в установленных условиях.
  • 12.
     Тестирование масштабируемости (scalability testing) • тестирование с целью оценить масштабируемость программного продукта. Масштабируемость (scalability) – способность программного продукта к модернизации с целью удовлетворения возрастающей нагрузки.
  • 13.
     Базовые этапы Анализ, определение и проектирование модели нагрузки (профилирование) Настройка стенда реализации Разработка типовых сценариев и реализация модели нагрузки Проведение испытаний Анализ результатов Подготовка отчетов
  • 14.
     Профилирование: •Изучение бизнес-процесса, опрос конечных пользователей об условиях и требованиях к эксплуатации • Анализ текущего состояния системы • Апроксимации и прогнозы развития системы • т. д.  Кто? Сколько человек? Какие операции? В каком количесвте? Как часто? Сколько данных? Как долго? Как быстро? И т.д.
  • 15.
     Продумать иобговорить следующие моменты: • Точно определить, какие параметры компьютера/сервера необходимы для проведения испытаний. Параметры компьютера должны быть максимально приближены к тем, которые будут использованы у конечных пользоватей; • Определить какое программное обеспечение будет установлено на стенде, в том числе и инструменты для проведения испытаний и инструменты для мониторинга системы. А также определить какую нагрузку на систему будут нести все установленные приложения; • Убедиться, что стенд для проведения испытаний будет изолирован от внешних.
  • 16.
     Проектирование сценариев  Запись VU-скриптов  Подготовка данных  Подготовка конфигураций  Подготовка профилей нагрузки
  • 17.
    • Варианты запуска:  Все одновременно  Постепенно по одному  По расписанию  Хаотично партиями • Варианты прогона:  Все фремя фиксированная нагрузка (load/performance/efficiency )  Все время возрастающая нагрузка (stress)  Переменная нагрузка (reliability)
  • 18.
    Apache Jmeter (http://jakarta.apache.org/jmeter/) Open Systems Testing Architecture (OpenSTA, http://www.opensta.org/) WAPT – Web Application Testing (http://www.loadtestingtool.com) HP LoadRunner (www.mercury.com) IBM Rational Performance Tester (http://www.interface.ru/fset.asp?Url=/rati onal/PerfomTest.htm)
  • 19.
     Зафиксировать состояниесистемы  Следить за состоянием системы между тестами  Предварительный прогон теста с разными уровнями нагрузки (малыми)  Настроить средства мониторинга производительности системы: • Обычный • Агентный • Встроенный
  • 20.
     MS Performance • Для запуска системного монитора также достаточно ввести perfmon из Start (Пуск)/Run (Выполнить)
  • 21.
     OS Unix • sar - http://www.opennet.ru/man.shtml?topic=sar&russian=0&cat egory=&submit=%F0%CF%CB%C1%DA%C1%D4%D8+m an • http://www.ibm.com/developerworks/ru/library/au-unix-perfmonsar/ index.html • top - http://www.opennet.ru/man.shtml?topic=top&russian=0&cat egory=&submit=%F0%CF%CB%C1%DA%C1%D4%D8+m an • vmstat – http://www.opennet.ru/man.shtml?topic=vmstat&russian=0& category=&submit=%F0%CF%CB%C1%DA%C1%D4%D8 +man
  • 22.
     Время откликасистемы  Степень загрузки процессора • системная загрузка • пользовательская загрузка • ожидание окончания операции ввода-вывода • Бездействие  Память  Дисковая подсистема и операции ввода-вывода  Загруженность сети
  • 23.
     Изучение статистики  Поиск узкого места – botleneck  Рекомендации к улучшению