ݺߣ

ݺߣShare a Scribd company logo
Стажировка-2014
Нагрузочное тестирование и
тестирование производительности
Занятие 5
Стажировка-2014
Нагрузочное тестирование или тестирование
производительности – это автоматизированное
тестирование, имитирующее работу определенного
количества бизнес пользователей на каком-либо общем
(разделяемом ими) ресурсе.
Что и зачем?
Стажировка-2014
Основные виды тестирования производительности:
1. Тестирование производительности (Performance
testing) – Задачей тестирования производительности
является определение масштабируемости приложения
под нагрузкой, при этом происходит:
А) -- измерение времени выполнения выбранных
операций при определенных интенсивностях
выполнения этих операций
Б) -- определение количества пользователей,
одновременно работающих с приложением
В) -- определение границ приемлемой
производительности при увеличении нагрузки (при
увеличении интенсивности выполнения этих операций)
Г) -- исследование производительности на высоких,
предельных, стрессовых нагрузках
Что тестировать и зачем?
Стажировка-2014
Основные виды тестирования производительности:
2. Стрессовое тестирование (Stress Testing) – Стрессовое
тестирование позволяет проверить насколько приложение и
система в целом работоспособны в условиях стресса и также
оценить способность системы к регенерации, т.е. к
возвращению к нормальному состоянию после прекращения
воздействия стресса. Стрессом в данном контексте может быть
повышение интенсивности выполнения операций до очень
высоких значений или аварийное изменение конфигурации
сервера. Также одной из задач при стрессовом тестировании
может быть оценка деградации производительности, таким
образом цели стрессового тестирования могут пересекаться с
целями тестирования производительности.
Что тестировать и зачем?
Стажировка-2014
Основные виды тестирования производительности:
3. Объемное тестирование (Volume Testing) – Задачей объемного
тестирования является получение оценки производительности при
увеличении объемов данных в базе данных приложения, при этом
происходит:
А) измерение времени выполнения выбранных операций при определенных
интенсивностях выполнения этих операций
Б) может производиться определение количества пользователей,
одновременно работающих с приложением
2. Тестирование стабильности или надежности (Stability / Reliability Testing) –
Задачей тестирования стабильности (надежности) является проверка
работоспособности приложения при длительном (многочасовом)
тестировании со средним уровнем нагрузки. Время выполнения операций
может играть в данном виде тестирования второстепенную роль. При этом
на первое место выходит отсутствие утечек памяти, перезапусков серверов
под нагрузкой и другие аспекты влияющие именно на стабильность работы.
Что тестировать и зачем?
Стажировка-2014
Цели нагрузочного тестирования:
Основными целями нагрузочного тестирования являются:
1) Оценка производительности и работоспособности
приложения на этапе разработки и передачи в
эксплуатацию
2) Оценка производительности и работоспособности
приложения на этапе выпуска новых релизов, фиксов.
3) Оптимизация производительности приложения, включая
настройки серверов и оптимизацию кода
4) Подбор соответствующей для данного приложения
аппаратной (программной платформы) и конфигурации
сервера
Цели и задачи нагрузочного тестирования.
Стажировка-2014
Этапы проведения нагрузочного тестирования:
1. Анализ требований и сбор информации о тестируемой
системе
2. Конфигурация тестового стенда для нагрузочного
тестирования
3. Разработка модели нагрузки
4. Выбор инструмента для нагрузочного тестирования
5. Создание и отладка тестовых скриптов
6. Проведение тестирования
7. Анализ результатов
8. Подготовка, отправка и публикация отчета по
проведенному нагрузочному тестированию
Как тестировать?
Стажировка-2014
Анализ требований:
Для этого Вам необходимо будет выделить следующие характеристики:
1. Время отклика (время необходимое для открытия страницы или получения
ожидаемого результата)
2. Интенсивность (число запросов в секунду – (Qps)
3. Используемые ресурсы (загрузка процессора, кол-во используемой памяти,
дисковое и сетевой I/O)
4. Максимальное количество пользователей (определяет число пользователей,
способных работать с системой в условиях заданной конфигурации)
А также некоторые метрики связанные с работой бизнес сценариев (например,
количество бизнес операций в единицу времени, время выполнения бизнес операции
и т.д.)
Заданные в требованиях характеристики, являються базовыми нагрузочными
точками тестируемого приложения. Результаты будут сравниваться с ними для
принятия решения о завершении тестирования либо дальнейшем профилировании
производительности.
Этапы нагрузочного тестирования
Стажировка-2014
Разработка моделей нагрузки:
Модель тестирования производительности - Постепенное
увеличение нагрузки, добавляя новых пользователей с
некоторым интервалом времени
Модель стрессового тестирования – Увеличивая
интенсивность операций выше пиковых (максимально
разрешенных) значений либо увеличивая количество
пользователей, до тех пор пока нагрузка не станет выше
максимально допустимых значений, проверяем, что
система работоспособна в условиях стресса. Далее,
опустив нагрузку до средних значений, проверяем
(способность системы к регенерации), что система
вернулась к нормальному состоянию (основные
нагрузочные характеристики не превышают базовые).
Модели нагрузочного тестирования
Стажировка-2014
Разработка моделей нагрузки:
Модель объемного тестирования - Можно
использовать ту же модель что и для тестирования
производительности однако целью будет проверка
работы системы с прогнозом на будущий рост объема
данных. Следовательно одним и самым важным
предусловием теста будет увеличение объемов базы
данных приложения до требуемых размеров. Таким
образом мы сможем проверить и оценить
производительность, прогнозируя рост системы на
год, два или три вперед.
Модели нагрузочного тестирования
Стажировка-2014
Разработка моделей нагрузки:
Модель тестирования стабильности или надежности -
Используя базовый нагрузочный профиль, запускаем
тест длительностью от нескольких часов до
нескольких дней, с целью выявления утечек памяти,
перезапуска серверов и других аспектов влияющих на
нагрузку.
Модели нагрузочного тестирования
Стажировка-2014
Выводы
Четкое следование всем вышеописанным инструкциям по разработке моделей нагрузки,
позволит:
• провести дополнительный анализ и тестирование требований по
производительности
• уточнить параметры и характеристики производительности
• получить более четкого представления о работе системы в целом
• получить на выходе план предстоящих работ связанных с нагрузочным
тестированием
• определить предельный объем данных системы (с сохранением приемлемой
производительности)
• определить предельное количество пользователей (групп) системы (с сохранением
приемлемой производительности)
• определить ресурсоёмкие операции или сценарии (для дальнейшего профилирования
системы)
• отслеживать эффект от вводимых оптимизаций системы при регулярных
измерениях производительности, используя разработанные и проверенные модели
нагрузки
Итог
Стажировка-2014
Литература:
1) Технология нагрузочного тестирования
информационных систем с большим объемом данных ,
Вячеслав Берзин.
2) Блог “Нагрузочное тестирование ПО”
(http://ashirobokov.blogspot.com), Андрей Широбоков
3) “ПроТестинг.RU”
(http://www.protesting.ru/automation/performance.html)
Где еще почитать?

More Related Content

Стажировка-2014, занятие 5. Нагрузочное тестирование

  • 2. Стажировка-2014 Нагрузочное тестирование или тестирование производительности – это автоматизированное тестирование, имитирующее работу определенного количества бизнес пользователей на каком-либо общем (разделяемом ими) ресурсе. Что и зачем?
  • 3. Стажировка-2014 Основные виды тестирования производительности: 1. Тестирование производительности (Performance testing) – Задачей тестирования производительности является определение масштабируемости приложения под нагрузкой, при этом происходит: А) -- измерение времени выполнения выбранных операций при определенных интенсивностях выполнения этих операций Б) -- определение количества пользователей, одновременно работающих с приложением В) -- определение границ приемлемой производительности при увеличении нагрузки (при увеличении интенсивности выполнения этих операций) Г) -- исследование производительности на высоких, предельных, стрессовых нагрузках Что тестировать и зачем?
  • 4. Стажировка-2014 Основные виды тестирования производительности: 2. Стрессовое тестирование (Stress Testing) – Стрессовое тестирование позволяет проверить насколько приложение и система в целом работоспособны в условиях стресса и также оценить способность системы к регенерации, т.е. к возвращению к нормальному состоянию после прекращения воздействия стресса. Стрессом в данном контексте может быть повышение интенсивности выполнения операций до очень высоких значений или аварийное изменение конфигурации сервера. Также одной из задач при стрессовом тестировании может быть оценка деградации производительности, таким образом цели стрессового тестирования могут пересекаться с целями тестирования производительности. Что тестировать и зачем?
  • 5. Стажировка-2014 Основные виды тестирования производительности: 3. Объемное тестирование (Volume Testing) – Задачей объемного тестирования является получение оценки производительности при увеличении объемов данных в базе данных приложения, при этом происходит: А) измерение времени выполнения выбранных операций при определенных интенсивностях выполнения этих операций Б) может производиться определение количества пользователей, одновременно работающих с приложением 2. Тестирование стабильности или надежности (Stability / Reliability Testing) – Задачей тестирования стабильности (надежности) является проверка работоспособности приложения при длительном (многочасовом) тестировании со средним уровнем нагрузки. Время выполнения операций может играть в данном виде тестирования второстепенную роль. При этом на первое место выходит отсутствие утечек памяти, перезапусков серверов под нагрузкой и другие аспекты влияющие именно на стабильность работы. Что тестировать и зачем?
  • 6. Стажировка-2014 Цели нагрузочного тестирования: Основными целями нагрузочного тестирования являются: 1) Оценка производительности и работоспособности приложения на этапе разработки и передачи в эксплуатацию 2) Оценка производительности и работоспособности приложения на этапе выпуска новых релизов, фиксов. 3) Оптимизация производительности приложения, включая настройки серверов и оптимизацию кода 4) Подбор соответствующей для данного приложения аппаратной (программной платформы) и конфигурации сервера Цели и задачи нагрузочного тестирования.
  • 7. Стажировка-2014 Этапы проведения нагрузочного тестирования: 1. Анализ требований и сбор информации о тестируемой системе 2. Конфигурация тестового стенда для нагрузочного тестирования 3. Разработка модели нагрузки 4. Выбор инструмента для нагрузочного тестирования 5. Создание и отладка тестовых скриптов 6. Проведение тестирования 7. Анализ результатов 8. Подготовка, отправка и публикация отчета по проведенному нагрузочному тестированию Как тестировать?
  • 8. Стажировка-2014 Анализ требований: Для этого Вам необходимо будет выделить следующие характеристики: 1. Время отклика (время необходимое для открытия страницы или получения ожидаемого результата) 2. Интенсивность (число запросов в секунду – (Qps) 3. Используемые ресурсы (загрузка процессора, кол-во используемой памяти, дисковое и сетевой I/O) 4. Максимальное количество пользователей (определяет число пользователей, способных работать с системой в условиях заданной конфигурации) А также некоторые метрики связанные с работой бизнес сценариев (например, количество бизнес операций в единицу времени, время выполнения бизнес операции и т.д.) Заданные в требованиях характеристики, являються базовыми нагрузочными точками тестируемого приложения. Результаты будут сравниваться с ними для принятия решения о завершении тестирования либо дальнейшем профилировании производительности. Этапы нагрузочного тестирования
  • 9. Стажировка-2014 Разработка моделей нагрузки: Модель тестирования производительности - Постепенное увеличение нагрузки, добавляя новых пользователей с некоторым интервалом времени Модель стрессового тестирования – Увеличивая интенсивность операций выше пиковых (максимально разрешенных) значений либо увеличивая количество пользователей, до тех пор пока нагрузка не станет выше максимально допустимых значений, проверяем, что система работоспособна в условиях стресса. Далее, опустив нагрузку до средних значений, проверяем (способность системы к регенерации), что система вернулась к нормальному состоянию (основные нагрузочные характеристики не превышают базовые). Модели нагрузочного тестирования
  • 10. Стажировка-2014 Разработка моделей нагрузки: Модель объемного тестирования - Можно использовать ту же модель что и для тестирования производительности однако целью будет проверка работы системы с прогнозом на будущий рост объема данных. Следовательно одним и самым важным предусловием теста будет увеличение объемов базы данных приложения до требуемых размеров. Таким образом мы сможем проверить и оценить производительность, прогнозируя рост системы на год, два или три вперед. Модели нагрузочного тестирования
  • 11. Стажировка-2014 Разработка моделей нагрузки: Модель тестирования стабильности или надежности - Используя базовый нагрузочный профиль, запускаем тест длительностью от нескольких часов до нескольких дней, с целью выявления утечек памяти, перезапуска серверов и других аспектов влияющих на нагрузку. Модели нагрузочного тестирования
  • 12. Стажировка-2014 Выводы Четкое следование всем вышеописанным инструкциям по разработке моделей нагрузки, позволит: • провести дополнительный анализ и тестирование требований по производительности • уточнить параметры и характеристики производительности • получить более четкого представления о работе системы в целом • получить на выходе план предстоящих работ связанных с нагрузочным тестированием • определить предельный объем данных системы (с сохранением приемлемой производительности) • определить предельное количество пользователей (групп) системы (с сохранением приемлемой производительности) • определить ресурсоёмкие операции или сценарии (для дальнейшего профилирования системы) • отслеживать эффект от вводимых оптимизаций системы при регулярных измерениях производительности, используя разработанные и проверенные модели нагрузки Итог
  • 13. Стажировка-2014 Литература: 1) Технология нагрузочного тестирования информационных систем с большим объемом данных , Вячеслав Берзин. 2) Блог “Нагрузочное тестирование ПО” (http://ashirobokov.blogspot.com), Андрей Широбоков 3) “ПроТестинг.RU” (http://www.protesting.ru/automation/performance.html) Где еще почитать?