Что такое запись и воспроизведение трафика? Запись и воспроизведение трафика означает, что сторона приложения автоматически регистрируется на стороне сервера путем установки зонда записи впрыска для формирования обратного потока трафика записи и полностью записывает содержимое ответа, от которого зависят все внешние вызовы (например, базы данных, распределенные кэши, внешние ответы сервисов и др.). Платформа распределяет инструкции по воспроизведению трафика на устройство воспроизведения. Его основная ценность заключается в прямой записи реальных производственных данных, преобразовании реальных производственных данных в многоразовый и исполняемый трафик, а также в быстром выполнении возвращаемых значений интерфейса сравнения воспроизведения и проверке промежуточного соединения в тестовой среде.
Версия Dewu платформы записи и воспроизведения трафика Pandora была значительно расширена по сравнению с официальной версией с открытым исходным кодом и поддерживает множество подвызовов и входных вызовов, которые не поддерживаются официальной версией. Кроме того, платформа также провела большую работу по адаптации промежуточного программного обеспечения Dewu, чтобы избежать большого количества шума при сбое воспроизведения.
Большинство известных в настоящее время на рынке платформ записи и воспроизведения трафика являются вторичной разработкой и преобразованием на базе Jvm-Sandbox-Repeater, и большинство из них поддерживают только язык Java. Основной принцип также заключается в проверке правильности логики кода путем записи реального онлайн-трафика и последующего воспроизведения его в тестовой среде.
На конкретном уровне реализации в настоящее время принята модель трехстороннего сотрудничества в области бизнес-тестирования, исследований и разработок платформ, а также бизнес-исследований и разработок. Разбивка задач показана на рисунке ниже.
Идеальные приложения для реализации воспроизведения трафика на различных этапах:
Проблемные моменты на этапе тестирования: сосредоточьтесь на основных сценариях и проверьте влияние каждого теста на основные сценарии при небольших затратах;
Проблемные точки на этапе регрессионного тестирования: полные сценарии с упором на всесторонний охват сценариев и проверкой влияния новых функций на исторические функции;
Возвращение предварительной версии: в настоящее время предварительная версия и рабочая версия находятся в одной библиотеке.,В будущем мы будем продвигать внедрение на основе предварительных версий.&производственная средапоток Воспроизведение,Сделайте разницу моделирования между средой записи и средой воспроизведения как можно более близкой.,Тем самым уменьшая шумовое воздействие на этапе воспроизведения;
В общей системе контроля качества Dewu воспроизведение трафика направлено на возврат к чистой прибыли в краткосрочной перспективе.
С момента запуска воспроизведения трафика он постепенно перешел от этапа исследования и испытания к этапу расширения сценариев применения в этой области.
Режим воспроизведения потока заказов
После периода исследований был разработан набор шаблонов, подходящих для итерации в этой области.
После того, как команда приступила к реализации специального проекта воспроизведения трафика, путем исследования 40% сервисов были выбраны для приоритетного доступа.
На предыдущем этапе много времени было потрачено на перебор тегов конфигурации интерфейса. Накопление вариантов использования было медленным, а доход не был пропорционален инвестициям. Поэтому стратегия была скорректирована и применен интеллектуальный анализ для повышения эффективности. быстро накапливать варианты использования и расширять количество вариантов использования и количество охватываемых интерфейсов. Подключено 45% бизнес-приложений и реализованы все слабые точки. В сочетании с оптимизацией на стороне платформы большинство проблем с адаптацией и использованием компонентов решено, а итерационный процесс приложения и механизм анализа индикаторов приложения в основном работают без сбоев.
2. Результаты доходов
Исходя из того, что количество заранее запланированных вариантов использования значительно увеличилось, а скорость выделения вариантов использования была значительно улучшена, воспроизведение трафика выявило больше дефектов в итеративных приложениях и планирует расширить приложения, к которым осуществляется доступ, и объем охватываемых интерфейсов.
С доступом приложений также расширяется количество накопленных вариантов использования и увеличивается количество обнаруженных проблем. В то же время также добавляется индикатор покрытия для измерения отношения кода, охватываемого вариантом использования воспроизведения трафика, к общему количеству строк кода. С акцентом на охват стратегия выборки платформы также была скорректирована, чтобы удалить все исторические варианты использования седиментации и седиментировать только трафик, зарегистрированный после реализации новой стратегии.
В классификации дефектов и их источниках нетрудно разобраться:
Первоначальные инвестиции могут быстро создать прибыльное приложение, которое может застрять (относительно небольшое количество итеративных изменений кода, лучшая иерархическая структура, меньше асинхронности, меньше операций записи) и достичь видимых эффектов использования.
Может ли воспроизведение трафика полностью заменить ручную регрессию и автоматизацию?
На данный момент ответ — нет. Прежде всего, процесс от установки в песочнице до настройки интерфейса и записи трафика занимает много времени для достижения широкого охвата сценариев использования, а некоторые крайние сценарии по-прежнему требуют ручного проектирования, во-вторых, воспроизведение записи трафика больше ориентировано на пост-возврат; регрессионная проверка исторической логики.
1. Неполное покрытие интерфейса. Итерация требует нового интерфейса, связанная с ним запись не настроена и не входит в диапазон записи воспроизведения трафика.
2. Полное покрытие кода невелико. Интерфейс настроен на покрытие, но по таким причинам, как малый коэффициент выборки и экстремальные сцены, сцены ветвей интерфейса не записываются до тех пор, пока они не будут покрыты.
3. Влияние возможностей отладки. Интерфейс закрыт, и благодаря добавлению новых подвызовов во время отладки неудачный вариант использования легко определить как изменение кода во время отладки.
4. Проблемы с платформой. Сравнение различий является ненормальным и показывает, что воспроизведение прошло успешно. Воспроизведение асинхронных потоков — трудная задача, которую необходимо преодолеть.
После записи трафика и его воспроизведения я обнаружил, что многие результаты воспроизведения не совпадают. После расследования и анализа причин сбоев некоторые сбои вызваны ошибками в коде, но большинство сбоев не обязательно являются ошибками в коде. К частым ошибкам в основном относятся:
Причин неудач много, а число действительно эффективных неудач очень невелико. В результате стоимость устранения каждой неисправности воспроизведения очень высока. Это создало огромные препятствия для развития бизнеса.
Информация, сообщаемая исходным репитером, недостаточно богата, и многие ситуации приходится проверять, просматривая логи. В настоящее время не существует общедоступного зрелого эталонного плана. Платформа также провела некоторые предварительные исследования, автоматически классифицируя сценарии сбоя воспроизведения и сообщая более подробную информацию о данных, чтобы предоставить рекомендации по устранению неполадок, которые помогут специалистам по устранению неполадок сосредоточиться на поиске проблем. В то же время платформа также автоматически определяет некоторые шумы, а также автоматически фильтрует и уменьшает шум во время воспроизведения.
В асинхронном сценарии, когда основной поток входа возвращается, не дожидаясь завершения выполнения подпотоков, текущая стратегия заключается в том, что пользователь может настроить игнорирование нескольких вызовов асинхронных подпотоков и сосредоточиться только на выполнении основного потока. . Хотя этот метод может повысить вероятность успешного воспроизведения этого сценария асинхронного потока, он теряет возможность возврата бизнес-логики асинхронного подпотока.
В приведенном выше случае приложение включило переключатель приоритета устранения неполадок и повышения эффективности и проигнорировало вызов асинхронного подпотока, что привело к ненормальному сравнению различий и свидетельствовало об успешном воспроизведении. Исключение возникло, когда этот интерфейс был выпущен для производства. Длина типа String была слишком длинной и была обнаружена попыткой, а скрытая точка была потеряна.
Запись и воспроизведение трафика, как новая вещь в области тестирования, с момента ее появления привлекли внимание многих коллег по тестированию, и некоторые компании на рынке также применили ее на практике. Наша практика записи и воспроизведения дорожного движения все еще находится в зачаточном состоянии, и решения некоторых проблем все еще изучаются.
Предварительная версия интерфейса только для чтения без имитации воспроизведения
Предварительная версия Dewu представляет собой базу данных и последующее приложение производственной среды China Unicom. Таким образом, воспроизведение предварительной версии без имитации, особенно воспроизведение интерфейса только для чтения без имитации, может быть выполнено на заключительном этапе. прежде чем пройти онлайн-тест. Самая сложная проблема, которую нужно решить, заключается в том, что текущий интерфейс только для чтения не может гарантировать, что последующие изменения не приведут к операциям записи. Открытие этой функции на текущем этапе приведет к дополнительному риску потери капитала.
Эту проблему можно решить путем ручной проверки перед каждым воспроизведением, но это также приводит к серьезным проблемам с эффективностью. Как эффективно гарантировать, что воспроизведение немакетированного трафика в предварительной версии/среде оттенков серого не вызовет риска потери капитала, является проблемой, которую стоит изучить и требует совместных усилий в области исследований, разработок и тестирования.
Вариант 1 — Одиночное воспроизведение (воспроизведение в квазиреальном времени)
Проблемы, возникшие при реализации Варианта 1:
1. Данные в центре конфигурации противоречивы и зашумлены.
2. Проблема своевременности: разница во времени составляет 10 секунд, и некоторые предприятия предъявляют относительно высокие требования к своевременности.
Вариант 2 — Двойное воспроизведение (воспроизведение в реальном времени)
Вариант 2 не только позволяет избежать проблем варианта 1, описанного выше, но также позволяет при последующем планировании создавать эффективные наборы вариантов использования на основе покрытия и вручную добавлять ненормальные варианты использования.
После периода эксплуатации мы увидели, что запись и воспроизведение некоторого трафика принесли пользу в бизнес-итерациях, и были обнаружены некоторые скрытые ошибки. Очевидным изменением воспроизведения трафика доступа является то, что оно может освободить тестирование от повторяющихся задач, таких как интенсивное регрессионное тестирование, сортировка и обслуживание вариантов использования, и сосредоточиться на разработке планов тестирования, обдумывании стратегий тестирования и практике самосовершенствования. мы можем улучшить наши возможности кодирования, чтобы помочь в устранении неполадок и повысить эффективность, а также расширить и углубить наши знания о бизнесе, чтобы в максимальной степени обеспечить качество и стабильность бизнес-системы.
В будущем мы надеемся создать в Dewu все более и более полную систему записи и воспроизведения дорожного движения путем непрерывной практики, что позволит повысить производительность и повысить ценность.