ESPNPower Rankings: Miami takes over at the top; two teams join the Top 25The Jerusalem PostUS Supreme Court snubs bid to revive plea deal for accused 9/11 mastermindDaily MaverickLOCAL ELECTIONS 2026: ‘Who do I vote for?’ Reader questions answered on coalitions, councils and votingBollywood HungamaAamir Khan met Raj Thackeray for THIS reason; childhood friendship and family milestone behind the visitInquirer EntertainmentWin Gatchalian silent on details of breakup with Bianca ManaloInquirerLTFRB clears 1,131 buses for Undas travel surgeESPN Deportes¿Qué necesita Kimi Antonelli para ser campeón de F1 en el GP de Austin?BillboardFrom Here: Twenty One Pilots Go Big and Come Home With Biggest, Boldest, Longest Show Ever at Hometown Stadium: 12 Best MomentsZDF heuteEntdecken Sie das ZDF-NachrichtenstudioSRF NewsWohnbauprojekt in Zürich – Massive Verzögerung bei Vermietung auf dem Koch-ArealConsequenceApu Speaks for the First Time in Nearly a Decade on The SimpsonsBBC NewsKenya cult leader who told parents to starve children guilty of 191 murders
The Daily Newsstand · Free, Always
Monday, October 19, 2026

Как провести нагрузочное тестирование правильно. Часть 2: для чего нужно тестировать производительность

Translate

Всем привет! Это вторая часть серии статей о нагрузочном тестировании. Если вы еще не читали первую часть — там мы разбирались, как правильно думать о тестировании производительности и чем оно принципиально отличается от функционального тестирования, — рекомендую начать с нее. В этой части поговорим о том, для чего вообще нужно тестирование производительности, — разберем сценарии, общие для любых систем (рост числа пользователей, длительная работа, рост объема данных, изменение архитектуры и бизнес-процессов), а также рассмотрим специфику на конкретных примерах e-commerce-систем и банковских приложений.

Для чего нужно тестирование производительности?

Нагрузочное тестирование (load testing) по определению — это метод проверки работы программного обеспечения под ожидаемой или пиковой нагрузкой для оценки производительности, стабильности и масштабируемости системы.
Но для чего оно нужно?

Тестирование производительности, или нагрузочное тестирование, позволяет ответить на вопрос: «Что будет с системой, когда с ней начнут работать реальные потребители?»

В зависимости от предназначения системы, ее потребителями могут быть как реальные пользователи, так и другие системы, либо и те и другие.

Обеспечивает ли система комфортные условия эксплуатации ее потребителям, не будут ли потеряны данные, необходимые для работы системы, будут ли выполнены задачи потребителей без сбоев, в требуемые сроки и с достаточным уровнем быстродействия? Невозможно ответить на эти вопросы и избежать рисков, связанных с ними, без проведения нагрузочного тестирования разрабатываемой системы.

Для разных систем критичны разные требования к ее быстродействию и по-разному приоритизируются аспекты ее функционирования. Разделим системы по доменам и рассмотрим конкретные примеры, чтобы выяснить, какие сценарии эксплуатации тех или иных систем позволяет оптимизировать тестирование производительности и каких требований и рисков, связанных с ними, позволяет избежать.

Независимо от специфики

Неважно, к какому домену можно отнести вашу систему. Как правило, тестирование производительности должно определить, как система справляется со своими задачами при указанных ниже сценариях эксплуатации.

Рост числа пользователей системы

Бизнес стремится к максимизации прибыли и увеличению числа потребителей, вследствие чего нужно быть уверенным, что разрабатываемая система способна работать с сохранением SLA при росте числа ее пользователей. Нагрузочное тестирование позволяет заблаговременно ответить на вопрос, при каком количестве одновременных пользователей система начнет деградировать и где именно возникнет узкое место — в базе данных, в сервисах или в сетевой инфраструктуре.

Длительная непрерывная работа системы

Многие проблемы не проявляются в первые минуты и даже часы работы под нагрузкой, но становятся явными через несколько часов или суток. Утечки памяти, накопление незакрытых соединений, деградация кешей, фрагментация пулов потоков — все это обнаруживается только в ходе продолжительного нагрузочного теста (soak-тестирования), имитирующего реальный режим эксплуатации системы.

Рост объема обрабатываемых данных

По мере работы системы объем данных в хранилищах неуклонно растет. Запрос, который выполнялся за 100 мс на базе в 10 тысяч записей, может занять несколько минут на базе в 100 миллионов. Тестирование производительности с реалистичным объемом данных позволяет выявить проблемы, связанные с отсутствующими индексами, неэффективными запросами, архитектурными решениями, которые не масштабируются вместе с данными и приводят к деградации системы по мере роста объема хранимых и обрабатываемых данных.

Изменение архитектуры системы

Любое архитектурное изменение способно непредсказуемо повлиять на производительность целевой системы. Нагрузочное тестирование до и после изменений позволяет объективно сравнить результаты и убедиться, что новая архитектура (связанная, например, с переходом с монолита на микросервисы, заменой базы данных, внедрением очередей сообщений и асинхронной обработки или сменой облачного провайдера) выдерживает те же или более высокие нагрузки, что и предыдущая архитектура системы, без потерь в производительности.

Изменение обрабатываемых бизнес-процессов

Появление нового типа транзакций, интеграция с внешним партнером, запуск нового продукта или изменение пользовательского сценария — все это меняет профиль нагрузки на систему. То, что работало при старом бизнес-процессе, может оказаться неприемлемым при новом. Тестирование производительности при изменении бизнес-логики позволяет убедиться, что система справляется с новым характером нагрузки до выхода в production.

Capacity Planning

Зная реальные пределы системы, команда может обоснованно планировать инфраструктуру и оптимизировать траты на ее поддержание. Без данных нагрузочного тестирования эти решения принимаются наугад, что приводит либо к избыточным расходам на инфраструктуру, либо к инциденту в момент пика нагрузки, когда масштабировать уже поздно.

Разделим системы на домены и разберем специфику, справедливую для них, это поможет ответить на вопрос «когда нужно тестирование той или иной системы?» более предметно.

Е-commerce-системы

Для e-commerce-систем справедливы экстремальные, но хорошо предсказуемые сезонные нагрузки. Для пользователей важно в первую очередь быстродействие системы, потому что от времени реакции системы будет зависеть, успеет пользователь приобрести по скидке желаемый товар с высоким спросом или нет. Несоответствие этим требованиям приведет к отказу пользователей от использования системы и потенциальным убыткам как для пользователя, так и для компании — разработчика системы.

Что важно проверить при работе с e-commerce-системами?

Способность системы работать под пиковыми нагрузками

Например, во время распродажи и других high-season-событий.

Поиск и фильтрация

Сложные запросы выборки могут негативно сказаться на работе всей системы и вызвать отказ в работе системы, что в свою очередь приведет к уменьшению конверсии продаж и отказам со стороны конечных пользователей.

Оформление заказов, работа корзины и другие сценарии работы системы

Важно удостовериться, что система предоставляет конечным потребителям высокий уровень комфорта при работе с ней. Подразумевается, что система работает отзывчиво и не вызывает у пользователя раздражения, производительность системы не приводит к ситуации, когда пользователь не может использовать систему по назначению.

Банковские приложения

Специфика требований к работе банковских систем отличается от e-commerce-приложений, где во главу угла ставится производительность систем. Для банковских приложений в первую очередь важна надежность работы системы, но и критичность скорости работы системы остается на высоком уровне. При тестировании банковских приложений необходимо проверить работу системы при указанных ниже сценариях ее эксплуатации.

Утренние пики

В будни период с 9:00 до 11:00, как правило, является пиковым для банковских систем по операциям авторизации и входа в приложение банковскими работниками. Тестирование производительности позволяет убедиться, что операторы системы не испытывают трудностей с авторизацией в системе и могут беспрепятственно выполнять свои рабочие задачи.

День зарплаты

В дни выплаты заработной платы зарплатным клиентам банка от предприятий (чаще всего это происходит 1 и 15, 5 и 20, 10 и 25 числа месяца) банковская система должна обеспечить гарантированную доставку перевода в установленные платежным агентом сроки. Проблемы с работой переводов могут приводить к юридическим последствиям и негативному опыту участников деловых взаимоотношений, что чревато репутационными и материальными потерями.

Регуляторные требования

ЦБ и другие регуляторы устанавливают SLA на время обработки операций. Нарушение этих требований приводит к взысканиям со стороны регуляторов. Нагрузочное тестирование позволяет избежать этих рисков и разработать систему в соответствии с SLA, выставляемыми регуляторами.

Конкурентное обновление счетов

Проверка под нагрузкой классических проблем dirty read / lost update, которые в тестах на одном пользователе воспроизвести невозможно из-за отсутствия конкурентного доступа к счетам.

Интеграции с внешними системами

Тестирование производительности — это не только диагностика текущих проблем, но и инструмент стратегического планирования. Банковские системы взаимодействуют с SWIFT, АБС, бюро кредитных историй. Тестирование производительности позволяет определить характер поведения системы при возникновении недоступности или деградации быстродействия внешних систем. Необходимо убедиться, что проблемы на стороне внешних систем не приводят к деградации производительности или недоступности тестируемой системы.

На этом вторая часть завершается. Мы разобрались, для чего вообще нужно тестирование производительности, — рассмотрели универсальные сценарии эксплуатации, справедливые для любых систем, и специфику e-commerce и банковских приложений.

В следующей, третьей части поговорим о самых распространенных мифах о нагрузочном тестировании и разберем ошибки, которые встречаются в проектах слишком часто. Подписывайтесь, чтобы не пропустить!

View the original on Хабр →

KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.