SysML в качестве платформы интеграции для моделирования ко-симуляций
Эволюция нагрузочного тестирования – от простой автоматизации до BDD
1. Deutsche Bank Technology Centre
Deutsche Bank
Эволюция Нагрузочного Тестирования
от Автоматизации до BDD
Алексей Рагозин
2. 1
Deutsche Bank Technology Center
Deutsche Bank
Alexey Ragozin
CEE SECR, October 28-29
Нагрузочный тест
Развёртывание >> Прогон >> Обработка Результатов
3. 1
Deutsche Bank Technology Center
Deutsche Bank
Alexey Ragozin
CEE SECR, October 28-29
Традиционный подход
Развёртывание Прогон Обработка
результатов
Инструменты нагрузочногоо
тестирования
Прогон сценария
Поддержка стандартных протоколов
Подготовка
тестовых данных
Традиционные
средства
развёртывания
? Самописный код awk, Excel, R, …
4. 1
Deutsche Bank Technology Center
Deutsche Bank
Alexey Ragozin
CEE SECR, October 28-29
Тестирование на ранней стадии
разработки
Новый проект
Нет инфраструктуры развёртывания
Нет выделенного инженера по производительности
Нет времени гонять тесты
Непрерывное тестирование
Тестирование на последней версии кода
Тестирование в нерабочие часы
Требуется полная автоматизация цикла тестирования
5. 1
Deutsche Bank Technology Center
Deutsche Bank
Alexey Ragozin
CEE SECR, October 28-29
Распределённое нагрузочное
тестирование
Тестовый стенд – распределённая система
Развёртывание
- координация развёртывание между узлами
Подготовка данных
- параллельная генерация данных
Сценарий тестирования
- координация фермы нагрузки
Сбор результатов
- распределённые источники данных
6. 1
Deutsche Bank Technology Center
Deutsche Bank
Alexey Ragozin
CEE SECR, October 28-29
Вариации на тему KPI
Время выполнения
запроса
Время
прохождения
события через
систему
Время
восстановления
после сбоя
C S I S1 S2 O
Предельно
допустимая
нагрузка
7. 1
Deutsche Bank Technology Center
Deutsche Bank
Alexey Ragozin
CEE SECR, October 28-29
Синдром “полураспада” тестов
λ
8. 1
Deutsche Bank Technology Center
Deutsche Bank
Alexey Ragozin
CEE SECR, October 28-29
«Эталонный» стек нагрузочного
тестирования
Управление
распределённой
средой
Координация
сценария
тестирования
Сбор
результатов
измерений
Обработка
результатов и
подготовка отчета
Развёртывание Обработка результатов
Функционал типового инструмента
нагрузочного тестирования
Прогон
9. 1
Deutsche Bank Technology Center
Deutsche Bank
Alexey Ragozin
CEE SECR, October 28-29
Развёртывание Vs. Прогон
Развёртывание Прогон
Start
Storage
Start
Storage
Start
Storage
Wait for
Cluster
Start
Service
Start
Service
Start
Service
Warm up Warm up
Produce
Load
Produce
Load
Kill cluster
node
10. 1
Deutsche Bank Technology Center
Deutsche Bank
Alexey Ragozin
CEE SECR, October 28-29
Сбор и Обработка Результатов
Проблемы
Объём данных
Множество распределённых источников данных
Обработка данных не должна влиять на тестируемую систему
Решения
Распределённая обработка данных – слишком сложно
Пакетная обработка после завершения прогона
11. 1
Deutsche Bank Technology Center
Deutsche Bank
Alexey Ragozin
CEE SECR, October 28-29
Full Java Performance Testing Stack
Презентация фреймворка
http://www.slideshare.net/aragozin/java-57296922
https://www.youtube.com/watch?v=70y83wBGhOU
https://www.youtube.com/watch?v=By1reBt7pwg
Open Source компоненты
NanoCloud – управление распределённой средой
https://github.com/gridkit/nanocloud
http://blog.ragozin.info/2013/01/remote-code-execution-in-java-made.html
Координация / Мониторинг / Сбор данных
https://github.com/gridkit/nimble/
12. 1
Deutsche Bank Technology Center
Deutsche Bank
Alexey Ragozin
CEE SECR, October 28-29
Проверка временем
Плюсы
Гибкость
Естественная интеграция
в цикл разработки
Минусы
Слишком много Java кода
Проблема “полураспада”
тестов до конца не решена
Проблема качества тестов
13. 1
Deutsche Bank Technology Center
Deutsche Bank
Alexey Ragozin
CEE SECR, October 28-29
Качество тестов
AssertionError: expected: 1 but was: 0
Как это затрагивает пользователей системы?
Возможна ли эксплуатация системы с дефектом?
Какие бизнес-требования нарушены?
Является ли проблема критической?
14. 1
Deutsche Bank Technology Center
Deutsche Bank
Alexey Ragozin
CEE SECR, October 28-29
Выбор метрик
• Применимость критерия успешности
• Понятный бизнес смысл
• Понятный физический смысл (часы, пользователи, попугаи)
• Устойчивость к изменениям в системе
Пример хорошей метрики
Количество пользователей в системе при сохранении SLA
15. 1
Deutsche Bank Technology Center
Deutsche Bank
Alexey Ragozin
CEE SECR, October 28-29
Lucene – непрерывное тестирование
http://people.apache.org/~mikemccand/lucenebench
16. 1
Deutsche Bank Technology Center
Deutsche Bank
Alexey Ragozin
CEE SECR, October 28-29
BDD Подход
Выражаясь BDD языком, нагрузочный тест - это
Given Тестовое окружение подготовлено
When Прогон сценария закончен
Then Метрика X лежит в диапазоне […]
Then Метрика Y лежит в диапазоне […]
17. 1
Deutsche Bank Technology Center
Deutsche Bank
Alexey Ragozin
CEE SECR, October 28-29
BDD Подход
Навязывание структуры
Параметры среды / Параметры сценария / Критерии
Разделение кода и назначение теста
Выделение компонентов для повторного использования
Формализация критериев успешности теста
Уменьшение стоимости владения тестовым портфелем!
18. 1
Deutsche Bank Technology Center
Deutsche Bank
Alexey Ragozin
CEE SECR, October 28-29
Заключение
• Критерий успешности – признак “хорошего” теста
• Границы теста:
[Развертывание – Вычисление критерия успешности]
• BDD помогает поддерживать качество тестов
19. 1
Deutsche Bank Technology Center
Deutsche Bank
Alexey Ragozin
CEE SECR, October 28-29
Спасибо
Алексей Рагозин
http://blog.ragozin.info
alexey.ragozin@gmail.com
20. 1
Deutsche Bank Technology Center
Deutsche Bank
Alexey Ragozin
CEE SECR, October 28-29 19
Данный материал не является предложением или предоставлением какой-либо услуги.
Данный материал предназначен исключительно для информационных и иллюстративных
целей и не предназначен для распространения в рекламных целях. Любой анализ третьих
сторон не предполагает какого-либо одобрения или рекомендации. Мнения, выраженные в
данном материале, являются актуальными на текущий момент, появляются только в этом
материале и могут быть изменены без предварительного уведомления. Эта информация
предоставляется с пониманием того, что в отношении материала, предоставленного здесь,
вы будете принимать самостоятельное решение в отношении любых действий в связи с
настоящим материалом, и это решение является основанным на вашем собственном
суждении, и что вы способны понять и оценить последствия этих действий. ООО
“Технологический Центр Дойче Банка" не несет никакой ответственности за любые убытки
любого рода, относящихся к этому материалу.