2. Ресурсы
Пользователь: Система:
• Время: • Степень загрузки
– Время отклика системы процессора
– Время выполнения – системная загрузка
операции (функции, – пользовательская загрузка
запроса) – ожидание окончания
операции ввода-вывода
– Бездействие
• Оперативная память
• Дисковая подсистема и
операции ввода-вывода
• Загруженность сети
2
3. Аспекты качества
С точки зрения пользователя
Производительность (Performance)
степень, с которой система или компонент
выполняет заложенные в нее функции в
установленных рамках
на время обработки
на пропускную способность
4. Аспекты качества
С точки зрения системы
Использование ресурсов
(resource utilization)
способность использования программным
продуктом соответствующего количества ресурсов
определенного типа (например, объема
оперативной памяти и памяти второго уровня,
размера временных файлов и т.д.) во время работы
в установленных условиях.
6. Основной подход
Предвари-
тельный
анализ,
пстановка
задачи
Проведение
испытаний
Настройка стенда Анализ
результатов
реализации
Подготовка
отчетов
7. Предварительный анализ
• Определение функционального разрез:
– Типичные задачи
– Вероятность их возникновения
• Определение профилей (ожидаемых):
– Производительности
– Эффективности
– Использования ресурсов
8. Настройка стенда реализации
• Оборудование
• Операционная система
• Тестируемая система
• Окружение
• Мониторинг
Принципы:
• Максимальное приближение к
реальной жизни
• Изоляция от внешних влияний
• Учет влияния отклонений
9. Проведение испытаний
• Последовательное
выполнение операций в
соответствии с
функциональным
срезом и профилями
производительности/
эффективности
• Параллельная
фиксация метрик:
– Время отклика
– Ресурсы
9
13. Упражнение 1
• MS Word
– Постройте функциональный разрез
(достаточно 3-5 операций)
– Попробуйте определить профиль
производительности и использования
ресурсов
– Выберите средний документ и проведите
на нем испытания и зафиксируйте метрики
13
16. Упражнение 2
• MS Word
– Повторите упражнение 1 на примере очень
большого документа (например книга или
научная диссертация), попробуйте
• Выполнить операции в середине документа,
• Найти что-то в документе
• Выделить весь текст
– Что изменилось?
16
19. Нагрузочное тестирование
• оценка поведения
компонента или
системы при
возрастающей
нагрузке:
– Количество
параллельных
пользователей
– Количество
параллельных
операций
22. Межные характеристики
• Надежность (reliability)
– способность программного
продукта функционировать при
заданных условиях на протяжении
определенного периода времени,
или для определенного количества
операций. Также применяются
термины soak testing, endurance
testing и т.д.
• Тестирование надежности
– процесс тестирования,
исследующий надежность
программного продукта.
23. Смежные характеристики
• Масштабируемость (scalability)
– способность программного
продукта к модернизации с целью
удовлетворения возрастающей
нагрузки.
• Тестирование
масштабируемости
(scalability testing)
– тестирование с целью
оценить
масштабируемость
программного продукта.
24. Методика проведения
Разработка
типовых
сценариев Анализ
и результатов
Предварительный реализация
анализ и постановка модели
задачи нагрузки Подготовка
отчетов
Настройка
стенда
реализации Проведение
испытаний
25. Предварительный анализ
• Определение функционального разрез:
– Типичные задачи
– Вероятность их возникновения
• Определение профилей (ожидаемых):
– Производительности
– Эффективности
– Использования ресурсов
– Нагрузки
26. Профиль нагрузки
• Количество пользователей:
– Минимальная – X пользователей
– Номинальная – Y пользователей
– Максимальная – Z пользователей
– (за)Предельная
• Соотношение пользователей разного
профиля (по выполняемым операциям):
– Сценарий пользователя 1 - XX%
– Сценарий пользователя 2 - YY%
– Сценарий пользователя N - ZZ%
26
27. Настройка стенда реализации
• Оборудование
• Операционная система
• Тестируемая система
• Окружение
• Инструменты нагрузочного
тестирования
• Мониторинг
Принципы:
• Максимальное приближение к
реальной жизни
• Изоляция от внешних влияний
• Учет влияния отклонений
28. Инструменты
• 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)
30. Мониторинг производительности
• OS Unix
– sar -
http://www.opennet.ru/man.shtml?topic=sar&russian=0&ca
tegory=&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&ca
tegory=&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
31. Разработка типовых сценариев и
реализация модели нагрузки
• Запись VU-скриптов
• Подготовка данных
• Проектирование сценариев
32. Проектирование сценария
нагрузки
– Варианты запуска:
• Все одновременно
• Постепенно по одному
• По расписанию
• Хаотично партиями
– Варианты прогона:
• Все фремя фиксированная нагрузка
(performance/efficiency)
• Все время возрастающая нагрузка (stress)
• Переменная нагрузка (reliability)
33. Проведение испытаний
• Зафиксировать состояние системы
• Следить за состоянием системы между
тестами
• Предварительный прогон теста с
разными уровнями нагрузки (малыми)
• Прогон основных нагрузочных сценариев
• Фиксация метрик производительности,
использования ресурсов