SlideShare ist ein Scribd-Unternehmen logo
1 von 19
Software quality assurance days
21 Международная конференция
по вопросам качества ПО
sqadays.com
Москва. 26–27 мая 2017
Сергей Журин
Performance-lab. Москва, Россия
s.zhurin@pflb.ru
Нагрузочное тестирование: Нестандартные методы
анализа потока данных в приложениях.
 Введение
 Описание ситуации
 Предпосылки к задаче
 Основная часть
 Стандартные средства анализа потока данных
 Нестандартные средства
 Примеры проектов
Содержание
Описание:
 Есть система, которая что-то делает
 В этой системе существует некоторый поток
данных
 Чтобы обрабатывать этот поток данных
требуются ресурсы
Проблема:
 Нам нужно получить некоторую информацию о
потоке данных
Описание ситуации
Поиск проблемы:
 Рост времени отображения страницы
 Появление ошибок (Out of memory exception)
Прогнозирование:
 Расширение торговой сети
 Смена версии ПО, железа
 Hot season
Предпосылки к задаче
Стандартные средства:
 Консультация у разработчика
 Встроенный мониторинг БД
 Профилирование кода приложения
 Анализ трафика (сниффинг)
 Самостоятельная разработка инструмента мониторинга
Нестандартные средства:
 Модификация скомпилированного кода приложения
Средства для анализа потока данных
Обратится с вопросом к разработчику или к
компетентному лицу
Плюсы:
 Знает свое приложение
Минусы:
 Разработчика нет (уволился)
 У разработчика нет времени
Стандартные средства: Разработчик
В каждой нормальной Базе Данных можно настроить
мониторинг
В основном выгружается топ sql запросов по
некоторым параметрам
Плюсы:
 Уже реализовано
 В 95% случаях этого хватает
Минусы:
 Иногда нужно больше информации
 Чем больше информации собирается, тем больше
ресурсов требуется
Стандартные средства : Мониторинг БД
Плюсы и минусы аналогичны мониторингу БД
Плюсы:
 Уже реализовано
 В 95% случаях этого хватает
Минусы:
 Иногда нужно больше информации
 Чем больше информации собирается, тем
больше ресурсов требуется
Стандартные средства: Профилирование кода
Сниффер – утилита, которая позволяет
анализировать сетевой трафик
Плюсы:
 Ловит все
 Поддерживает большинство сетевых протоколов
Минусы:
 Нужен парсер трафика
Стандартные средства: Анализ трафика
Лучше пользоваться уже готовыми
инструментами
Плюсы:
 В итоге Вы получаете то, что хотите
Минусы:
 Время разработки
 Не всегда это можно сделать, нужны
исходники
Стандартные средства: Самостоятельно
Модифицировать скомпилированный код:
 C/C++ – бинарные файлы “.dll”, “.exe”
 Java – byte code “.class”
 C# – “.net”
Плюсы:
 Мы можем работать в любой ситуации
 Не нужна декомпиляция
Минусы:
 Большая сложность
Модификация скомпилированного кода
 ASM – быстрая и активно развивается
 BCEL – относительно медленная, больше не разрабатывается
 Javaassist – самый простой вариант, чтобы начать
 CGLIB – надстройка над ASM, для большего удобства
 Byte buddy – генерирует классы посредством DSL. Активно развивается
Модификация byte code’а: Обзор инструментов
Причины непопулярности:
 Отсутствие опыта работы и выглядит страшно
 Сложно понять, что изменять
Скомпилированный код сильно отличается от исходного.
Есть несложные алгоритмы для:
 Написания заглушек
 Анализа потока через приложение
Модификация byte code’а: Теория
В каждый public метод вставить код:
если вызов в thread’е первый, то логируем
параметры вызова и возвращаемое значение
Что получаем:
 Методы, которые вызываются системой в драйвере
 Параметры вызова этих методов
 Возвращаемые методами значения
Модификация byte code’а: Логирование входа
Система 1
java драйвер
Система 2
До и после вызова ко внешней системе вставить лог:
 Параметров вызова
 Возвращаемого значения
Трудность при логировании выхода:
 Нужно определять, вызов каких методов логировать
Кандидаты на лог:
 Вызов native методов – вызовы библиотек dll (OCI
драйвер для Oracle)
 Вызов других jar
Модификация byte code’а: Логирование выхода
Система 1
java драйвер
Система 2
Что будет если главную БД
заменить на другую?
Примеры из практики: Переход на новую БД
Параметры к sql-запросам?
 Мониторинг БД:
 Не содержит параметры запросов
 Подробный мониторинг – убивает БД
 Профилирование: не содержит параметры вызова
 Анализ трафика: нельзя найти параметры из-за мусора
 Три application server’а
 Запуск ночью заданий для
 Расчета цен на следующий день
 Дозаказ товаров
 Подготовка отчетов
 Задача: построить зависимость количества
sql-запросов (по типам) от времени и
сравнить ее с другими метриками
Примеры из практики: Анализ ночного профиля
Модификация скомпилированного
применяется для:
 Сделать свою вундервафлю, когда
нет исходников
 Профилирования в условиях, когда
нормальный профилировщик
нельзя использовать
 Анализ сложности кода
 Безопасность
 Проверки на хеш приложения
 Обфускация
Техническая информация: что еще?
Презентацию выполнил:
Журин Сергей.
s.zhurin@pflb.ru
Инженер по производительности ПО
Performance lab.
Вопросы и ответы

Weitere ähnliche Inhalte

Was ist angesagt?

WPF Automation – test injection approach to application testing
WPF Automation – test injection approach to application testingWPF Automation – test injection approach to application testing
WPF Automation – test injection approach to application testingSQALab
 
Шаблоны проектирования нагрузочных скриптов
Шаблоны проектирования нагрузочных скриптовШаблоны проектирования нагрузочных скриптов
Шаблоны проектирования нагрузочных скриптовSQALab
 
Становление процесса автоматизированного тестирования в интернет-магазине ОКЕЙ
Становление процесса автоматизированного тестирования в интернет-магазине ОКЕЙСтановление процесса автоматизированного тестирования в интернет-магазине ОКЕЙ
Становление процесса автоматизированного тестирования в интернет-магазине ОКЕЙCEE-SEC(R)
 
Эволюция нагрузочного тестирования – от простой автоматизации до BDD
Эволюция нагрузочного тестирования – от простой автоматизации до BDDЭволюция нагрузочного тестирования – от простой автоматизации до BDD
Эволюция нагрузочного тестирования – от простой автоматизации до BDDCEE-SEC(R)
 
Тест-менеджмент в Jira. Анна Добрынина
Тест-менеджмент в Jira. Анна ДобрынинаТест-менеджмент в Jira. Анна Добрынина
Тест-менеджмент в Jira. Анна Добрынинаqasib
 
Как развить отдел тестирования от палки-копалки до CI
Как развить отдел тестирования от палки-копалки до CIКак развить отдел тестирования от палки-копалки до CI
Как развить отдел тестирования от палки-копалки до CICEE-SEC(R)
 
Ошибки начинающего специалиста по нагрузочному тестированию и как их избежать
Ошибки начинающего специалиста по нагрузочному тестированию и как их избежатьОшибки начинающего специалиста по нагрузочному тестированию и как их избежать
Ошибки начинающего специалиста по нагрузочному тестированию и как их избежатьSQALab
 
Что ждет тестировщиков при организации процесса тестирования Enterprise-проду...
Что ждет тестировщиков при организации процесса тестирования Enterprise-проду...Что ждет тестировщиков при организации процесса тестирования Enterprise-проду...
Что ждет тестировщиков при организации процесса тестирования Enterprise-проду...SQALab
 
Первый шаг на пути к тестированию белого ящика для сложных систем
Первый шаг на пути к тестированию белого ящика для сложных системПервый шаг на пути к тестированию белого ящика для сложных систем
Первый шаг на пути к тестированию белого ящика для сложных системSQALab
 
Quality Assurance vs Quality Control - так в чем же заключается работа специа...
Quality Assurance vs Quality Control - так в чем же заключается работа специа...Quality Assurance vs Quality Control - так в чем же заключается работа специа...
Quality Assurance vs Quality Control - так в чем же заключается работа специа...COMAQA.BY
 
Длинный путь к DevOps?
Длинный путь к DevOps?Длинный путь к DevOps?
Длинный путь к DevOps?CEE-SEC(R)
 
Scrum глазами тестировщика или как создать стратегию для любой задачи
Scrum глазами тестировщика или как создать стратегию для любой задачиScrum глазами тестировщика или как создать стратегию для любой задачи
Scrum глазами тестировщика или как создать стратегию для любой задачиIT61
 
Архитектура автоматизированных тестов: представление предметной области
Архитектура автоматизированных тестов: представление предметной областиАрхитектура автоматизированных тестов: представление предметной области
Архитектура автоматизированных тестов: представление предметной областиSQALab
 
Тестируем производительность с помощью Selenium
Тестируем производительность с помощью SeleniumТестируем производительность с помощью Selenium
Тестируем производительность с помощью SeleniumSQALab
 
Sqadays 2010 burmistrov_fomin_20101120(2)
Sqadays 2010 burmistrov_fomin_20101120(2)Sqadays 2010 burmistrov_fomin_20101120(2)
Sqadays 2010 burmistrov_fomin_20101120(2)Alexei Lupan
 
WP как экспериментальная платформа
WP как экспериментальная платформаWP как экспериментальная платформа
WP как экспериментальная платформаSQALab
 
QA Fest 2016. Денис Яременко. Как облегчить процесс мобильного тестирования
QA Fest 2016. Денис Яременко. Как облегчить процесс мобильного тестированияQA Fest 2016. Денис Яременко. Как облегчить процесс мобильного тестирования
QA Fest 2016. Денис Яременко. Как облегчить процесс мобильного тестированияQAFest
 
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в DevopsQA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в DevopsQAFest
 
Сетевые снифферы в тестировании
Сетевые снифферы в тестированииСетевые снифферы в тестировании
Сетевые снифферы в тестированииSQALab
 

Was ist angesagt? (20)

WPF Automation – test injection approach to application testing
WPF Automation – test injection approach to application testingWPF Automation – test injection approach to application testing
WPF Automation – test injection approach to application testing
 
Шаблоны проектирования нагрузочных скриптов
Шаблоны проектирования нагрузочных скриптовШаблоны проектирования нагрузочных скриптов
Шаблоны проектирования нагрузочных скриптов
 
Становление процесса автоматизированного тестирования в интернет-магазине ОКЕЙ
Становление процесса автоматизированного тестирования в интернет-магазине ОКЕЙСтановление процесса автоматизированного тестирования в интернет-магазине ОКЕЙ
Становление процесса автоматизированного тестирования в интернет-магазине ОКЕЙ
 
Эволюция нагрузочного тестирования – от простой автоматизации до BDD
Эволюция нагрузочного тестирования – от простой автоматизации до BDDЭволюция нагрузочного тестирования – от простой автоматизации до BDD
Эволюция нагрузочного тестирования – от простой автоматизации до BDD
 
Тест-менеджмент в Jira. Анна Добрынина
Тест-менеджмент в Jira. Анна ДобрынинаТест-менеджмент в Jira. Анна Добрынина
Тест-менеджмент в Jira. Анна Добрынина
 
Jira as a test management tool
Jira as a test management toolJira as a test management tool
Jira as a test management tool
 
Как развить отдел тестирования от палки-копалки до CI
Как развить отдел тестирования от палки-копалки до CIКак развить отдел тестирования от палки-копалки до CI
Как развить отдел тестирования от палки-копалки до CI
 
Ошибки начинающего специалиста по нагрузочному тестированию и как их избежать
Ошибки начинающего специалиста по нагрузочному тестированию и как их избежатьОшибки начинающего специалиста по нагрузочному тестированию и как их избежать
Ошибки начинающего специалиста по нагрузочному тестированию и как их избежать
 
Что ждет тестировщиков при организации процесса тестирования Enterprise-проду...
Что ждет тестировщиков при организации процесса тестирования Enterprise-проду...Что ждет тестировщиков при организации процесса тестирования Enterprise-проду...
Что ждет тестировщиков при организации процесса тестирования Enterprise-проду...
 
Первый шаг на пути к тестированию белого ящика для сложных систем
Первый шаг на пути к тестированию белого ящика для сложных системПервый шаг на пути к тестированию белого ящика для сложных систем
Первый шаг на пути к тестированию белого ящика для сложных систем
 
Quality Assurance vs Quality Control - так в чем же заключается работа специа...
Quality Assurance vs Quality Control - так в чем же заключается работа специа...Quality Assurance vs Quality Control - так в чем же заключается работа специа...
Quality Assurance vs Quality Control - так в чем же заключается работа специа...
 
Длинный путь к DevOps?
Длинный путь к DevOps?Длинный путь к DevOps?
Длинный путь к DevOps?
 
Scrum глазами тестировщика или как создать стратегию для любой задачи
Scrum глазами тестировщика или как создать стратегию для любой задачиScrum глазами тестировщика или как создать стратегию для любой задачи
Scrum глазами тестировщика или как создать стратегию для любой задачи
 
Архитектура автоматизированных тестов: представление предметной области
Архитектура автоматизированных тестов: представление предметной областиАрхитектура автоматизированных тестов: представление предметной области
Архитектура автоматизированных тестов: представление предметной области
 
Тестируем производительность с помощью Selenium
Тестируем производительность с помощью SeleniumТестируем производительность с помощью Selenium
Тестируем производительность с помощью Selenium
 
Sqadays 2010 burmistrov_fomin_20101120(2)
Sqadays 2010 burmistrov_fomin_20101120(2)Sqadays 2010 burmistrov_fomin_20101120(2)
Sqadays 2010 burmistrov_fomin_20101120(2)
 
WP как экспериментальная платформа
WP как экспериментальная платформаWP как экспериментальная платформа
WP как экспериментальная платформа
 
QA Fest 2016. Денис Яременко. Как облегчить процесс мобильного тестирования
QA Fest 2016. Денис Яременко. Как облегчить процесс мобильного тестированияQA Fest 2016. Денис Яременко. Как облегчить процесс мобильного тестирования
QA Fest 2016. Денис Яременко. Как облегчить процесс мобильного тестирования
 
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в DevopsQA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
 
Сетевые снифферы в тестировании
Сетевые снифферы в тестированииСетевые снифферы в тестировании
Сетевые снифферы в тестировании
 

Ähnlich wie Нагрузочное тестирование: Нестандартные методы анализа потока данных в приложениях

ThinkJavaKharkiv#1 Шеф, все пропало. Проблемы с Production
ThinkJavaKharkiv#1 Шеф, все пропало. Проблемы с ProductionThinkJavaKharkiv#1 Шеф, все пропало. Проблемы с Production
ThinkJavaKharkiv#1 Шеф, все пропало. Проблемы с ProductionVladimir Malinin
 
Сергей Смирнов, Виталий Александров. Оздоровление унаследованной информационн...
Сергей Смирнов, Виталий Александров. Оздоровление унаследованной информационн...Сергей Смирнов, Виталий Александров. Оздоровление унаследованной информационн...
Сергей Смирнов, Виталий Александров. Оздоровление унаследованной информационн...ScrumTrek
 
Один за всех, или как помочь тестированию многих компонентов одной системы
Один за всех, или как помочь тестированию многих компонентов одной системыОдин за всех, или как помочь тестированию многих компонентов одной системы
Один за всех, или как помочь тестированию многих компонентов одной системыSQALab
 
Управление требованиями - это не только требования. Для CEE-SECR-2015. Анна А...
Управление требованиями - это не только требования. Для CEE-SECR-2015. Анна А...Управление требованиями - это не только требования. Для CEE-SECR-2015. Анна А...
Управление требованиями - это не только требования. Для CEE-SECR-2015. Анна А...Anna Abramova
 
2016-01-16 02 Екатерина Боброва. Архитектура автоматизированных тестов
2016-01-16 02 Екатерина Боброва. Архитектура автоматизированных тестов2016-01-16 02 Екатерина Боброва. Архитектура автоматизированных тестов
2016-01-16 02 Екатерина Боброва. Архитектура автоматизированных тестовОмские ИТ-субботники
 
Разработка ПО в рамках PCI DSS, как ее видит жуткий зануда
Разработка ПО в рамках PCI DSS, как ее видит жуткий занудаРазработка ПО в рамках PCI DSS, как ее видит жуткий зануда
Разработка ПО в рамках PCI DSS, как ее видит жуткий занудаRISSPA_SPb
 
Разработка ПО в рамках PCI DSS
Разработка ПО в рамках PCI DSSРазработка ПО в рамках PCI DSS
Разработка ПО в рамках PCI DSSAlex Babenko
 
Экспертная система оценки информационной безопасности в организации
Экспертная система оценки информационной безопасности в организацииЭкспертная система оценки информационной безопасности в организации
Экспертная система оценки информационной безопасности в организацииГалина Пузанова
 
CodeFest 2010. Уразов А. — Quality-Oriented Programming (Программирование, ор...
CodeFest 2010. Уразов А. — Quality-Oriented Programming (Программирование, ор...CodeFest 2010. Уразов А. — Quality-Oriented Programming (Программирование, ор...
CodeFest 2010. Уразов А. — Quality-Oriented Programming (Программирование, ор...CodeFest
 
Архитектура А/Б тестирования: сделай сам
Архитектура А/Б тестирования: сделай самАрхитектура А/Б тестирования: сделай сам
Архитектура А/Б тестирования: сделай самSergey Xek
 
Cергей Aверин, Badoo
Cергей Aверин, BadooCергей Aверин, Badoo
Cергей Aверин, BadooOntico
 
Презентация по дисциплине технология разработки программного обеспечения
Презентация по дисциплине технология разработки программного обеспеченияПрезентация по дисциплине технология разработки программного обеспечения
Презентация по дисциплине технология разработки программного обеспеченияRauan Ibraikhan
 
презентация по дисциплине технология разработки программного обеспечения
презентация по дисциплине технология разработки программного обеспеченияпрезентация по дисциплине технология разработки программного обеспечения
презентация по дисциплине технология разработки программного обеспеченияRauan Ibraikhan
 
Оптимизация производительности и нагрузочное тестирование в среде Visual Stud...
Оптимизация производительности и нагрузочное тестирование в среде Visual Stud...Оптимизация производительности и нагрузочное тестирование в среде Visual Stud...
Оптимизация производительности и нагрузочное тестирование в среде Visual Stud...Dmitry Andreev
 
QA Fest 2017. Андрей Лазарев.Эффективный поиск невоспроизводимых ошибок
QA Fest 2017. Андрей Лазарев.Эффективный поиск невоспроизводимых ошибокQA Fest 2017. Андрей Лазарев.Эффективный поиск невоспроизводимых ошибок
QA Fest 2017. Андрей Лазарев.Эффективный поиск невоспроизводимых ошибокQAFest
 
Практика использования Solar inCode
Практика использования Solar inCodeПрактика использования Solar inCode
Практика использования Solar inCodeSolar Security
 
"Опыт создания системы управления сборкой и тестированием" (слайдкаст)
"Опыт создания системы управления сборкой и тестированием" (слайдкаст)"Опыт создания системы управления сборкой и тестированием" (слайдкаст)
"Опыт создания системы управления сборкой и тестированием" (слайдкаст)SPB SQA Group
 

Ähnlich wie Нагрузочное тестирование: Нестандартные методы анализа потока данных в приложениях (20)

ThinkJavaKharkiv#1 Шеф, все пропало. Проблемы с Production
ThinkJavaKharkiv#1 Шеф, все пропало. Проблемы с ProductionThinkJavaKharkiv#1 Шеф, все пропало. Проблемы с Production
ThinkJavaKharkiv#1 Шеф, все пропало. Проблемы с Production
 
MS TFS 2010 - Обзор и архитектура
MS TFS 2010 - Обзор и архитектураMS TFS 2010 - Обзор и архитектура
MS TFS 2010 - Обзор и архитектура
 
Сергей Смирнов, Виталий Александров. Оздоровление унаследованной информационн...
Сергей Смирнов, Виталий Александров. Оздоровление унаследованной информационн...Сергей Смирнов, Виталий Александров. Оздоровление унаследованной информационн...
Сергей Смирнов, Виталий Александров. Оздоровление унаследованной информационн...
 
Один за всех, или как помочь тестированию многих компонентов одной системы
Один за всех, или как помочь тестированию многих компонентов одной системыОдин за всех, или как помочь тестированию многих компонентов одной системы
Один за всех, или как помочь тестированию многих компонентов одной системы
 
Управление требованиями - это не только требования. Для CEE-SECR-2015. Анна А...
Управление требованиями - это не только требования. Для CEE-SECR-2015. Анна А...Управление требованиями - это не только требования. Для CEE-SECR-2015. Анна А...
Управление требованиями - это не только требования. Для CEE-SECR-2015. Анна А...
 
2016-01-16 02 Екатерина Боброва. Архитектура автоматизированных тестов
2016-01-16 02 Екатерина Боброва. Архитектура автоматизированных тестов2016-01-16 02 Екатерина Боброва. Архитектура автоматизированных тестов
2016-01-16 02 Екатерина Боброва. Архитектура автоматизированных тестов
 
Разработка ПО в рамках PCI DSS, как ее видит жуткий зануда
Разработка ПО в рамках PCI DSS, как ее видит жуткий занудаРазработка ПО в рамках PCI DSS, как ее видит жуткий зануда
Разработка ПО в рамках PCI DSS, как ее видит жуткий зануда
 
Разработка ПО в рамках PCI DSS
Разработка ПО в рамках PCI DSSРазработка ПО в рамках PCI DSS
Разработка ПО в рамках PCI DSS
 
Экспертная система оценки информационной безопасности в организации
Экспертная система оценки информационной безопасности в организацииЭкспертная система оценки информационной безопасности в организации
Экспертная система оценки информационной безопасности в организации
 
CodeFest 2010. Уразов А. — Quality-Oriented Programming (Программирование, ор...
CodeFest 2010. Уразов А. — Quality-Oriented Programming (Программирование, ор...CodeFest 2010. Уразов А. — Quality-Oriented Programming (Программирование, ор...
CodeFest 2010. Уразов А. — Quality-Oriented Programming (Программирование, ор...
 
Аналитик и бнс
Аналитик и бнсАналитик и бнс
Аналитик и бнс
 
Архитектура А/Б тестирования: сделай сам
Архитектура А/Б тестирования: сделай самАрхитектура А/Б тестирования: сделай сам
Архитектура А/Б тестирования: сделай сам
 
Cергей Aверин, Badoo
Cергей Aверин, BadooCергей Aверин, Badoo
Cергей Aверин, Badoo
 
Презентация по дисциплине технология разработки программного обеспечения
Презентация по дисциплине технология разработки программного обеспеченияПрезентация по дисциплине технология разработки программного обеспечения
Презентация по дисциплине технология разработки программного обеспечения
 
презентация по дисциплине технология разработки программного обеспечения
презентация по дисциплине технология разработки программного обеспеченияпрезентация по дисциплине технология разработки программного обеспечения
презентация по дисциплине технология разработки программного обеспечения
 
Оптимизация производительности и нагрузочное тестирование в среде Visual Stud...
Оптимизация производительности и нагрузочное тестирование в среде Visual Stud...Оптимизация производительности и нагрузочное тестирование в среде Visual Stud...
Оптимизация производительности и нагрузочное тестирование в среде Visual Stud...
 
Simonova sql server-enginetesting
Simonova sql server-enginetestingSimonova sql server-enginetesting
Simonova sql server-enginetesting
 
QA Fest 2017. Андрей Лазарев.Эффективный поиск невоспроизводимых ошибок
QA Fest 2017. Андрей Лазарев.Эффективный поиск невоспроизводимых ошибокQA Fest 2017. Андрей Лазарев.Эффективный поиск невоспроизводимых ошибок
QA Fest 2017. Андрей Лазарев.Эффективный поиск невоспроизводимых ошибок
 
Практика использования Solar inCode
Практика использования Solar inCodeПрактика использования Solar inCode
Практика использования Solar inCode
 
"Опыт создания системы управления сборкой и тестированием" (слайдкаст)
"Опыт создания системы управления сборкой и тестированием" (слайдкаст)"Опыт создания системы управления сборкой и тестированием" (слайдкаст)
"Опыт создания системы управления сборкой и тестированием" (слайдкаст)
 

Mehr von SQALab

Готовим стажировку
Готовим стажировкуГотовим стажировку
Готовим стажировкуSQALab
 
Куда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаКуда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаSQALab
 
Оптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиОптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиSQALab
 
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияАвтоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияSQALab
 
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...SQALab
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testingSQALab
 
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженКонфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженSQALab
 
Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииSQALab
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовSQALab
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовSQALab
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsSQALab
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеSQALab
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииSQALab
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеSQALab
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестированиеSQALab
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"SQALab
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовSQALab
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных системSQALab
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросSQALab
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...SQALab
 

Mehr von SQALab (20)

Готовим стажировку
Готовим стажировкуГотовим стажировку
Готовим стажировку
 
Куда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаКуда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщика
 
Оптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиОптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержки
 
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияАвтоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
 
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testing
 
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженКонфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нужен
 
Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихии
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советов
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестов
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIs
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджменте
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестирование
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектов
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных систем
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопрос
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
 

Нагрузочное тестирование: Нестандартные методы анализа потока данных в приложениях

  • 1. Software quality assurance days 21 Международная конференция по вопросам качества ПО sqadays.com Москва. 26–27 мая 2017 Сергей Журин Performance-lab. Москва, Россия s.zhurin@pflb.ru Нагрузочное тестирование: Нестандартные методы анализа потока данных в приложениях.
  • 2.  Введение  Описание ситуации  Предпосылки к задаче  Основная часть  Стандартные средства анализа потока данных  Нестандартные средства  Примеры проектов Содержание
  • 3. Описание:  Есть система, которая что-то делает  В этой системе существует некоторый поток данных  Чтобы обрабатывать этот поток данных требуются ресурсы Проблема:  Нам нужно получить некоторую информацию о потоке данных Описание ситуации
  • 4. Поиск проблемы:  Рост времени отображения страницы  Появление ошибок (Out of memory exception) Прогнозирование:  Расширение торговой сети  Смена версии ПО, железа  Hot season Предпосылки к задаче
  • 5. Стандартные средства:  Консультация у разработчика  Встроенный мониторинг БД  Профилирование кода приложения  Анализ трафика (сниффинг)  Самостоятельная разработка инструмента мониторинга Нестандартные средства:  Модификация скомпилированного кода приложения Средства для анализа потока данных
  • 6. Обратится с вопросом к разработчику или к компетентному лицу Плюсы:  Знает свое приложение Минусы:  Разработчика нет (уволился)  У разработчика нет времени Стандартные средства: Разработчик
  • 7. В каждой нормальной Базе Данных можно настроить мониторинг В основном выгружается топ sql запросов по некоторым параметрам Плюсы:  Уже реализовано  В 95% случаях этого хватает Минусы:  Иногда нужно больше информации  Чем больше информации собирается, тем больше ресурсов требуется Стандартные средства : Мониторинг БД
  • 8. Плюсы и минусы аналогичны мониторингу БД Плюсы:  Уже реализовано  В 95% случаях этого хватает Минусы:  Иногда нужно больше информации  Чем больше информации собирается, тем больше ресурсов требуется Стандартные средства: Профилирование кода
  • 9. Сниффер – утилита, которая позволяет анализировать сетевой трафик Плюсы:  Ловит все  Поддерживает большинство сетевых протоколов Минусы:  Нужен парсер трафика Стандартные средства: Анализ трафика
  • 10. Лучше пользоваться уже готовыми инструментами Плюсы:  В итоге Вы получаете то, что хотите Минусы:  Время разработки  Не всегда это можно сделать, нужны исходники Стандартные средства: Самостоятельно
  • 11. Модифицировать скомпилированный код:  C/C++ – бинарные файлы “.dll”, “.exe”  Java – byte code “.class”  C# – “.net” Плюсы:  Мы можем работать в любой ситуации  Не нужна декомпиляция Минусы:  Большая сложность Модификация скомпилированного кода
  • 12.  ASM – быстрая и активно развивается  BCEL – относительно медленная, больше не разрабатывается  Javaassist – самый простой вариант, чтобы начать  CGLIB – надстройка над ASM, для большего удобства  Byte buddy – генерирует классы посредством DSL. Активно развивается Модификация byte code’а: Обзор инструментов
  • 13. Причины непопулярности:  Отсутствие опыта работы и выглядит страшно  Сложно понять, что изменять Скомпилированный код сильно отличается от исходного. Есть несложные алгоритмы для:  Написания заглушек  Анализа потока через приложение Модификация byte code’а: Теория
  • 14. В каждый public метод вставить код: если вызов в thread’е первый, то логируем параметры вызова и возвращаемое значение Что получаем:  Методы, которые вызываются системой в драйвере  Параметры вызова этих методов  Возвращаемые методами значения Модификация byte code’а: Логирование входа Система 1 java драйвер Система 2
  • 15. До и после вызова ко внешней системе вставить лог:  Параметров вызова  Возвращаемого значения Трудность при логировании выхода:  Нужно определять, вызов каких методов логировать Кандидаты на лог:  Вызов native методов – вызовы библиотек dll (OCI драйвер для Oracle)  Вызов других jar Модификация byte code’а: Логирование выхода Система 1 java драйвер Система 2
  • 16. Что будет если главную БД заменить на другую? Примеры из практики: Переход на новую БД Параметры к sql-запросам?  Мониторинг БД:  Не содержит параметры запросов  Подробный мониторинг – убивает БД  Профилирование: не содержит параметры вызова  Анализ трафика: нельзя найти параметры из-за мусора
  • 17.  Три application server’а  Запуск ночью заданий для  Расчета цен на следующий день  Дозаказ товаров  Подготовка отчетов  Задача: построить зависимость количества sql-запросов (по типам) от времени и сравнить ее с другими метриками Примеры из практики: Анализ ночного профиля
  • 18. Модификация скомпилированного применяется для:  Сделать свою вундервафлю, когда нет исходников  Профилирования в условиях, когда нормальный профилировщик нельзя использовать  Анализ сложности кода  Безопасность  Проверки на хеш приложения  Обфускация Техническая информация: что еще?
  • 19. Презентацию выполнил: Журин Сергей. s.zhurin@pflb.ru Инженер по производительности ПО Performance lab. Вопросы и ответы