SlideShare ist ein Scribd-Unternehmen logo
1 von 20
Software quality assurance days
20 Международная конференция
по вопросам качества ПО
sqadays.com
Минск. 24–26 ноября 2016
Батищев Евгений
Аркадия. Санкт-Петербург, Россия
Нагрузочное тестирование. Дёшево и сердито.
Нагрузочное тестирование. Дёшево и сердито.
Немного о себе
Батищев Евгений
Программист, Аркадия.
• Разработка.
• Разработка очень быстро.
• Разработка очень качественно.
• “Сделайте так, чтобы работало,
пожалуйста”.
Batonrain@gmail.com
Нагрузочное тестирование. Дёшево и сердито.
Продукты и задачи
• Есть портал с посещаемостью в 40 тысяч человек в день.
• На портале расположено огромное множество новостных рубрик.
• Присутствует работа с личным кабинетом, оплата подписки и
прочие милые фишки.
Нагрузочное тестирование. Дёшево и сердито.
Задачи портала
• Каждый день доносить до пользователей свежую и объективную
информацию.
• Развивать продукт и совершенствовать способы подачи новостей
пользователям.
Нагрузочное тестирование. Дёшево и сердито.
Как следствие
• Производительность продукта была крайне важна.
Нагрузочное тестирование. Дёшево и сердито.
Задачи разработчиков
• Поддерживать продукт.
• Развивать дополнительные возможности продукта, опираясь на
требования заказчика.
Нагрузочное тестирование. Дёшево и сердито.
Осознание
Средняя статистика в основных браузерах:
• Загрузка главной страницы – 19+ секунд.
• Подгрузка статей – 10+ секунд.
• Подгрузка фотографий – 10+ секунд.
• Седые волосы начальника – 15 минут после осознания того,
что сайт окончательно перестал открываться.
Нагрузочное тестирование. Дёшево и сердито.
Организация нагрузочного
тестирования
• Со стороны заказчика – никакого.
• С нашей стороны – надежда и вера в свои силы.
Нагрузочное тестирование. Дёшево и сердито.
Нюансы
• Нагрузочное тестирование на стороне заказчика.
Частая, в последнее время, практика, которую не очень
хочется поддерживать.
Нагрузочное тестирование. Дёшево и сердито.
Основные минусы и плюсы
подобного подхода
Минусы:
•Время. Тестировщик на стороне заказчика тратит много времени
на разбор стороннего кода, вместо того, чтобы “Быстро-решительно”
начать свою работу.
•Коммуникации. Не всегда на стороне заказчика может сидеть
очень уж грамотный тестировщик, который и логи нужные скинет, и
сможет пояснить за проблему.
Плюсы:
•Беззаботность. Нет нужды заниматься утомительным
тестированием, в котором ничего не понимаешь.
•Экономия. Не приходится платить тестировщику-дармоеду,
который только и делает, что находит проблемы в нашем идеально
работающем коде.
Нагрузочное тестирование. Дёшево и сердито.
Новые грабли – лучше старых двух,
или сказ о том, как мы нагрузочное
тестирование автоматизировали
Нагрузочное тестирование. Дёшево и сердито.
Проблема
• Лень.
• Время.
• Трудозатраты.
• Тестировщики недовольны.
Нагрузочное тестирование. Дёшево и сердито.
Что было решено сделать
• Автоматизация тестирования только нескольких самых важных
элементов функционала.
• Выделить отдельный сервер под нагрузочное тестирование.
• Распространить подобные практики на остальные проекты.
Нагрузочное тестирование. Дёшево и сердито.
Что нам удалось сделать
• Автоматизировать тестирование нескольких самых важных
элементов функционала.
Нагрузочное тестирование. Дёшево и сердито.
Почему не удалось всё остальное?
Нагрузочное тестирование. Дёшево и сердито.
Что мы сделали?
• В код был добавлен служебный api, через который можно было
бы дёргать большую часть “тяжёлого” функционала
• Была написана утилита, позволяющая генерировать запросы к
нужным нам участкам функциональности через служебный api
• Эта же утилита начинала отправлять дикое количество запросов
через api и собирать данные об ошибках в системе, о состоянии
памяти, загруженности процессора и тд. и тп.
• Как настоящие лентяи, мы всё это запускали на нашем тестовом
сервере и оставляли на ночь.
Нагрузочное тестирование. Дёшево и сердито.
Результаты подобного подхода
• Мы действительно начали выделять узкие места и за три месяца
подобной практики сумели исправить множество старых огрехов и
улучшить работоспособность продукта.
• Разработчики стали больше времени уделять тестированию –
пришлось поддерживать служебный api в актуальном состоянии,
чтобы не было рассинхрона с основной функциональностью.
Нагрузочное тестирование. Дёшево и сердито.
Основные плюсы, извлечённые из
нашего подхода
• Создание служебного api, которым стали пользоваться наши
тестировщики для выявления новых проблем в старой
функциональности.
• Автоматизация нагрузочного тестирования трудоёмких кусков
продукта.
• Автогенерация отчётов о ночных сборках с возможностью
включать и отключать нагрузочное тестирование после прогона
основных Uts.
• Сохранение нервов разработчиков и тестировщиков.
Нагрузочное тестирование. Дёшево и сердито.
Посыл
• Хотя всё и начиналось, как попытка просто организовать какое-то,
самое минимальное нагрузочное тестирование, проект вылился в
совместный внутренний продукт, который проектировали и
тестировщики, и программисты.
• Программист всегда может чуточку облегчить жизнь
тестировщикам.
• Облегчая жизнь тестировщикам – программист облегчает жизнь
себе.
Нагрузочное тестирование. Дёшево и сердито.
Вопросы

Weitere ähnliche Inhalte

Andere mochten auch

Нагрузочное тестирование с помощью Яндекс.Танка
Нагрузочное тестирование с помощью Яндекс.ТанкаНагрузочное тестирование с помощью Яндекс.Танка
Нагрузочное тестирование с помощью Яндекс.Танка
Aleksandr Boichenko
 
101 способ провести нагрузочное тестирование неправильно
101 способ провести нагрузочное тестирование неправильно101 способ провести нагрузочное тестирование неправильно
101 способ провести нагрузочное тестирование неправильно
SQALab
 
Построение системы нагрузочного тестирования
Построение системы нагрузочного тестированияПостроение системы нагрузочного тестирования
Построение системы нагрузочного тестирования
SQALab
 

Andere mochten auch (15)

Отряд тест-аналитиков
Отряд тест-аналитиковОтряд тест-аналитиков
Отряд тест-аналитиков
 
Test Cases are dead, long live Checklists!
Test Cases are dead, long live Checklists!Test Cases are dead, long live Checklists!
Test Cases are dead, long live Checklists!
 
Путь тестировщика: Расту или деградирую?
Путь тестировщика: Расту или деградирую?Путь тестировщика: Расту или деградирую?
Путь тестировщика: Расту или деградирую?
 
Автоматизация тестирования WEB API
Автоматизация тестирования WEB APIАвтоматизация тестирования WEB API
Автоматизация тестирования WEB API
 
Промышленные подходы к организации нагрузочного тестирования
Промышленные подходы к организации нагрузочного тестированияПромышленные подходы к организации нагрузочного тестирования
Промышленные подходы к организации нагрузочного тестирования
 
Нагрузочное тестирование с помощью Яндекс.Танка
Нагрузочное тестирование с помощью Яндекс.ТанкаНагрузочное тестирование с помощью Яндекс.Танка
Нагрузочное тестирование с помощью Яндекс.Танка
 
101 способ провести нагрузочное тестирование неправильно
101 способ провести нагрузочное тестирование неправильно101 способ провести нагрузочное тестирование неправильно
101 способ провести нагрузочное тестирование неправильно
 
Между молотом и наковальней. Production Quality
Между молотом и наковальней. Production QualityМежду молотом и наковальней. Production Quality
Между молотом и наковальней. Production Quality
 
Использование метрик в процессе обеспечения качества сложных систем
Использование метрик в процессе обеспечения качества сложных системИспользование метрик в процессе обеспечения качества сложных систем
Использование метрик в процессе обеспечения качества сложных систем
 
Тестирование производительности для специалистов по автоматизации - зачем и как?
Тестирование производительности для специалистов по автоматизации - зачем и как?Тестирование производительности для специалистов по автоматизации - зачем и как?
Тестирование производительности для специалистов по автоматизации - зачем и как?
 
Построение системы нагрузочного тестирования
Построение системы нагрузочного тестированияПостроение системы нагрузочного тестирования
Построение системы нагрузочного тестирования
 
Тестируем производительность с помощью Selenium
Тестируем производительность с помощью SeleniumТестируем производительность с помощью Selenium
Тестируем производительность с помощью Selenium
 
Коррелятор для JMeter
Коррелятор для JMeterКоррелятор для JMeter
Коррелятор для JMeter
 
JMeter и OutOfMemory. Исследовательский доклад
JMeter и OutOfMemory. Исследовательский докладJMeter и OutOfMemory. Исследовательский доклад
JMeter и OutOfMemory. Исследовательский доклад
 
Можно ли прикрутить нечеткий логический вывод к тестированию
Можно ли прикрутить нечеткий логический вывод к тестированиюМожно ли прикрутить нечеткий логический вывод к тестированию
Можно ли прикрутить нечеткий логический вывод к тестированию
 

Mehr von 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 20 Международная конференция по вопросам качества ПО sqadays.com Минск. 24–26 ноября 2016 Батищев Евгений Аркадия. Санкт-Петербург, Россия Нагрузочное тестирование. Дёшево и сердито.
  • 2. Нагрузочное тестирование. Дёшево и сердито. Немного о себе Батищев Евгений Программист, Аркадия. • Разработка. • Разработка очень быстро. • Разработка очень качественно. • “Сделайте так, чтобы работало, пожалуйста”. Batonrain@gmail.com
  • 3. Нагрузочное тестирование. Дёшево и сердито. Продукты и задачи • Есть портал с посещаемостью в 40 тысяч человек в день. • На портале расположено огромное множество новостных рубрик. • Присутствует работа с личным кабинетом, оплата подписки и прочие милые фишки.
  • 4. Нагрузочное тестирование. Дёшево и сердито. Задачи портала • Каждый день доносить до пользователей свежую и объективную информацию. • Развивать продукт и совершенствовать способы подачи новостей пользователям.
  • 5. Нагрузочное тестирование. Дёшево и сердито. Как следствие • Производительность продукта была крайне важна.
  • 6. Нагрузочное тестирование. Дёшево и сердито. Задачи разработчиков • Поддерживать продукт. • Развивать дополнительные возможности продукта, опираясь на требования заказчика.
  • 7. Нагрузочное тестирование. Дёшево и сердито. Осознание Средняя статистика в основных браузерах: • Загрузка главной страницы – 19+ секунд. • Подгрузка статей – 10+ секунд. • Подгрузка фотографий – 10+ секунд. • Седые волосы начальника – 15 минут после осознания того, что сайт окончательно перестал открываться.
  • 8. Нагрузочное тестирование. Дёшево и сердито. Организация нагрузочного тестирования • Со стороны заказчика – никакого. • С нашей стороны – надежда и вера в свои силы.
  • 9. Нагрузочное тестирование. Дёшево и сердито. Нюансы • Нагрузочное тестирование на стороне заказчика. Частая, в последнее время, практика, которую не очень хочется поддерживать.
  • 10. Нагрузочное тестирование. Дёшево и сердито. Основные минусы и плюсы подобного подхода Минусы: •Время. Тестировщик на стороне заказчика тратит много времени на разбор стороннего кода, вместо того, чтобы “Быстро-решительно” начать свою работу. •Коммуникации. Не всегда на стороне заказчика может сидеть очень уж грамотный тестировщик, который и логи нужные скинет, и сможет пояснить за проблему. Плюсы: •Беззаботность. Нет нужды заниматься утомительным тестированием, в котором ничего не понимаешь. •Экономия. Не приходится платить тестировщику-дармоеду, который только и делает, что находит проблемы в нашем идеально работающем коде.
  • 11. Нагрузочное тестирование. Дёшево и сердито. Новые грабли – лучше старых двух, или сказ о том, как мы нагрузочное тестирование автоматизировали
  • 12. Нагрузочное тестирование. Дёшево и сердито. Проблема • Лень. • Время. • Трудозатраты. • Тестировщики недовольны.
  • 13. Нагрузочное тестирование. Дёшево и сердито. Что было решено сделать • Автоматизация тестирования только нескольких самых важных элементов функционала. • Выделить отдельный сервер под нагрузочное тестирование. • Распространить подобные практики на остальные проекты.
  • 14. Нагрузочное тестирование. Дёшево и сердито. Что нам удалось сделать • Автоматизировать тестирование нескольких самых важных элементов функционала.
  • 15. Нагрузочное тестирование. Дёшево и сердито. Почему не удалось всё остальное?
  • 16. Нагрузочное тестирование. Дёшево и сердито. Что мы сделали? • В код был добавлен служебный api, через который можно было бы дёргать большую часть “тяжёлого” функционала • Была написана утилита, позволяющая генерировать запросы к нужным нам участкам функциональности через служебный api • Эта же утилита начинала отправлять дикое количество запросов через api и собирать данные об ошибках в системе, о состоянии памяти, загруженности процессора и тд. и тп. • Как настоящие лентяи, мы всё это запускали на нашем тестовом сервере и оставляли на ночь.
  • 17. Нагрузочное тестирование. Дёшево и сердито. Результаты подобного подхода • Мы действительно начали выделять узкие места и за три месяца подобной практики сумели исправить множество старых огрехов и улучшить работоспособность продукта. • Разработчики стали больше времени уделять тестированию – пришлось поддерживать служебный api в актуальном состоянии, чтобы не было рассинхрона с основной функциональностью.
  • 18. Нагрузочное тестирование. Дёшево и сердито. Основные плюсы, извлечённые из нашего подхода • Создание служебного api, которым стали пользоваться наши тестировщики для выявления новых проблем в старой функциональности. • Автоматизация нагрузочного тестирования трудоёмких кусков продукта. • Автогенерация отчётов о ночных сборках с возможностью включать и отключать нагрузочное тестирование после прогона основных Uts. • Сохранение нервов разработчиков и тестировщиков.
  • 19. Нагрузочное тестирование. Дёшево и сердито. Посыл • Хотя всё и начиналось, как попытка просто организовать какое-то, самое минимальное нагрузочное тестирование, проект вылился в совместный внутренний продукт, который проектировали и тестировщики, и программисты. • Программист всегда может чуточку облегчить жизнь тестировщикам. • Облегчая жизнь тестировщикам – программист облегчает жизнь себе.