03 load testing

Post on 05-Jul-2015

92 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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=/rational/PerfomTest.htm)

Зафиксировать состояние системыСледить за состоянием системы между

тестамиПредварительный прогон теста с

разными уровнями нагрузки (малыми)Настроить средства мониторингапроизводительности системы:• Обычный• Агентный• Встроенный

MS Performance• Для запуска системного монитора также достаточно

ввести perfmon из Start (Пуск)/Run (Выполнить)

OS Unix• sar -

http://www.opennet.ru/man.shtml?topic=sar&russian=0&category=&submit=%F0%CF%CB%C1%DA%C1%D4%D8+man

• http://www.ibm.com/developerworks/ru/library/au-unix-perfmonsar/index.html

• top -http://www.opennet.ru/man.shtml?topic=top&russian=0&category=&submit=%F0%CF%CB%C1%DA%C1%D4%D8+man

• vmstat –http://www.opennet.ru/man.shtml?topic=vmstat&russian=0&category=&submit=%F0%CF%CB%C1%DA%C1%D4%D8+man

Время отклика системыСтепень загрузки процессора

• системная загрузка• пользовательская загрузка• ожидание окончания операции ввода-вывода• Бездействие

ПамятьДисковая подсистема и операции

ввода-выводаЗагруженность сети

Изучение статистики

Поиск узкого места – botleneck

Рекомендации к улучшению

top related