Слайд 2Правила участия в курсе
СДО: записи, «домашка»
Консультации
Форум и скайп-чат
Учебное приложение
Слайд 3Структура курса
Основы ТП. Знакомство с JMeter
Цели ТП, сценарии и профили нагрузки
Сбор данных
и анализ результатов
Усложнение сценариев
Слайд 5 Занятие 1
Основы ТП
Знакомство с JMeter
Слайд 6План занятия
Основы тестирования производительности
Что тестируем и как выглядят требования?
Три базовые составляющие
Краткий обзор
инструментов
JMeter как типичный представитель
Запись и воспроизведение
Отладка сценария
Сбор основных метрик
Анализ собранных результатов
Слайд 8ГОСТ Р ИСО/МЭК 9126-93
Эффективность — Набор атрибутов, относящихся к соотношению между уровнем качества
функционирования ПО и объемом используемых ресурсов при установленных условиях.
Слайд 9ГОСТ Р ИСО/МЭК 9126-93
А.2.4 Эффективность (Efficiency)
А.2.4.1 Характер изменения во времени (Time
behavior)
Атрибуты программного обеспечения, относящиеся к временам отклика и обработки и к скоростям выполнения его функций.
А.2.4.2 Характер изменения ресурсов (Resource behavior)
Атрибуты программного обеспечения, относящиеся к объему используемых ресурсов и продолжительности такого использования при выполнении функции.
Слайд 10 Так «эффективность» или «производительность»?
Слайд 11Эффективность +
При большой нагрузке не хватает ресурсов
=>
Нехватка ресурсов может приводить к
проявлению функциональных дефектов
Слайд 12ГОСТ Р ИСО/МЭК 9126-93
Надежность – Набор атрибутов, относящихся к способности программного обеспечения
сохранять свой уровень качества функционирования при установленных условиях за установленный период времени.
Слайд 13ГОСТ Р ИСО/МЭК 9126-93
А.2.2 Надежность (Reliability)
А.2.2.1 Стабильность (Maturity)
Атрибуты программного обеспечения,
относящиеся к частоте отказов при ошибках в программном обеспечении.
А.2.2.2 Устойчивость к ошибке (Fault tolerance)
Атрибуты программного обеспечения, относящиеся к его способности поддерживать определенный уровень качества функционирования в случаях программных ошибок или нарушения определенного интерфейса.
А.2.2.3 Восстанавливаемость (Recoverability)
Атрибуты программного обеспечения, относящиеся к его возможности восстанавливать уровень качества функционирования и восстанавливать данные, непосредственно поврежденные в случае отказа, а также к времени и усилиям, необходимым для этого.
Слайд 15Пример требований
При нагрузке до 100 одновременно работающих с системой клиентов:
среднее время отклика
должно составлять не более 2,5 секунд.
Слайд 16Пример требований
При нагрузке до 100 одновременно работающих с системой клиентов:
среднее время отклика
должно составлять не более 2,5 секунд,
количество отказов не должно превышать 1%
Слайд 17Пример требований
При нагрузке до 100 одновременно работающих с системой клиентов:
среднее время отклика
должно составлять не более 2,5 секунд,
количество отказов не должно превышать 1%
дисперсия не должна превышать 5%
Слайд 18Пример требований
При нагрузке до 100 транзакций в секунду типа «ping» и 10
транзакций в секунду типа «action»:
среднее время отклика должно составлять не более 2,5 секунд,
количество отказов не должно превышать 1%
дисперсия не должна превышать 5%
Слайд 19Пример требований
При нагрузке до 100 транзакций в секунду типа «ping» и 10
транзакций в секунду типа «action»:
среднее время отклика должно составлять не более 2,5 секунд,
количество отказов не должно превышать 1%
дисперсия не должна превышать 5%
сервер приложений должен потреблять не более 50% CPU и не более 1,2 гигабайта ОЗУ
Слайд 20Пример требований
При нагрузке до 100 транзакций в секунду типа «ping» и 10
транзакций в секунду типа «action»:
среднее время отклика для транзакций типа «action» должно составлять не более 2,5 секунд,
количество отказов не должно превышать 1%,
дисперсия не должна превышать 5%,
сервер приложений должен потреблять не более 50% CPU и не более 1,2 гигабайта ОЗУ,
система должна расходовать не более трёх соединений с СУБД
Слайд 21Подробность требований
Какие требования лучше:
подробные
или
неформальные и нечёткие?
Слайд 23Три базовые составляющие
Генерация нагрузки
Мониторинг характеристик производительности
Анализ результатов
Слайд 24Три базовые составляющие
Ресурсов не хватает при большой нагрузке
Нужно много наблюдений
«В зачет» идут
как средние значения, так и отклонения от средних
Слайд 26Генерация нагрузки
JMeter – http://jmeter.apache.org/
grinder – http://grinder.sourceforge.net/
multi-mechanize – http://testutils.org/multi-mechanize/
Gatling – http://gatling-tool.org/
Tsung – http://tsung.erlang-projects.org/
loadUI – http://www.loadui.org/
curl-loader – http://curl-loader.sourceforge.net/
Слайд 27Генерация нагрузки
BlazeMeter – http://blazemeter.com/
Blitz – https://www.blitz.io/
Load Impact – http://loadimpact.com/
LoadStorm – http://loadstorm.com/
SOASTA – http://www.soasta.com/
Слайд 28Мониторинг
Встроенные в инструменты средства
Средства операционной системы
Средства серверов, СУБД, …
Специализированные средства
Zabbix, Nagios, Hyperic
Слайд 29Анализ результатов
Встроенные в инструменты средства
Электронные таблицы
Пакеты для статистической обработки данных
Слайд 31Простой сценарий в JMeter
Запись сценария рекордером
Отладка сценария
Сбор основных метрик
Анализ собранных результатов