101 способ провести нагрузочное тестирование...

Post on 14-Nov-2014

835 views 1 download

description

 

Transcript of 101 способ провести нагрузочное тестирование...

101 способ провести нагрузочное тестирование неправильно

Екатерина Карасаева, Андрей Дмитриев, NetCracker

3© 2014 NetCracker Technology Corporation Confidential

Кто мы

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

• разработчик, тимлид

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

Екатерина Карасаева

• инженер по нагрузочному тестированию

• опыт в нагрузочном тестировании 3,5 года

4© 2014 NetCracker Technology Corporation Confidential

Цель

• Показать подводные камни• Поделиться best-practices

5© 2014 NetCracker Technology Corporation Confidential

Цель

• Показать подводные камни• Поделиться best-practices

6© 2014 NetCracker Technology Corporation Confidential

Цель

• Показать подводные камни• Поделиться best-practices

7© 2014 NetCracker Technology Corporation Confidential

Цель

• Показать подводные камни• Поделиться best-practices

8© 2014 NetCracker Technology Corporation Confidential

Повестка дня

• Что нужно проверять• Тесты: что меряем, что эмулируем• Инструменты под рукой• Процесс замера по шагам• Что можно сделать неправильно?• Вопросы и ответы

9© 2014 NetCracker Technology Corporation Confidential

Термины

• NFR (Non-Functional Requirements)• SVT (Stress and Volume Testing)• Response Time• Throughput• Production vs Test Server vs QA Server/Dev Server• Integrations

10© 2014 NetCracker Technology Corporation Confidential

Цель Stress and Volume Testing

• ???

11© 2014 NetCracker Technology Corporation Confidential

Цель Stress and Volume Testing

• Соответствие решения NFR

12© 2014 NetCracker Technology Corporation Confidential

Цель Stress and Volume Testing

• Соответствие решения NFR• Поиск регрессионных проблем

13© 2014 NetCracker Technology Corporation Confidential

Цель Stress and Volume Testing

• Соответствие решения NFR• Поиск регрессионных проблем • Оценка пределов системы

14© 2014 NetCracker Technology Corporation Confidential

Цель Stress and Volume Testing

• Соответствие решения NFR• Поиск регрессионных проблем • Оценка пределов системы• Красивая картинка для клиента

15© 2014 NetCracker Technology Corporation Confidential

Цель Stress and Volume Testing

• Соответствие решения NFR

• Поиск регрессионных проблем

• Оценка пределов системы

• Красивая картинка для клиента

• ….

16© 2014 NetCracker Technology Corporation Confidential

Цель Stress and Volume Testing

• Соответствие решения NFR

• Поиск регрессионных проблем

• Оценка пределов системы

• Красивая картинка для клиента

• ….

17© 2014 NetCracker Technology Corporation Confidential

Цель Stress and Volume Testing

• Предсказание поведения на Production-системе

• Соответствие решения NFR

• Поиск регрессионных проблем

• Оценка пределов системы

18© 2014 NetCracker Technology Corporation Confidential

Частые проблемы

• Разное железо и конфигурация• Разные OS, patches, versions• Разные данные• Разные профили нагрузки• Нужен быстрый результат

19© 2014 NetCracker Technology Corporation Confidential

Проблема 5: Разные OS, patches, versions

• “А давайте накатим вам новый патч?”

20© 2014 NetCracker Technology Corporation Confidential

Проблема 5: Разные OS, patches, versions

• “А давайте накатим вам новый патч?”

Выход:• При смене патча, сборки, версии и подобного

нужен замер ДО и ПОСЛЕ (baseline-зАмЕр)• 1 фактор изменения – 1 пара замеров

21© 2014 NetCracker Technology Corporation Confidential

Проблема 5: Разные OS, patches, versions

• “А давайте накатим вам новый патч?”

Выход:• При смене патча, сборки, версии и подобного

нужен замер ДО и ПОСЛЕ (baseline-зАмЕр)• 1 фактор изменения – 1 пара замеров

22© 2014 NetCracker Technology Corporation Confidential

Проблема 9: отличие Production от тестового стенда

• Дамп базы данных• Access logs (поведение пользователей)• Распределение нагрузки

Выход:• Регулярная синхронизация с production

23© 2014 NetCracker Technology Corporation Confidential

Проблема 9: отличие Production от тестового стенда

• Дамп базы данных• Access logs (поведение пользователей)• Распределение нагрузки (

Выход:• Регулярная синхронизация с production

24© 2014 NetCracker Technology Corporation Confidential

Схема решения

25© 2014 NetCracker Technology Corporation Confidential

Схема решения

26© 2014 NetCracker Technology Corporation Confidential

Схема решения

27© 2014 NetCracker Technology Corporation Confidential

Схема решения

28© 2014 NetCracker Technology Corporation Confidential

Схема решения

Integration

29© 2014 NetCracker Technology Corporation Confidential

Схема решения

Integration

30© 2014 NetCracker Technology Corporation Confidential

Схема решения

Integration

Integration

Integration

31© 2014 NetCracker Technology Corporation Confidential

Проблема 28: входные данные отличаются от Production

Location House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

Location

Location

Location

32© 2014 NetCracker Technology Corporation Confidential

Проблема 28: входные данные отличаются от Production

Выход:

• данные как-на-продакшн

• автоматизированный генератор данных как-на-продакшн

Location House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

Location

Location

Location

33© 2014 NetCracker Technology Corporation Confidential

Проблема 28: входные данные отличаются от Production

Выход:

• данные как-на-продакшн

• автоматизированный генератор данных как-на-продакшн

Location House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

Location

Location

Location

34© 2014 NetCracker Technology Corporation Confidential

Проблема 28: входные данные отличаются от Production

Выход:

• данные как-на-продакшн

• автоматизированный генератор данных как-на-продакшн

House Record

House Record

Location House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

House Record

Location

Location

Location

35© 2014 NetCracker Technology Corporation Confidential

Что эмулируют наши тесты?

• дневные бизнес-часы (пользователей в системе 400+);

• ночное время (пользователей в системе 80+, а также интеграции с 20+ системами);

• Тестирование масштабируемости решения (100%, 150%, 200%)

36© 2014 NetCracker Technology Corporation Confidential

Процесс замера

• Регулярный план релизов и сборок

• SVT-план

• Подготовка стенда

• Новые проекты - новые тесты

• Смоук-тестирование

• Нагрузка (дневная, ночная)

• Восстановление базы

• Отчет, анализ проблемы

37© 2014 NetCracker Technology Corporation Confidential

Что можно сделать неправильно?

• ???

38© 2014 NetCracker Technology Corporation Confidential

Что можно сделать неправильно?

• Больше, чем можно себе представить!

39© 2014 NetCracker Technology Corporation Confidential

Что можно сделать неправильно?

• Готовы? Поехали!

40© 2014 NetCracker Technology Corporation Confidential

Проблема 45: Плотное расписание сборок

41© 2014 NetCracker Technology Corporation Confidential

Проблема 45: Плотное расписание сборок

Выход:• автоматизация ручной работы• сокращение тестового покрытия

42© 2014 NetCracker Technology Corporation Confidential

Проблема 45: Плотное расписание сборок

Выход:• автоматизация ручной работы• сокращение тестового покрытия

43© 2014 NetCracker Technology Corporation Confidential

Проблема 56: Сборки сырые, хотфикс на хотфиксе

44© 2014 NetCracker Technology Corporation Confidential

Проблема 56: Сборки сырые, хотфикс на хотфиксе

Выход:• не брать хотфиксов в работу (желательно);• брать сборку с грифом «QA-Passed»• иметь несколько серверов

45© 2014 NetCracker Technology Corporation Confidential

Проблема 56: Сборки сырые, хотфикс на хотфиксе

Выход:• не брать хотфиксов в работу (желательно);• брать сборку с грифом «QA-Passed»• иметь несколько серверов

Маленький хотфикс тестировать столько же, сколько и большой.

46© 2014 NetCracker Technology Corporation Confidential

Проблема 56: Сборки сырые, хотфикс на хотфиксе

Выход:• не брать хотфиксов в работу (желательно);• брать сборку с грифом «QA-Passed» Passed• иметь несколько серверов

Маленький хотфикс тестировать столько же, сколько и большой.

47© 2014 NetCracker Technology Corporation Confidential

Проблема 61: Неправильный выбор нагрузочных сценариев

48© 2014 NetCracker Technology Corporation Confidential

Проблема 61: Неправильный выбор нагрузочных сценариев

Выход:• SVT не должно покрывать все сценарии• Нет – однотипным сценариям!• Да – бизнес-критичным сценариям!• Да – самым тяжелым сценариям!

49© 2014 NetCracker Technology Corporation Confidential

Проблема 61: Неправильный выбор нагрузочных сценариев

Выход:• SVT не должно покрывать все сценарии• Нет – однотипным сценариям!• Да – бизнес-критичным сценариям!• Да – самым тяжелым сценариям!

50© 2014 NetCracker Technology Corporation Confidential

Инструменты под рукой

• Jmeter•sar•Oracle AWR•SVTF

51© 2014 NetCracker Technology Corporation Confidential

Кто такой SVTF и что умеет

• Управление:• профилями тестов;• конфигурацией;• пререквизитами;• замером.

• Сбор логов и статистики с распределенных машин

• История хранения запусков

• Обработка данных и построение отчетов

52© 2014 NetCracker Technology Corporation Confidential

53© 2014 NetCracker Technology Corporation Confidential

Минутка планирования

DataGen Замер Анализ Flashback DataGen

54© 2014 NetCracker Technology Corporation Confidential

Проблема 79: Невалидные входные данные?

55© 2014 NetCracker Technology Corporation Confidential

Проблема 79: Невалидные входные данные?

Выход:• восстановление базы данных после каждого

замера• автоматизированный валидатор входных

данных

56© 2014 NetCracker Technology Corporation Confidential

Проблема 79: Невалидные входные данные?

Выход:• восстановление базы данных после каждого

замера• автоматизированный валидатор входных

данных

57© 2014 NetCracker Technology Corporation Confidential

Проблема 82: Jmeter-скрипт часто валится

58© 2014 NetCracker Technology Corporation Confidential

Проблема 82: Jmeter-скрипт часто валится

59© 2014 NetCracker Technology Corporation Confidential

Проблема 82: Jmeter-скрипт часто валится

Выход:• Чем проще – тем лучше• Нет – пререквизитам в скрипте• Нет – лишней логике в нагрузочном скрипте• Пользоваться стандартными решениями

60© 2014 NetCracker Technology Corporation Confidential

Проблема 82: Jmeter-скрипт часто валится

Выход:• Чем проще – тем лучше• Нет – пререквизитам в скрипте• Нет – лишней логике в нагрузочном скрипте• Пользоваться стандартными решениями

61© 2014 NetCracker Technology Corporation Confidential

Проблема 95: В начале теста сервер тормозит

62© 2014 NetCracker Technology Corporation Confidential

Проблема 95: В начале теста сервер тормозит

Выход:• прогревочный замер обязателен• отрезать первые 10-30 минут из основного

замера

63© 2014 NetCracker Technology Corporation Confidential

Проблема 95: В начале теста сервер тормозит

Выход:• прогревочный замер обязателен• отрезать первые 10-30 минут из основного

замера

64© 2014 NetCracker Technology Corporation Confidential

Проблема 97: Закончилось место во время замера

65© 2014 NetCracker Technology Corporation Confidential

Проблема 97: Закончилось место во время замера

Выход:• знать, сколько места занимает 1 прогон тестов• (авто) чек-лист

‒ tablespaces‒ hdd‒ archivelogs‒ RAM

66© 2014 NetCracker Technology Corporation Confidential

Проблема 97: Закончилось место во время замера

Выход:• знать, сколько места занимает 1 прогон тестов• (авто) чек-лист

‒ tablespaces‒ hdd‒ archivelogs‒ RAM

67© 2014 NetCracker Technology Corporation Confidential

Проблема 101: В фоне что-то работало, невалидный замер

68© 2014 NetCracker Technology Corporation Confidential

Проблема 101: В фоне что-то работало, невалидный замер

Выход:• проверка перед замером, что система в

спокойном состоянии• проверка, что система не находится в swap• выключение соседних инстансов и баз, если

они находятся на одном оборудовании

69© 2014 NetCracker Technology Corporation Confidential

Проблема 101: В фоне что-то работало, невалидный замер

Выход:• проверка перед замером, что система в

спокойном состоянии• проверка, что система не находится в swap• выключение соседних инстансов и баз, если

они находятся на одном оборудовании

70© 2014 NetCracker Technology Corporation Confidential

Выводы

• 100% проблем с производительностью заранее не обнаружить

• Но можно двигаться в этом направлении!

71© 2014 NetCracker Technology Corporation Confidential

Контакты

Андрей Дмитриев• andrei.v.dmitriev@NetCracker.com

Екатерина Карасаева• karasaeva@NetCracker.com

Q&A

72© 2014 NetCracker Technology Corporation Confidential

Thank you!

73© 2014 NetCracker Technology Corporation Confidential