Документ посвящен нефункциональному тестированию систем, акцентируя внимание на анализе использования ресурсов и производительности. Он описывает подходы к проведению нагрузочного тестирования, включая типовые сценарии и методы мониторинга. Содержатся рекомендации по улучшению производительности и анализа полученных результатов.
Ресурсы
Пользователь: Система:
• Время: • Степень загрузки
– Время отклика системы процессора
– Время выполнения – системная загрузка
операции (функции, – пользовательская загрузка
запроса) – ожидание окончания
операции ввода-вывода
– Бездействие
• Оперативная память
• Дисковая подсистема и
операции ввода-вывода
• Загруженность сети
2
3.
Аспекты качества
С точкизрения пользователя
Производительность (Performance)
степень, с которой система или компонент
выполняет заложенные в нее функции в
установленных рамках
на время обработки
на пропускную способность
4.
Аспекты качества
С точкизрения системы
Использование ресурсов
(resource utilization)
способность использования программным
продуктом соответствующего количества ресурсов
определенного типа (например, объема
оперативной памяти и памяти второго уровня,
размера временных файлов и т.д.) во время работы
в установленных условиях.
Основной подход
Предвари-
тельный
анализ,
пстановка
задачи
Проведение
испытаний
Настройка стенда Анализ
результатов
реализации
Подготовка
отчетов
7.
Предварительный анализ
• Определениефункционального разрез:
– Типичные задачи
– Вероятность их возникновения
• Определение профилей (ожидаемых):
– Производительности
– Эффективности
– Использования ресурсов
8.
Настройка стенда реализации
• Оборудование
• Операционная система
• Тестируемая система
• Окружение
• Мониторинг
Принципы:
• Максимальное приближение к
реальной жизни
• Изоляция от внешних влияний
• Учет влияния отклонений
9.
Проведение испытаний
• Последовательное
выполнение операций в
соответствии с
функциональным
срезом и профилями
производительности/
эффективности
• Параллельная
фиксация метрик:
– Время отклика
– Ресурсы
9
Упражнение 1
• MSWord
– Постройте функциональный разрез
(достаточно 3-5 операций)
– Попробуйте определить профиль
производительности и использования
ресурсов
– Выберите средний документ и проведите
на нем испытания и зафиксируйте метрики
13
Упражнение 2
• MSWord
– Повторите упражнение 1 на примере очень
большого документа (например книга или
научная диссертация), попробуйте
• Выполнить операции в середине документа,
• Найти что-то в документе
• Выделить весь текст
– Что изменилось?
16
Нагрузочное тестирование
• оценкаповедения
компонента или
системы при
возрастающей
нагрузке:
– Количество
параллельных
пользователей
– Количество
параллельных
операций
Межные характеристики
• Надежность(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)
Мониторинг производительности
• OSUnix
– 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.
Проведение испытаний
• Зафиксироватьсостояние системы
• Следить за состоянием системы между
тестами
• Предварительный прогон теста с
разными уровнями нагрузки (малыми)
• Прогон основных нагрузочных сценариев
• Фиксация метрик производительности,
использования ресурсов