Performance management lessons learnt / Андрей Дмитриев (JUGRU)

Preview:

Citation preview

19 Международная конференция по вопросам качества ПО

sqadays.com

Андрей Дмитриев

Москва 2016

Performance Management lessons learnt

19 Международная конференция по вопросам качества ПО

sqadays.com• разработчик, тимлид, груплид

• лидер JUG.ru и CodeFreeze.ru

2

Кто я?

19 Международная конференция по вопросам качества ПО

sqadays.com• разработчик, тимлид, груплид

• лидер JUG.ru и CodeFreeze.ru

3

Кто я?

19 Международная конференция по вопросам качества ПО

sqadays.com• разработчик, тимлид, груплид

• лидер JUG.ru и CodeFreeze.ru

4

Кто я?

19 Международная конференция по вопросам качества ПО

sqadays.com• разработчик, тимлид, груплид

• лидер JUG.ru и CodeFreeze.ru

5

Кто я?

19 Международная конференция по вопросам качества ПО

sqadays.com• Научить вас проводить performance-тестирование

6

Цель

19 Международная конференция по вопросам качества ПО

sqadays.com• Научить вас проводить performance-тестирование

7

Цель

19 Международная конференция по вопросам качества ПО

sqadays.com• Научить вас проводить performance-тестирование

• Показать как не надо делать

8

Цель

19 Международная конференция по вопросам качества ПО

sqadays.com• Научить вас проводить performance-тестирование

• Показать как не надо делать

9

Цель

19 Международная конференция по вопросам качества ПО

sqadays.com• Научить вас проводить performance-тестирование

• Показать как не надо делать

• Поделиться своим опытом

10

Цель

19 Международная конференция по вопросам качества ПО

sqadays.com• Научить вас проводить performance-тестирование

• Показать как не надо делать

• Поделиться своим опытом

11

Цель

19 Международная конференция по вопросам качества ПО

sqadays.com• Научить вас проводить performance-тестирование

• Показать как не надо делать

• Поделиться своим опытом

• Нагрузочное тестирование – это не (с)только автоматизированные сценарии, но и автоматизация:

12

Цель

19 Международная конференция по вопросам качества ПО

sqadays.com• Научить вас проводить performance-тестирование

• Показать как не надо делать

• Поделиться своим опытом

• Нагрузочное тестирование – это не (с)только автоматизированные сценарии, но и автоматизация:

• выборки данных,

13

Цель

19 Международная конференция по вопросам качества ПО

sqadays.com• Научить вас проводить performance-тестирование

• Показать как не надо делать

• Поделиться своим опытом

• Нагрузочное тестирование – это не (с)только автоматизированные сценарии, но и автоматизация:

• выборки данных,

• предстартовой проверки и

14

Цель

19 Международная конференция по вопросам качества ПО

sqadays.com• Научить вас проводить performance-тестирование

• Показать как не надо делать

• Поделиться своим опытом

• Нагрузочное тестирование – это не (с)только автоматизированные сценарии, но и автоматизация:

• выборки данных,

• предстартовой проверки и

• анализа результатов.

15

Цель

19 Международная конференция по вопросам качества ПО

sqadays.com

• Нагрузочное тестирование – это не (с)только автоматизированные сценарии, но и автоматизация:

• выборки данных,

• предстартовой проверки и

• анализа результатов.

16

ЦельА B

19 Международная конференция по вопросам качества ПО

sqadays.com

• Нагрузочное тестирование – это не (с)только автоматизированные сценарии, но и автоматизация:

• выборки данных,

• предстартовой проверки и

• анализа результатов.

17

ЦельА B C

19 Международная конференция по вопросам качества ПО

sqadays.com•Все лгут

•Тестирование – это данные

•Знай и умей свои компоненты

18

План

19 Международная конференция по вопросам качества ПО

sqadays.com

19

Все лгут

19 Международная конференция по вопросам качества ПО

sqadays.com• Файл с 1,5 миллионами ордеров

20

Тестирование начинается с volumetrix

19 Международная конференция по вопросам качества ПО

sqadays.com• Файл с 1,5 миллионами ордеров

• Валидация заказчиком пройдена

• Тем не менее, ошибка в плане допущена

21

Тестирование начинается с volumetrix

19 Международная конференция по вопросам качества ПО

sqadays.com

22

Дело о пропавшей диаграммеПослеДо

App server

Oracle

Node1Node3 Node4

Node2

19 Международная конференция по вопросам качества ПО

sqadays.com

23

Дело о пропавшей диаграммеПослеДо

App server

Oracle

Node1Node3 Node4

Node2

19 Международная конференция по вопросам качества ПО

sqadays.com• Отчет на тесте работает моментально, а на проде - часы

24

Отчет убить нельзя починить

19 Международная конференция по вопросам качества ПО

sqadays.com

25

Отчет убить нельзя починить: Было

EVT:

CCN:

PON:

*

*

TOMS:

IMA:

*

19 Международная конференция по вопросам качества ПО

sqadays.com

26

Отчет убить нельзя починить: Как нужно

EVT:

CCN:

PON:

*

*

TOMS:

IMA:

ICON:

*

*

19 Международная конференция по вопросам качества ПО

sqadays.com

27

Отчет убить нельзя починить: Стало

EVT:

CCN:

PON:

*

*

TOMS:

IMA:

ICON:

*

19 Международная конференция по вопросам качества ПО

sqadays.com

28

Отчет убить нельзя починить: Как нужно

EVT:

CCN:

PON:

*

*

TOMS:

IMA:

ICON:

*

*

19 Международная конференция по вопросам качества ПО

sqadays.com• Отчет на тесте работает моментально, а на проде - часы

• Разработчик в хотфиксе не поставил звездочку на поле

• Тест продолжал искать без одного критерия и выдавал пустое множество

29

Отчет убить нельзя починить

19 Международная конференция по вопросам качества ПО

sqadays.com• Отчет на тесте работает моментально, а на проде - часы

• Разработчик в хотфиксе не поставил звездочку на поле

• Тест продолжал искать без одного критерия и выдавал пустое множество

• После восстановления функциональности тест по-прежнему работал быстрее, чем на проде

30

Отчет убить нельзя починить

19 Международная конференция по вопросам качества ПО

sqadays.com• Отчет на тесте работает моментально, а на проде - часы

• Разработчик в хотфиксе не поставил звездочку на поле

• Тест продолжал искать без одного критерия и выдавал пустое множество

• После восстановления функциональности тест по-прежнему работал быстрее, чем на проде

• Но это уже следующая история

31

Отчет убить нельзя починить

19 Международная конференция по вопросам качества ПО

sqadays.com

32

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

19 Международная конференция по вопросам качества ПО

sqadays.com• Отчет на тесте работает быстро, а на проде - часы

33

Синтетика данных

19 Международная конференция по вопросам качества ПО

sqadays.com• Отчет на тесте работает быстро, а на проде - часы

• Причина - разные сложности данных

• Да, мы делаем автопроверку теперь

• Да, мы делаем выборку правильных данных теперь

34

Синтетика данных

19 Международная конференция по вопросам качества ПО

sqadays.com• Отчет все равно строится дольше, чем ожидается

• Причина: синтетические данные лежат в файлах данных последовательно

• В реальности они сильно фрагментированы

35

Синтетика данных - копаем дальше

19 Международная конференция по вопросам качества ПО

sqadays.com• Отчет все равно строится дольше, чем ожидается

• Причина: синтетические данные лежат в файлах данных последовательно

• В реальности они сильно фрагментированы

• Данные выровняли:

• эмулировали “натуральное” их создание

• создали индексы правильно

• Идеально было бы копировать .dbf-файлы вместо импорта

36

Синтетика данных - копаем дальше

19 Международная конференция по вопросам качества ПО

sqadays.com

37

Кривая 90% line

19 Международная конференция по вопросам качества ПО

sqadays.com

38

Кривая 90% line

19 Международная конференция по вопросам качества ПО

sqadays.com

39

Кривая 90% line

19 Международная конференция по вопросам качества ПО

sqadays.com

40

Кривая 90% line

19 Международная конференция по вопросам качества ПО

sqadays.com

41

Кривая 90% line

Квартет Энскомба: https://goo.gl/wBOLhI

19 Международная конференция по вопросам качества ПО

sqadays.com

42

Знай и умей свои компоненты

19 Международная конференция по вопросам качества ПО

sqadays.com• Результаты тестов показали таймауты

43

Я твои стабы на перфоманс проверял

19 Международная конференция по вопросам качества ПО

sqadays.com• Результаты тестов показали таймауты

• Проблема – в стабах

44

Я твои стабы на перфоманс проверял

19 Международная конференция по вопросам качества ПО

sqadays.com

45

Я твои стабы на перфоманс проверял

19 Международная конференция по вопросам качества ПО

sqadays.com• Результаты тестов показали таймауты

• Проблема – в стабах

• Решение – это ядро плюс сторонние компоненты

46

Я твои стабы на перфоманс проверял

19 Международная конференция по вопросам качества ПО

sqadays.com• Отсутствие данных sar на тестовой системе

47

Дело о пропавшей Саре

19 Международная конференция по вопросам качества ПО

sqadays.com

• Отсутствие данных sar на тестовой системе

48

Дело о пропавшей Саре

19 Международная конференция по вопросам качества ПО

sqadays.com• Отсутствие данных sar на тестовой системе

• Причина - переполнение партиции /home

• В чеклист и скрипт включили проверку места подо все

49

Дело о пропавшей Саре

19 Международная конференция по вопросам качества ПО

sqadays.com• В отчетах снова стали появляться задержки по 30 секунд!

• Хьюстон, у нас проблемы!

50

Injector не выдержит двоих

19 Международная конференция по вопросам качества ПО

sqadays.com• В отчетах снова стали появляться задержки по 30 секунд!

• Хьюстон, у нас проблемы!

51

Injector не выдержит двоих

Injector

19 Международная конференция по вопросам качества ПО

sqadays.com• Нужна проверка окружения до начала тестов

• Нужна проверка данных до и после замера

• Нужна проверка результатов после замера

• Автоматизация – это не только скрипты тестов

52

Итоги

19 Международная конференция по вопросам качества ПО

sqadays.com

53

Extra

Введение в Performance Management

• В систему будет поступать в среднем 3000 запросов в сутки

• Длительность теста - 1 час

А. 375 C. 125

B. 3000 D. Неизвестно

Сколько запросов должно быть выполнено за 1 час?

Введение в Performance Management

• В систему будет поступать в среднем 3000 запросов в сутки

• Длительность теста - 1 час

А. 375 (3000/8) C. 125 (3000/12)

B. 3000 D. Неизвестно

Сколько запросов должно быть выполнено за 1 час?

Простой пример #1• В систему будет поступать в среднем 3000 запросов в сутки

• Длительность теста - 1 час

• Сколько запросов должно быть выполнено?

Введение в Performance Management

19 Международная конференция по вопросам качества ПО

sqadays.com• Что такое конфигурация

• Когда используется Compliance

• Причины почему недотюнили

• Что получилось в итоге

57

Мертвая лошадь Compliance

19 Международная конференция по вопросам качества ПО

sqadays.com• Runnable run = new Runnable (){

• public void run () {

• synchronized (STATIC_OBJECT) {

• вызватьЗапрос();

• }

• }

• }

58

ThreadPool не параллелится

Recommended