101 способ провести нагрузочное тестирование неправильно
Upcoming SlideShare
Loading in...5
×
 

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

on

  • 653 views

 

Statistics

Views

Total Views
653
Views on SlideShare
476
Embed Views
177

Actions

Likes
1
Downloads
14
Comments
0

3 Embeds 177

http://sqadays.com 112
http://www.sqadays.com 64
http://it-conf.ru 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

  • 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 Схема решения
  • 29© 2014 NetCracker Technology Corporation Confidential Схема решения
  • 30© 2014 NetCracker Technology Corporation Confidential Схема решения 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 RecordHouse 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 RecordHouse 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 RecordHouse 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 RecordHouse 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