20
Deutsche Bank Technology Centre Deutsche Bank Эволюция Нагрузочного Тестирования от Автоматизации до BDD Алексей Рагозин

Эволюция нагрузочного тестирования – от простой автоматизации до BDD

Embed Size (px)

Citation preview

Page 1: Эволюция нагрузочного тестирования – от простой автоматизации до BDD

Deutsche Bank Technology CentreDeutsche Bank

Эволюция Нагрузочного Тестированияот Автоматизации до BDDАлексей Рагозин

Page 2: Эволюция нагрузочного тестирования – от простой автоматизации до BDD

12.5

cm

(4.9

2 in

)

0.5

cm (0

.20

in)

0.5

cm (0

.20

in)

12.5

cm

(4.9

2 in

)

13.2

5 cm

– id

entif

ier (

5.51

in)

Deutsche Bank Technology Center

Deutsche Bank Alexey RagozinCEE SECR, October 28-29

Нагрузочный тест

Развёртывание >> Прогон >> Обработка Результатов

Page 3: Эволюция нагрузочного тестирования – от простой автоматизации до BDD

12.5

cm

(4.9

2 in

)

0.5

cm (0

.20

in)

0.5

cm (0

.20

in)

12.5

cm

(4.9

2 in

)

13.2

5 cm

– id

entif

ier (

5.51

in)

Deutsche Bank Technology Center

Deutsche Bank Alexey RagozinCEE SECR, October 28-29

Традиционный подход

Развёртывание Прогон Обработка результатов

Инструменты нагрузочногоо тестирования

Прогон сценария Поддержка стандартных протоколов

Подготовкатестовых данных

Традиционныесредства

развёртывания

? Самописный код awk, Excel, R, …

Page 4: Эволюция нагрузочного тестирования – от простой автоматизации до BDD

12.5

cm

(4.9

2 in

)

0.5

cm (0

.20

in)

0.5

cm (0

.20

in)

12.5

cm

(4.9

2 in

)

13.2

5 cm

– id

entif

ier (

5.51

in)

Deutsche Bank Technology Center

Deutsche Bank Alexey RagozinCEE SECR, October 28-29

Тестирование на ранней стадии разработки

Новый проектНет инфраструктуры развёртыванияНет выделенного инженера по производительностиНет времени гонять тесты

Непрерывное тестированиеТестирование на последней версии кодаТестирование в нерабочие часыТребуется полная автоматизация цикла тестирования

Page 5: Эволюция нагрузочного тестирования – от простой автоматизации до BDD

12.5

cm

(4.9

2 in

)

0.5

cm (0

.20

in)

0.5

cm (0

.20

in)

12.5

cm

(4.9

2 in

)

13.2

5 cm

– id

entif

ier (

5.51

in)

Deutsche Bank Technology Center

Deutsche Bank Alexey RagozinCEE SECR, October 28-29

Распределённое нагрузочное тестированиеТестовый стенд – распределённая система

Развёртывание- координация развёртывание между узлами

Подготовка данных- параллельная генерация данных

Сценарий тестирования- координация фермы нагрузки

Сбор результатов- распределённые источники данных

Page 6: Эволюция нагрузочного тестирования – от простой автоматизации до BDD

12.5

cm

(4.9

2 in

)

0.5

cm (0

.20

in)

0.5

cm (0

.20

in)

12.5

cm

(4.9

2 in

)

13.2

5 cm

– id

entif

ier (

5.51

in)

Deutsche Bank Technology Center

Deutsche Bank Alexey RagozinCEE SECR, October 28-29

Вариации на тему KPIВремя выполнения

запросаВремя

прохождения события через

систему

Время восстановления

после сбоя

C S I S1 S2 O

Предельно допустимая

нагрузка

Page 7: Эволюция нагрузочного тестирования – от простой автоматизации до BDD

12.5

cm

(4.9

2 in

)

0.5

cm (0

.20

in)

0.5

cm (0

.20

in)

12.5

cm

(4.9

2 in

)

13.2

5 cm

– id

entif

ier (

5.51

in)

Deutsche Bank Technology Center

Deutsche Bank Alexey RagozinCEE SECR, October 28-29

Синдром “полураспада” тестов

λ

Page 8: Эволюция нагрузочного тестирования – от простой автоматизации до BDD

12.5

cm

(4.9

2 in

)

0.5

cm (0

.20

in)

0.5

cm (0

.20

in)

12.5

cm

(4.9

2 in

)

13.2

5 cm

– id

entif

ier (

5.51

in)

Deutsche Bank Technology Center

Deutsche Bank Alexey RagozinCEE SECR, October 28-29

«Эталонный» стек нагрузочного тестирования

Управление распределённой

средой

Координациясценария

тестирования

Сборрезультатовизмерений

Обработкарезультатов и

подготовка отчета

Развёртывание Обработка результатов

Функционал типового инструмента нагрузочного тестирования

Прогон

Page 9: Эволюция нагрузочного тестирования – от простой автоматизации до BDD

12.5

cm

(4.9

2 in

)

0.5

cm (0

.20

in)

0.5

cm (0

.20

in)

12.5

cm

(4.9

2 in

)

13.2

5 cm

– id

entif

ier (

5.51

in)

Deutsche Bank Technology Center

Deutsche Bank Alexey RagozinCEE SECR, October 28-29

Развёртывание Vs. Прогон

Развёртывание Прогон

StartStorage

StartStorage

StartStorage

Wait forCluster

StartService

StartService

StartService

Warm up Warm up

ProduceLoad

ProduceLoad

Kill cluster node

Page 10: Эволюция нагрузочного тестирования – от простой автоматизации до BDD

12.5

cm

(4.9

2 in

)

0.5

cm (0

.20

in)

0.5

cm (0

.20

in)

12.5

cm

(4.9

2 in

)

13.2

5 cm

– id

entif

ier (

5.51

in)

Deutsche Bank Technology Center

Deutsche Bank Alexey RagozinCEE SECR, October 28-29

Сбор и Обработка Результатов

ПроблемыОбъём данныхМножество распределённых источников данныхОбработка данных не должна влиять на тестируемую

систему

РешенияРаспределённая обработка данных – слишком сложноПакетная обработка после завершения прогона

Page 11: Эволюция нагрузочного тестирования – от простой автоматизации до BDD

12.5

cm

(4.9

2 in

)

0.5

cm (0

.20

in)

0.5

cm (0

.20

in)

12.5

cm

(4.9

2 in

)

13.2

5 cm

– id

entif

ier (

5.51

in)

Deutsche Bank Technology Center

Deutsche Bank Alexey RagozinCEE SECR, October 28-29

Full Java Performance Testing Stack

Презентация фреймворкаhttp://www.slideshare.net/aragozin/java-57296922https://www.youtube.com/watch?v=70y83wBGhOUhttps://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/

Page 12: Эволюция нагрузочного тестирования – от простой автоматизации до BDD

12.5

cm

(4.9

2 in

)

0.5

cm (0

.20

in)

0.5

cm (0

.20

in)

12.5

cm

(4.9

2 in

)

13.2

5 cm

– id

entif

ier (

5.51

in)

Deutsche Bank Technology Center

Deutsche Bank Alexey RagozinCEE SECR, October 28-29

Проверка временем

Плюсы

ГибкостьЕстественная интеграция

в цикл разработки

Минусы

Слишком много Java кода Проблема “полураспада”

тестов до конца не решена Проблема качества тестов

Page 13: Эволюция нагрузочного тестирования – от простой автоматизации до BDD

12.5

cm

(4.9

2 in

)

0.5

cm (0

.20

in)

0.5

cm (0

.20

in)

12.5

cm

(4.9

2 in

)

13.2

5 cm

– id

entif

ier (

5.51

in)

Deutsche Bank Technology Center

Deutsche Bank Alexey RagozinCEE SECR, October 28-29

Качество тестов

AssertionError: expected: 1 but was: 0

Как это затрагивает пользователей системы?Возможна ли эксплуатация системы с дефектом?Какие бизнес-требования нарушены?Является ли проблема критической?

Page 14: Эволюция нагрузочного тестирования – от простой автоматизации до BDD

12.5

cm

(4.9

2 in

)

0.5

cm (0

.20

in)

0.5

cm (0

.20

in)

12.5

cm

(4.9

2 in

)

13.2

5 cm

– id

entif

ier (

5.51

in)

Deutsche Bank Technology Center

Deutsche Bank Alexey RagozinCEE SECR, October 28-29

Выбор метрик

•Применимость критерия успешности•Понятный бизнес смысл•Понятный физический смысл (часы, пользователи, попугаи)•Устойчивость к изменениям в системе

Пример хорошей метрикиКоличество пользователей в системе при сохранении SLA

Page 15: Эволюция нагрузочного тестирования – от простой автоматизации до BDD

12.5

cm

(4.9

2 in

)

0.5

cm (0

.20

in)

0.5

cm (0

.20

in)

12.5

cm

(4.9

2 in

)

13.2

5 cm

– id

entif

ier (

5.51

in)

Deutsche Bank Technology Center

Deutsche Bank Alexey RagozinCEE SECR, October 28-29

Lucene – непрерывное тестирование

http://people.apache.org/~mikemccand/lucenebench

Page 16: Эволюция нагрузочного тестирования – от простой автоматизации до BDD

12.5

cm

(4.9

2 in

)

0.5

cm (0

.20

in)

0.5

cm (0

.20

in)

12.5

cm

(4.9

2 in

)

13.2

5 cm

– id

entif

ier (

5.51

in)

Deutsche Bank Technology Center

Deutsche Bank Alexey RagozinCEE SECR, October 28-29

BDD Подход

Выражаясь BDD языком, нагрузочный тест - это

Given Тестовое окружение подготовленоWhen Прогон сценария законченThen Метрика X лежит в диапазоне […]Then Метрика Y лежит в диапазоне […]

Page 17: Эволюция нагрузочного тестирования – от простой автоматизации до BDD

12.5

cm

(4.9

2 in

)

0.5

cm (0

.20

in)

0.5

cm (0

.20

in)

12.5

cm

(4.9

2 in

)

13.2

5 cm

– id

entif

ier (

5.51

in)

Deutsche Bank Technology Center

Deutsche Bank Alexey RagozinCEE SECR, October 28-29

BDD ПодходНавязывание структуры

Параметры среды / Параметры сценария / КритерииРазделение кода и назначение тестаВыделение компонентов для повторного использованияФормализация критериев успешности теста

Уменьшение стоимости владения тестовым портфелем!

Page 18: Эволюция нагрузочного тестирования – от простой автоматизации до BDD

12.5

cm

(4.9

2 in

)

0.5

cm (0

.20

in)

0.5

cm (0

.20

in)

12.5

cm

(4.9

2 in

)

13.2

5 cm

– id

entif

ier (

5.51

in)

Deutsche Bank Technology Center

Deutsche Bank Alexey RagozinCEE SECR, October 28-29

Заключение

•Критерий успешности – признак “хорошего” теста•Границы теста:

[Развертывание – Вычисление критерия успешности]•BDD помогает поддерживать качество тестов

Page 19: Эволюция нагрузочного тестирования – от простой автоматизации до BDD

12.5

cm

(4.9

2 in

)

0.5

cm (0

.20

in)

0.5

cm (0

.20

in)

12.5

cm

(4.9

2 in

)

13.2

5 cm

– id

entif

ier (

5.51

in)

Deutsche Bank Technology Center

Deutsche Bank Alexey RagozinCEE SECR, October 28-29

Спасибо

Алексей Рагозинhttp://[email protected]

Page 20: Эволюция нагрузочного тестирования – от простой автоматизации до BDD

12.5

cm

(4.9

2 in

)

0.5

cm (0

.20

in)

0.5

cm (0

.20

in)

12.5

cm

(4.9

2 in

)

13.2

5 cm

– id

entif

ier (

5.51

in)

Deutsche Bank Technology Center

Deutsche Bank Alexey RagozinCEE SECR, October 28-29 20

Данный материал не является предложением или предоставлением какой-либо услуги. Данный материал предназначен исключительно для информационных и иллюстративных целей и не предназначен для распространения в рекламных целях. Любой анализ третьих сторон не предполагает какого-либо одобрения или рекомендации. Мнения, выраженные в данном материале, являются актуальными на текущий момент, появляются только в этом материале и могут быть изменены без предварительного уведомления. Эта информация предоставляется с пониманием того, что в отношении материала, предоставленного здесь, вы будете принимать самостоятельное решение в отношении любых действий в связи с настоящим материалом, и это решение является основанным на вашем собственном суждении, и что вы способны понять и оценить последствия этих действий. ООО “Технологический Центр Дойче Банка" не несет никакой ответственности за любые убытки любого рода, относящихся к этому материалу.