Содержание


Привет, читатель!

Меня зовут Василий Кудрявцев, и вот уже 10 лет я занимаюсь нагрузочным тестированием, а из них последние 1,5 года – в компании РТЛабс.

И сегодня мы поговорим не об инструментах или общих подходах (для этого есть курсы – один из крупных веду я, а еще у многих есть коллеги-эксперты и тот самый чатик в телеге на 3400+ участников), а об области, которую обычно обходят стороной или собирают на коленке — тестовые стенды для нагрузочного тестирования.

Здесь, на Госуслугах, мы пока только конструируем мечту каждого нагрузочника — свой отдельный, выделенный, рабочий (!) тестовый стенд.  Особенно это мечта актуальна для небольших продуктовых команд.

Тем не менее, за последний год мы увеличили количество проводимых тестов почти в 10 раз и команду раза в два. Где же мы проводим более 1000 нагрузочных тестов в год без отдельного стенда, спросите вы? Ответ: мы использовали все стенды по максимуму, под шум (крики) продуктовых команд! :)

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

Договоримся о терминологии

  1. НТ — нагрузочное тестирование, для меня это синоним тестирования производительности. В НТ входят всевозможные подвиды тестов, направленные на проверку показателей производительности системы: время отклика, пропускная способность, % успешных операций или доступность, утилизация ресурсов.

  2. Максимальная производительность — уровень пропускной способности системы, после которого система перестаёт удовлетворять предъявленным к ней требованиям — по времени отклика, доступности, утилизации ресурсов.

  3. Тест определения максимальной производительности — ступенчатое повышение нагрузки на систему до достижения этого самого уровня.

Как у нас организована нагрузка

Инструменты:

  • Основной - Gatling

  • Протоколы – наиболее часто это REST-ы и web по http, бывают и скрипты нагрузки на БД / очереди

  • Запуск тестов в Jenkins

  • Мониторинг в Grafana + Clickhouse

  • Для мониторинга генераторов нагрузки — Prometheus

  • Redis и Postgres для хранения тестовых данных, FTP для больших файлов

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

3+ регулярно нагружаемые крупные системы:

  • Единый портал государственных услуг (ЕПГУ)

  • Единая система идентификации и аутентификации (ЕСИА)

  • Система межведомственного электронного взаимодействия (СМЭВ, шина данных)

  • …и еще с десяток периодически нагружаемых прикладных систем и сервисов

Основные типы тестов:

  • Проверка стабильной нагрузки — короткий тест с заданным tps

  • Стресс-тесты — проверка работы под большой нагрузкой в течение короткого времени

  • Классическая максимальная производительность 

Команда инженеров:

1 лид и 4 нагрузочника разного опыта и происхождения, со средним опытом в НТ = ~3 года

Вернемся к нагрузочным стендам

Разделим типы стендов на несколько категорий и поймём, что же можно на них тестировать и какие риски / ограничения нужно держать в уме:

  1. DEV — стенд разработки

  2. UAT — стенд регрессионного функционального тестирования

  3. LT — отдельный стенд нагрузочного тестирования

  4. PROD — стенд на базе инфраструктуры Продуктивного контура

Каждый опишем с нескольких сторон по такой схеме:

  • Summary — короткое резюме от меня

  • Жиза — как мы используем этот стенд

  • Что можно — какие тесты можно проводить

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

  • Pros and cons — основные + / -

  • Advice — совет напоследок обзора стенда

DEV - место бурлящей жизни и регулярной поломки разработчиками

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

Жиза: Не самый активный стенд именно для нагрузки, но супер-массовые новые сервисы сначала тестим здесь — социальные выплаты, сервисы для выборов, онлайн-запись в школы. Конечно же, в микросервисах, особенно часто в кубере. Здесь не проверить какой-нибудь scaling, но 50-70% проблем на данном стенде мы закрывали, хоть пользовались им не так часто, как стоило бы.

Отступление в рамках темы

Отдельного внимания здесь в описании DEV заслуживает наше детище для Системы межведомственного электронного взаимодействия (СМЭВ). Изначально мы планировали собрать стенд LT, но заказчики-разработчики пожелали проверять новые решения и тюнинг/рефакторинг старых здесь и сейчас. У нас вышел эдакий Монстр, которого мы прозвали DEV-LT! По необходимости могли и мощностей накинуть для достижения нужных цифр, но и не ждали отлаженных новых релизов и прочих pipeline-ов для проверки разных гипотез.

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

Что можно: стресс-тесты и общая максимальная производительность всего комплекса здесь бессмысленны. Только точечный тюнинг и проверка отдельных компонентов тестами со стабильными потоками (количество открытых соединений / thread-ов) или подачей стабильной нагрузки.

Команда: Если времени мало, то практически в онлайне с разработчиком. Если побольше — в режиме чатика. Очень удобно поработать devops-ом: сделать «кнопку» для разработчика и дать ему «пофрустрировать» самому до желаемого результата. Не забудьте про мониторинг, чтобы он получал удовольствие! Главное вовремя остановить, не доводить до уровня «хочу 100к tps выжать, 12 ночи всего, запускаю ещё тест!»

Pros and cons:

+ экономит время тюнинга на поздних этапах, что особенно актуально для багов по производительности (все мы знаем, они бывают ОЧЕНЬ дорогими)

+ можно запускать «на коленке» и получать реальный value

– не подходит для основательных выводов по максималке / не применить к PROD — нужны дополнительные тесты на других контурах

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

– сложно с тестированием интеграций, DEV, как правило, изолирован

Advice: Совет подойдёт и для других стендов — «одно изменение за раз!». Разработчики любят побежать азартно вперёд, и применить много «оптимизаций» между тестами за один раз. Потом приходится часто искать, что именно улучшило или ухудшило производительность. Поэтому лучше стараться делать одно улучшение/изменение за раз и оценивать тестом, хотя бы коротким.

UAT (стенд регрессионного функционального тестирования) — относительно стабильный контур по сборкам, но слабый по железу

Summary: Как и для ФТ — хороший стенд для проверки новых релизов по старой функциональности (применимо и для НТ). Так и хочется добавить к нему железа, и пусть весь мир (другие стенды) подождут. Но в итоге тестов будет ждать и остальная команда.

Жиза: С этого стенда мы начинали в РТЛабс проводить регулярное НТ — в данном случае проверка релизов на не-ухудшение производительности. В частности, на небольшом железе мы сравниваем «выдерживание» ступени стабильной нагрузки по основным показателям производительности. Дефектов обычно находится не так много, как хотелось бы, потому что у этого стенда всегда много «но» по сравнению с PROD. И это несмотря на то, что по конфигурации компонентов он к нему ближе, чем любой другой.

Что можно: Лучше проводить тесты стабильной нагрузки 10-60 минут. Длительность зависит от вашей ступени стабильной нагрузки, за которую вы сможете адекватно оценить показатели производительности. Если у вас быстрая система с 100-500+ tps и временем отклика в пределах секунды (шина данных, например), то хватит и коротких тестов. Если что-то пользовательское с множеством сценариев — лучше погонять подольше и заодно оценить надежность.

Команда: Как правило, лучший друг нагрузочника — это функциональщик. В данном случае вдвойне, так как это его стенд! Он подскажет, когда и сборка более-менее стабильна и когда можно поломать стенд тестами. С дефектами тут сложнее, чем на DEV — у нас по крайней мере были наводки и на инфраструктурные сбои, а разбор может быть не таким быстрым, как хотелось бы.

Pros and cons:

+ хороший стенд для старта нагрузочного тестирования в плане стабильности и отладки (в том числе на новых готовящихся версиях системы). И для того, чтобы потом куда-то переезжать с тестами на другие стенды

+ обычно неплохая поддержка со стороны ФТ и сопровождения, так как релизы должны ехать в PROD без простоев. А вы, в том числе, занимаете время подготовки релиза :)

– придётся выбирать время для тестов, чтобы не мешать ФТ

– сильную нагрузку целиком на систему не подать ввиду слабости стенда по железу, то есть сложно оценить максимальную производительность в целом

Advice: Не убивайте стенд, пожалейте функциональщиков! Не только проведением нагрузки днём, но и забиванием БД тестовыми или созданными в тестах данными. Проработайте процедуры очистки.

LT (отдельный стенд нагрузочного тестирования)

На какой хватит средств какой построите, такой и будет! Но в любом случае он лучше остальных стендов, потому что СВОЙ.

Summary: Здесь всё понятно — идеальный стенд практически для любых целей НТ.  Не надо сидеть по ночам / ждать пока он освободится (в пределах одной тестируемой системы, конечно). В некоторых банках даже построили интеграционные стенды НТ. Правда пока я не видел стенд, выдерживающий 100% нагрузку по профилю с Прода, со всех каналов-систем.

Жиза: Выше я рассказывал о том, как мы применяем стенд DEV-LT. Пока мы видим неплохую пользу в совмещении целей для этого контура с учетом имеющейся инфраструктуры PROD для больших тестов (об этом ниже).

Из опыта других компаний могу сказать, что отдельный контур это действительно долго, дорого и замечательно. Причём для стабильного стенда крупной системы «долго» — это скорее всего минимум год, а «дорого» — не только закупка оборудования, но ещё и отдельная команда админов разного профиля. Ведь у вас небольшой PROD, а значит нужны инженеры СПО, ППО, DBA и т.д.

При этом на других стендах можно и нужно ловить 80-90% проблем. Это значит, что в микросервисной архитектуре огромные стенды становятся всё менее полезными.

Что можно: ВСЁ. Ну, правда. Интеграционные нагрузочные тесты можно проводить с эмуляторами, хорошо идут регрессионные тесты, стресс-тест/максималка/надежность/отказоустойчивость и любые другие, которые вы ещё себе придумаете между релизами.

Команда: Если хотите работать эффективно, а не чинить стенд неделями, когда ребята с PROD / тестовых контуров смогут уделить вам время, то только отдельная команда. Если стенд небольшой, можно не выделять отдельно системных администраторов / DBA на задачи одного этого стенда. Но инженеры ППО точно нужны — системы нужно и поднимать с нуля и поддерживать (поднимать) после регулярных тестов и релизов, которые будут их ломать.

Pros and cons:

+ подходит для всех нужных нагрузочных тестов (с интеграционным НТ может быть сложно, но возможно!)

+ не нужно ждать очередь на стенд, есть время для улучшений / экспериментов

+ можно готовить нужные наборы тестовых данных, тестировать объемы

– дорого и долго — и по подготовке железа, и в поддержке

– команде сопровождения нужно долго набираться опыта

– бывает сложно отслеживать все изменения на PROD / тестовых контурах, чтобы тестовый стенд НТ был актуален

Advice: Не надейтесь, что стенд НТ взлетит быстро, особенно если команда собирается с нуля. Исключения — небольшие и простые системы, по ним и PROD просто и быстро собрать.

И раз уж у вас отдельный стенд — пробивайте получение копии БД с PROD (урезанной, обезличенной), это повысит качество тестирования.

Ещё совет— не делайте прогнозирование / домножение результатов, полученных на стенде НТ, для PROD, если у вас LT сильно меньше по ресурсам. Горизонтальное масштабирование —  непростая штука. Да простят меня мастера-архитекторы – иногда позволяю себе «умножить на 2» производительность, полученную на стенде НТ, который в 2 раза слабее Прода по ресурсам, при микросервисной архитектуре и не загруженности всех узлов по метрикам серверов. Можно предположить, что на Прод будет не хуже.

Сравнение производительности простой web-ки на node.js при увеличении ресурсов машины в 2 раза.

Как-то студенты курса по НТ проводили простой эксперимент по оценке влияния повышения ресурсов сервера, на котором крутилась простая веб-страничка c node.js под капотом, практически ничего не делающая. Результат налицо. Теперь храню эту картинку и показываю всем, кто любит «умножать на 10».

PROD (стенд на базе инфраструктуры Продуктивного контура) – опасно, но крайне эффективно

Summary: Мало кто вас сюда пустит. Но если пустит — польза не только в качестве достоверных результатов, но и в тренировке для команды поддержки PROD. Только нежнее с боевой инфрой! И не забывайте про очистку от разного мусора после тестов.

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

Пользователи Госуслуг засыпают, а мы собираемся на ночной zoom и аккуратно тестируем на PROD-инфраструктуре. Тюним на месте, записываем изменения конфигов «на лету» себе в тикеты «на утро». Отдельно заказываем новые VM туда, где понимаем, что не успеем дотюниться до запуска сервиса.

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

Что можно: Конечно, не всё. В первую очередь это стресс-тесты — короткие, точные, до первых узких мест, чтобы затем произвести тюнинг. Можно сразу в онлайне, чтобы не уходить потом на ещё одни работы. Не получится использовать инфраструктуру PROD, если у вас интенсивная пользовательская нагрузка 24/7 и нет микросервисов, которые вы можете изолировать от влияния на пользователей на 99%+.

Команда: Берите с собой в онлайн ВСЕХ ключевых участников проекта — разработку, сопровождение PROD, специалистов по сети, виртуализации, железу. В общем, всех, кто будет (а лучше не будет, не зря же делается НТ) разбираться с проблемами PROD в день запуска нового сервиса. Ведь это же боевая тренировка!

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

Pros and cons:

+ не только НТ, но и тренировка для команды

+ в нехватке времени можно тюнить на лету (конечно, сохраняя улучшения в репозиториях)

– требуется хорошая подготовка плана и скриптов очистки

– не для каждого сервиса возможно НТ на инфраструктуре PROD

Advice: Все же помнят хорошую практику: всё что выкатывается на PROD должно тестироваться? Это же касается и ваших скриптов НТ, тестовых данных, скриптов очистки от мусора после НТ. Всё должно быть протестировано на младших контурах, считайте, что это такой же релиз.

Ну и конечно, так как НТ на PROD — это часто ночные работы, не замучайте команду в ночь перед запуском важных сервисов. Если не успеваете, лучше ребятам поспать ночь и с утра уже готовиться к проблемам на PROD, быстрее будут реагировать.

Во всём нужна мера, потому что, как говорил один мой знакомый менеджер: «Работа отнимает всё отведенное на неё время».

Вместо заключения

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

Я бы описал рекомендованный путь становления процессов НТ в компании по части стендов так:

UAT – отсюда можно стартовать регрессионное НТ

DEV – для новых сервисов, которые будут нагружены

PROD – когда отдельного стенда НТ нет, а ожидается новая большая нагрузка

LT – когда уже научитесь тестировать, поймете систему и действительно сможете использовать дорогое удовольствие с пользой

Конечно, эти стенды у вас могут называться по-другому, типы тестов тоже. Я старался использовать плюс-минус общепринятые понятия. На закрепление терминологии не претендую.

Пишите в комментариях про ваш опыт использования тестовых стендов для НТ. Буду рад почерпнуть что-то новое, в том числе по поводу плюсов и минусов каждого.

Всем результативного НТ и рабочих стендов!

Иллюстрации: Михаил Голев

Комментарии (22)


  1. SerjV
    13.09.2021 14:11

    Ответ: мы использовали все стенды по максимуму, под шум (крики) продуктовых команд! :)

    Ну вы еще скажите, что никогда-никогда такого не было! ;)

    (кроме "совсем уж" продакшена, куда не знаю как сейчас, а раньше вас (в смысле, сотрудников вашей конторы) непосредственно пускали не ко всему... хотя, в последние несколько лет наверняка что-то изменилось, конечно)


    1. vasiksim88 Автор
      13.09.2021 15:44

      Поддержка серверной части не только РТлабс, в том числе и нагрузочное тестирование с участием специалистов ЦХД в отдельных серьёзных случаях, например. Но ~на 80% "Госуслуги — это мы" )


  1. CrazyScientist
    13.09.2021 16:23

    А можно просто купить DDOS на себя и пытаться выжить)


    1. Ghool
      13.09.2021 18:51
      +1

      В ddos зачастую используются нефункциональнве пакеты с целью завалить сетевой канал

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


  1. polarnik
    13.09.2021 17:34
    +1

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

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


    1. vasiksim88 Автор
      13.09.2021 19:26
      +2

      Тут 2 темы, которые +/- работают у нас:

      1. На тестовых средах - авто-рефреш объектов из бэкапов состояния "на вчера", а затем сверху накат тестовых данных (учёток, заявлений каких-нибудь и т.п.). Если вдруг тестирование перетекает на следующий день - временно отключить авто-рефреш (главное не забыть отключить и потом включить, но специально обученные люди следят за этим)

      2. Про очистку данных после тестов просто когда пишешь скрипт - ты должен написать очистку данных для него ) что-то посложнее (удаление учетных записей, разная инфа о которых хранится в 20-30+ таблицах) - тут уже тикет на разработку, но полезно может быть и для Прода тоже может быть для очистки от мусора, т.е. скрипты не только для НТ )


  1. polarnik
    13.09.2021 17:39
    +1

    Что выступает агентом мониторинга, который кладет данные в Clickhouse?

    Используется отправка JSON через Kafka или Graphite-интерфейс или HTTP-протокол ClickHouse?

    Или это какая-то интеграция с Prometheus, Victoria, InfluxDB перекладывает метрики в ClickHouse?


    1. vasiksim88 Автор
      13.09.2021 19:29
      +2

      У нас попроще )

      Парсер логов на java, который читает файлик гатлинга и пишет в Clickhouse, используем библиотеку от Яндекса (ru.yandex.clickhouse).

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


      1. Brain_Overload
        14.09.2021 13:30

        а парсер свой мониторите? в целом какой выдает оверхед по компонентам?

        я так понимаю он же у вас на каждом из интансов крутится или для логов волюм на уловном гластере сделали?


        1. vasiksim88 Автор
          14.09.2021 14:24

          См. ответ на нижний коммент. В целом — не ощущали оверхеда, он же отдельно в докере поднимается, собирает во время теста данные с файлика, не сильно затратно.


      1. numezmat19
        14.09.2021 13:32

        Осуществляете ли вы при таком решении мониторинг парсера?
        И замеряете ли overhead по утилизации хостов при таком решении?


        1. vasiksim88 Автор
          14.09.2021 13:40

          Осуществляете ли вы при таком решении мониторинг парсера?

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

          И замеряете ли overhead по утилизации хостов при таком решении?

          Хм.. Это не замеряли отдельно, в целом у нас мощность генераторов нагрузки средняя (8/8), составляет малый процент от мощностей нагружаемых систем. Такой генератор на Gatling выдаёт тысячи tps на простых запросах — нам хватает и не требует оптимизации.


  1. Brain_Overload
    14.09.2021 12:19

    UAT – отсюда можно стартовать регрессионное НТ

    эм, что простите?) вы даже сами пишете про слабое железо на юатах, а потом выдаете такой дикий антипатерн.

    Мониторинг в Grafana + Clickhouse

    Для мониторинга генераторов нагрузки — Prometheus

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

    • Проверка стабильной нагрузки — короткий тест с заданным tps

    точно нет очепятки?) стабильность и короткий тест в одном предложении, ну такое =)


    1. vasiksim88 Автор
      14.09.2021 13:31

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

      Для регрессионного тестирования вполне себе подходит, для начала, а что делать когда начинаешь НТ, а отдельного стенда нет?) Можно не всем профилем нагрузки тестировать сразу, а разбить на несколько частей (чтобы стенд выдержал). Я не говорю, что это — супер, но лучше, чем ничего ) Особенно когда НТ как процесс только стартует в компании.

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

      В целом — согласен, наверное на prometheus по всем онлайн-метрикам можно было бы перейти, пока мы в процессе, да и более приоритетные задачи по автоматизации/мониторингу есть. А Clickhouse быстрее работает чем InfluxDB, некоторое время назад перешли (хоть цели могут быть и разные у этих БД — нам понравилось, так и остались).

      стабильность и короткий тест в одном предложении

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


      1. Brain_Overload
        14.09.2021 15:27

        Для регрессионного тестирования вполне себе подходит, для начала, а что делать когда начинаешь НТ, а отдельного стенда нет?)

        по хорошему? отладить сценарии чисто функционально и больше ничего, ибо это мартышкин труд кмк. Вот к примеру, у меня стенд сейчас под интеграцию, отличия от юата по железу раз в 40 на вскидку и что я должен гонять в таком варианте на юате? правильно, ничего =)

        наверное на prometheus по всем онлайн-метрикам можно было бы перейти

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

        Clickhouse быстрее работает чем InfluxDB

        для меня инфлюкс умер уже года 4 как назад и производительность его одна из причин.

        Стабильность не как "Надежность" 

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


        1. vasiksim88 Автор
          14.09.2021 16:27

          отличия от юата по железу раз в 40 на вскидку и что я должен гонять в таком варианте на юате? правильно, ничего

          +

          тут не спорю, отличия в разумных пределах, конечно же. до "/10" стенда — можно нагружать


          1. Brain_Overload
            14.09.2021 16:45

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

            а как быть с базами в части данных? ни ФТ, ни ЮАТ контур не имеет копии с прода, даже наполнения синтетикой нет (и сделать ее как правило не получится ибо дорого), а значит в этой части результаты будут вообще не релевантны.


            1. vasiksim88 Автор
              14.09.2021 22:32

              а как это потом транслировать в реальность по результатам? .. даже простое скалирование под со стейтлес прикладами, линейность гарантированно дать не может

              Конечно, об этом и пишу в статье в том числе, даже график приложил ) НО! в регрессе стабильной небольшой нагрузкой можно вылавливать баги. 1 изменение за раз - провёл эталон на текущем релизе, поставил новый релиз, провел регресс. Есть изменения по времени отклика / утилизации ресурсов / непонятные всплески tps / их падение - вот уже и есть наводка на вопросы и изучение. Опять же - лучше чем ничего, пускай качественного результата будет меньше, но уже - что-то

              а как быть с базами в части данных? ни ФТ, ни ЮАТ контур не имеет копии с прода

              Здесь по-разному, в основном конечно пользы маловато будет, не спорю.


              1. Brain_Overload
                15.09.2021 08:33

                Конечно, об этом и пишу в статье в том числе, даже график приложил ) 

                пишите, вот только итоговый вывод противоречит патернам НТ)

                в регрессе стабильной небольшой нагрузкой можно вылавливать баги

                можно, как и вылавливать их при стрельбе в коленку, но это повод проводить такое НТ?). То о чем вы говорите, является по сути регрессионными смоук тестами, которые хорошо бы страивать в пайп деплоя на равне с юнитам и первичный анализ отдать разработчикам. Иначе придется самим следить за консистентностью еще и юата по конфигам и остальным прелестям, вплоть то настроек хостов на уровне ядра которые там всегда в дефолте.

                вот уже и есть наводка на вопросы и изучение

                да, действительно, вот только очень большой шанс того, что вы просто наткнетесь на разность конфигов, версий каких либо компонентов или просто по нагрузке на саму стойку, при условной переподписке на юате 1/20


              1. Brain_Overload
                15.09.2021 09:36

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

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

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


                1. vasiksim88 Автор
                  15.09.2021 09:56

                  Я за быстрый результат, но понимаю ваши опасения)

                  Бывает такое, что НТ так и остаётся чем-то незначительным и дальше какого-нибудь контура для ФТ и не уезжает.. Но, это в том числе хороший полигон, чтобы начать изучать систему, писать те самые первые скрипты и сценарии, погружаться в архитектуру — чем ждать условный год закупку отдельного стенда. Польза есть в общем, не надо её недооценивать ;)

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

                  https://otus.ru/lessons/loadqa/

                  На сим предлагаю тред завершить )


                  1. Brain_Overload
                    15.09.2021 12:32

                    остаётся чем-то незначительным 

                    тогда это нельзя называть полноценным нт)

                    да отзывы поспрашивай, если интересно ;)

                    я знаком с этим курсом, не один кандидат его прошедший приходил ко мне на ТИ, но увы ни один так его пройти и не смог, может это конечно я такой токсичный, но все на анализе простой архитектурной схемы засыпались=)