Нагрузочные тесты (не) нужны?!

29.01.26

Разработка - Тестирование QA

Эта статья обобщает многолетний практический опыт нагрузочного тестирования крупных 1С-систем с тысячами пользователей. Разбираемся, когда нагрузочные тесты действительно нужны, а когда от них можно отказаться, какие виды нагрузочного тестирования существуют, какими подходами можно пользоваться при разработке тестов и на что обращать внимание в результатах. Статья будет полезна руководителям проектов и ИТ-направлений, разработчикам, аналитикам, тем, кто только начинает свой путь нагрузочного тестирования, а также опытным экспертам для систематизации знаний, выработки общего понимания и обмена практическим опытом.

Немного личного контекста

 

В нагрузочном тестировании я работаю уже более восьми лет и успел побывать в разных ролях: разработчика, исполнителя, заказчика и эксперта-консультанта.

Если оглянуться еще дальше, около 15 лет назад в Хабаровске мы с коллегой проверяли, будет ли 1С:Торговля и склад 9.2 работать под Linux. Тогда мы не знали новомодных слов «импортозамещение» и не думали, что занимаемся в каком-то виде нагрузочным тестированием. Мне кажется, что именно эти эксперименты во многом определили вектор моего развития в сторону эксперта по техвопросам.

Тезис «Нагрузочные тесты не нужны» я слышал множество раз от самых разных людей. Когда-то я был категоричен в своем мнении «Безусловно нужны!».

Если отвечать на этот вопрос сейчас, спустя время и опыт, мой ответ будет таким: «Скорее нет, чем да.»

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

 

Когда нагрузочные тесты действительно не нужны

 

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

  1. Небольшие системы

Если в системе работает небольшое количество пользователей, а объем базы данных мал, серьезных нагрузок просто нет. Большинство проблем проявятся:

  • при обычном сценарном тестировании;

  • в ходе повседневной работы пользователей.

В таких случаях нагрузочное тестирование чаще всего избыточно.

  1. Осознанный финансовый риск

В крупных проектах все упирается в деньги.

Важно сопоставить:

  • стоимость простоя системы;

  • стоимость ошибки;

  • стоимость разработки нагрузочного теста (разовую);

  • стоимость его актуализации и регулярного прогона.

Если разработка и поддержка нагрузочного теста дороже потенциального ущерба, и заказчик готов принять риски – тестирование можно не проводить.

  1. «Системы-единороги»

Иногда встречаются системы с высокой нагрузкой, которые годами работают без проблем с производительностью. Такие системы действительно существуют – в моей практике они встречались пару раз.

Эксперты подключаются к ним в основном при инфраструктурных проблемах, а не из-за производительности.

  1. Когда уже поздно

Иногда времени уже просто нет.

Пример из практики: нас подключают к проекту за месяц до запуска. Очевидно, что за это время сделать полноценный нагрузочный тест невозможно. Было принято решение:

  • запускаться без нагрузочного теста;

  • подключить экспертов к поддержке после запуска.

Критические проблемы устранили в первые дни, проблемы производительности – в течение нескольких недель.

!!! Такой подход возможен только при соблюдении двух условий:

  • у вас есть сильные технические эксперты (и у них есть время);

  • заказчик готов к рискам и проблемам (а они будут 100%) и доработкам уже после запуска.

 

Основные виды нагрузочного тестирования

 

Конечно же, нагрузочное тестирование, как вид, появилось не в 1С.

У нас в 1С чаще всего используются несколько типов:

  1. Тестирование производительности

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

  1. Тестирование стабильности

Проблемы часто проявляются не через час, а через 8, 16 или 24 часа непрерывной работы.

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

Чаще всего выявляются проблемы:

  • утечки памяти;

  • деградация производительности;

  • накопление ошибок.

  1. Стресс-тестирование

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

  1. Тестирование отказоустойчивости

Здесь мы целенаправленно ломаем систему:

  • отключаем серверы 1С;

  • проверяем корректность настроек ТНФ;

  • анализируем поведение полнотекстового поиска, журнала регистрации;

  • проверяем корректность переключения нод СУБД.

  1. Тестирование объемов данных

Система живет годами, а не месяцами. Базы в 100 ГБ, 1 ТБ, 10 ТБ – это принципиально разное поведение СУБД.

Нагрузочные тесты имеют смысл только на репрезентативных объемах данных.

 

Подходы к разработке нагрузочного теста

 

Все подходы можно условно расположить по возрастанию стоимости и сложности.

 

Критерии оценки

Мы будем сравнивать подходы по следующим параметрам:

  • скорость и простота разработки;

  • изменение интенсивности;

  • изменение длительности;

  • масштабируемость;

  • вариативность сценариев;

  • повторяемость;

  • полнота покрытия.

 

Срез действий пользователей на рабочей базе

Собирается реальный срез действий пользователей за рабочий день и затем воспроизводится на копии этой же базы на момент начала записи действий.

Плюсы:

  • быстрая разработка;

  • простая актуализация;

  • хорошая повторяемость;

  • максимальная близость к реальным действиям;

  • можно тестировать фоновыми заданиями (исключается влияние клиентов и необходимость большого количества серверов-нагрузчиков).

Минусы:

  • сложно масштабировать количество пользователей;

  • сложно менять интенсивность;

  • нельзя увеличить длительность теста;

  • низкая вариативность.

 

«Частичный» нагрузочный тест

Тестируется отдельный фрагмент системы (обмен, отчет, операция).

Плюсы:

  • быстро и дешево;

  • гибкость и масштабируемость зависят от реализации;

  • хорошая повторяемость.

Главный минус:

  • Результаты нельзя напрямую экстраполировать на прод.

Если проблемы найдены – они почти наверняка будут и в бою. Если не найдены – это не гарантирует стабильность и производительность продуктивной среды.

 

Использование реальных данных

Работа с копированием и перепроведением реальных данных.

Плюсы:

  • близость к проду;

  • хорошая повторяемость;

  • гибкость и масштабируемость;

  • высокая полнота покрытия.

Минусы:

  • сложная инициализация данных;

  • высокая стоимость разработки и актуализации;

  • чувствительность к изменению исходных данных.

 

Полноценный нагрузочный тест

Самый дорогой, но и самый надежный вариант.

Минусы:

  • долго и дорого в разработке.

Плюсы:

  • масштабируемость;

  • гибкость;

  • вариативность;

  • повторяемость;

  • полнота покрытия;

  • удобная актуализация.

 

Что должно быть в результатах нагрузочного тестирования

 

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

 

Условия проведения

  • конфигурация инфраструктуры;

  • версии платформы и СУБД;

  • версия релиза конфигурации;

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

 

Требования к нагрузке

  • общее количество пользователей;

  • роли пользователей и их распределение;

  • сценарии действий;

  • фоновые операции (обмены, регламентные перепроведения и прочие неинтерактивные операции).

 

Контролируемые показатели

  • общий APDEX;

  • APDEX по ключевым операциям;

  • показатели фоновых операций;

  • нагрузка на оборудование (CPU, диски, сеть).

 

Результаты и выводы

  • APDEX общий;

  • APDEX по каждой ключевой операции;

  • показатели производительности фоновых операций;

  • нагрузка на оборудование;

  • экспертные рекомендации;

Почему здесь не указаны результаты ТЖ, результаты отчетов, анализы и так далее? Потому что для человека, который будет смотреть со стороны, это будет просто набор букв и цифр, который будет только бесполезно раздувать протокол.

Но сюда я все-таки отнесу рекомендации экспертов, которые будут основаны на тех самых ТЖ и пр.

  • решение о выпуске в релиз и ответственные лица.

 

Советы и типовые ошибки

 

Основано (как и вся статья) на личном опыте.

  • Фиксируйтесь на длительности теста, а не на количестве операций.

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

  • Используйте коэффициенты интенсивности.

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

  • Не забывайте про фоновые операции и отчеты.

Вроде «база» и все знают, но все же довольно часто встречаю эту проблему.

  • Минимизируйте случайные величины.

Отклонение значения случайной величины в рамках пары десятков секунд полезна (ну или до 30% от ее абсолютного значения) – оно позволит сгладить пики в распределении операций нагрузочного теста. Но случайное значение от одной секунды до десяти минут сделает только хуже – ваш тест станет абсолютно неповторяемым на вменяемом отрезке времени.

  • Меняйте только один параметр за один прогон.

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

 

Когда нагрузочные тесты все-таки нужны

 

Мы разобрали те варианты, когда можно не проводить нагрузочное тестирование. А теперь давайте подумаем, когда все-таки имеет смысл его проводить.

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

  • Разрабатывается новая система с >100 одновременных пользователей.

  • Обновляется платформа 1С.

  • Меняется СУБД или ее версия.

  • Изменяются настройки СУБД.

  • Меняется инфраструктура.

  • Существенно дорабатывается функциональность.

  • Планируется рост нагрузки.

  • Тест проводится регулярно для контроля состояния системы.

  • Проверяется каждый релиз (или одновременно, т.к. SLA, TTM и прочее, понимаю).

 

Смысл нагрузочного тестирования

 

Для руководителей и владельцев систем

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

Оно позволяет:

  • заранее оценить вероятность простоя и его стоимость;

  • принимать обоснованные решения о запуске системы или релиза;

  • понимать, какие проблемы являются архитектурными, а какие – эксплуатационными;

  • аргументированно обсуждать бюджет на инфраструктуру и развитие системы.

Важно помнить: отсутствие (как и наличие) нагрузочного тестирования – это тоже решение, оно должно быть осознанным и зафиксированным.

 

Для архитекторов, экспертов, эксплуататоров

Для экспертов, архитекторов и эксплуататоров нагрузочное тестирование – способ проверить гипотезы:

  • выдержит ли выбранная архитектура требуемую нагрузку;

  • где находятся узкие места (платформа, код, СУБД, инфраструктура);

  • как система ведет себя за пределами «нормального режима».

Нагрузочный тест дает не только цифры, но и материал для:

  • архитектурных решений;

  • выработки стандартов разработки;

  • формирования технического долга в измеримом виде.

 

Для разработчиков

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

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

  • проблемы параллельной работы;

  • проблемы производительности в эксплуатации, приближенной к реальной;

  • избыточные обращения к СУБД;

  • избыточные обращения к серверу 1С;

  • тяжелые запросы;

  • неоптимальные алгоритмы;

  • влияние редких, но «тяжелых» операций.

Чем раньше разработчик видит эти проблемы, тем дешевле их исправление.

 

Для аналитиков

Что интересно, но и аналитикам будет полезно участие в процессе НТ. Оно позволяет глубже погрузиться в бизнес-процессы.

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

  • какие бизнес-процессы являются критическими/важными;

  • какие операции являются ключевыми;

  • какие роли создают основную нагрузку;

  • какие сценарии работы пользователей в этих ролях;

  • какие фоновые процессы критичны для бизнеса.

Без этого нагрузочный тест рискует проверять «что угодно», но не реальную работу системы.

 

Итоговый вывод

 

Нагрузочные тесты – это не догма и не формальность.

Это инструмент, который:

  • добавляет аргументов в диалог ИТ с бизнесом;

  • снижает неопределенность при принятии решений;

  • делает риски измеримыми;

  • позволяет системе расти без неожиданных провалов;

  • уменьшает вероятность возникновения проблем производительности и стабильности.

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

 

*************

Статья написана по итогам доклада (видео), прочитанного на конференции INFOSTART TECH EVENT.

Вступайте в нашу телеграмм-группу Инфостарт

См. также

DevOps и автоматизация разработки Тестирование QA Программист Пользователь 1С:Предприятие 8 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Платные (руб)

Автотесты 1С - готовые тестовые сценарии, предназначенные для регресс-тестирования функционала конфигурации после обновления типовым релизом. Сценарии проверяют интерактивное заполнение форм документов, справочников и результат проведения документов. Сценарий – feature-файл, разработанный с помощью vanessa-automation. Запуск сценария выполняется интерактивно с помощью vanessa-automation или с помощью vanessa-runner в CI-системах. Доступно тестирование тонкого клиента. Поддерживаемые версии конфигураций 1С:Зарплата и Управление Персоналом 3 и версии КОРП: 3.1.35.48.

3660 руб.

05.08.2024    4977    35    1    

18

Тестирование QA DevOps и автоматизация разработки Программист 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Налоговый учет Платные (руб)

Готовые тестовые сценарии, предназначенные для регресс-тестирования функционала конфигурации после обновления типовым релизом. Сценарии проверяют интерактивное заполнение форм документов, справочников и результат проведения документов. Сценарии возможно использовать как для vanessa-automation, так и для СППР. Поддерживаемые версии конфигураций ERP2 и КА2: 2.5.17.168.

2440 руб.

04.07.2022    12193    45    1    

37

Тестирование QA Программист Бесплатно (free)

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

27.01.2026    205    vladimir_iclsoft    0    

5

Тестирование QA Программист 1С:Предприятие 8 Бесплатно (free)

За последний год YAxUnit заметно вырос: обновилась документация, запуск тестов в EDT стал практически мгновенным, появился редактор для режима 1С:Предприятие, инструменты для подготовки тестовых данных и подключение к ИИ через MCP-сервер для проверки и улучшения кода. Расскажем о том, какие свежие возможности YAxUnit позволяют сделать модульное и интеграционное тестирование в 1С быстрым, эффективным и комфортным.

26.01.2026    2260    Жолтокнижниг    16    

24

Тестирование QA Программист Бесплатно (free)

С Docker мы можем попробовать новые подходы, освоить современные инструменты и сделать тестирование 1С более эффективным. Расскажем об особенностях тестирования в Docker-контейнерах и решении проблем, которые могут при этом возникнуть.

20.01.2026    2396    TaGolovkina    12    

23

Инструментарий разработчика Тестирование QA Программист 1С 8.3 Абонемент ($m)

Очень часто программисты производят отладку программы при разработке, и каждый раз приходится настраивать среду после запуска, потом опять изменения и опять запуск, и все заново. Это тратит очень много времени. Хочу представить сообществу свой способ формирования среды отладки. Да, многие скажут, можно использовать Vanessa, но и тут не все так просто, там отдельный язык, его надо изучить, запуск усложняется тем, что нужен менеджер тестирования, и клиент тестирования и т.д. А я предлагаю совершенно иной подход, упрощенный, который можно использовать с любой БД.

10 стартмани

29.12.2025    692    0    user1884101    0    

5

Тестирование QA Бесплатно (free)

Запуск дымового тестирования не требует выделенной инфраструктуры, обучения и лишних затрат. Найти ошибки и улучшить качество разработки можно малыми силами, просто запустив готовые наборы тест-кейсов на своей локальной машине. Расскажем о преимуществах методики дымового тестирования и возможностях доработанного фреймворка Vanessa ADD.

12.11.2025    4696    arcius_7012    14    

26

Тестирование QA Бесплатно (free)

Во время прошедшей в начале октября конференции INFOSTART TECH EVENT 2025 Инфостарт Лаборатория и Инфостарт Обучение проводили тестирование всех желающих на знание фреймворка Vanessa Automation. Хочу поделиться результатами этого мероприятия и подробно разобрать пятерку вопросов, которые оказались самыми сложными для участников сертификации.

05.11.2025    2393    kuntashov    7    

20
Для отправки сообщения требуется регистрация/авторизация