Запись и воспроизведение трафика – это не панацея!
Запись и воспроизведение трафика – это не панацея!

Несколько дней назад в группе технического обмена все обсуждали тему записи и воспроизведения трафика. Я заметил, что обсуждает много людей, и у них обычно есть две точки зрения: первая точка зрения заключается в том, что запись и воспроизведение трафика имеют широкие перспективы применения и могут значительно повысить эффективность тестирования и технические навыки, и все они хотят реализовать это самостоятельно. команды, но необходимы некоторые ссылки на лучшие практики; вторая точка зрения заключается в том, что такую ​​практику могут применять только крупные производители, а мелким компаниям не следует даже думать об этом.

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

Что такое запись и воспроизведение трафика?

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

Концепция и техническая практика записи и воспроизведения трафика была впервые разработана в 2010 году британской компанией Riverbed Technology для мониторинга и диагностики производительности сети, чтобы быстро диагностировать и решать проблемы при их возникновении. В Китае самым известным в 2019 году должен стать инструмент записи и воспроизведения трафика с открытым исходным кодом от Alibaba: JVM-Sandbox-Repeater.

JVM-Sandbox-Repeater изначально решает некоторые проблемы, возникающие во время полноканального онлайн-тестирования, в основном следующие:

  • Существует несоответствие между смоделированными запросами и реальными запросами пользователей;
  • Полноканальное онлайн-стресс-тестирование имеет определенные нарушения в системе;
  • Запросы на моделирование не могут полностью охватить конкретные бизнес-процессы и сценарии;

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

  • Повторение онлайн-ошибок в тестовой среде;
  • Проблемы регрессии при реконструкции сервиса и сложных отношениях системных вызовов;
  • Чем сложнее бизнес,Чем больше система,Чем выше стоимость обслуживания сценариев использования автоматизации тестирования интерфейса;

В настоящее время существует множество инструментов для записи и воспроизведения трафика. Ниже приведены основные инструменты:

  • ngx_http_mirror_module:Nginxвстроенные модули,Обеспечить функцию копирования потока;
  • TcpCopy:открытый исходный кодпоток Воспроизведениеинструмент,Поддерживает воспроизведение нескольких типов видео в режиме реального времени и в автономном режиме;
  • Sharingan:на основеGolangизпоток Записывать Воспроизведениеинструмент,Изменив исходный код Golang,Добавьте хук для перехвата и зеркалирования потока;
  • GoReplay:Golangписатьиз Открытый исходный кодинструмент,Использование библиотеки gopacket,Захват пакетов на основе libpacp и использование функции сопрограммы go для управления скоростью воспроизведения;
  • JVM-SANDBOX-Repeater:JVM-Sandboxпод экосистемойиз Важные модули,Дизайн плагина может быстро адаптироваться к различному промежуточному программному обеспечению.,Инкапсулировать базовый протокол записи/воспроизведения запроса,Предоставляет множество распространенных и расширяемых API;

Преимущества и недостатки записи и воспроизведения трафика

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

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

  • Большинство компаний имеют различные соображения по проверке статуса входа и контролю рисков.,Записанные данные сталкиваются с различными проблемами проверки;
  • Многие бизнес-сценарии неидемпотентны. Например, продукт можно заказать только один раз с одним и тем же идентификатором, например, обратные вызовы трехсторонних платежей и проблемы сопоставления трех заказов;
  • Многие системы имеют различные внутренние и внешние вызовы зависимостей.,Если записанные данные воспроизводятся напрямую без обработки,Многие сценарии сообщают об ошибках;

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

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

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

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

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

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

Факторы, которые следует учитывать при внедрении технологии

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

  1. технология записи и воспроизведения потока,Он больше подходит для систем со сложным бизнесом + сложной системной архитектурой + высоким уровнем параллелизма и высокой производительностью. Из-за сложности и высокого параллелизма,За этим стоят более высокие прибыли бизнеса и затраты на устранение неисправностей.,Целесообразность посадки будет выше.
  2. Технология строительства и упражняться постепенная и итеративная.,Если базовая техническая база команды находится на среднем уровне,Например, нет богатого опыта в области CICD, выпуска в оттенках серого, автоматизированного тестирования и полноканального стресс-тестирования в режиме онлайн.,Не рекомендуется заходить в упражнятьсяпоток для записи и воспроизведения.
  3. С точки зрения технологии упражняться,поток Записывать Воспроизведение Чтобы решить эти основные проблемы:экологическая изоляция、план действий в чрезвычайной ситуации、Данные пользователя моделирования、обработка данных и совершенные методы моделирования.
  4. поток Запись и воспроизведение не могут напрямую обнаружить многие онлайн-проблемы.,По сравнению с затратами огромных затрат и времени на реализацию потоковой записи и воспроизведения,Лучше инвестировать больше в эти области.:Уточнить потребности、Стандарты кодирования、управление проектом、Управление отраслью и средой.

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

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose