Студент с Планеты Знаний задал такой технический вопрос:
Сценарий спроса: онлайн-бизнес, доступный только для чтения, ежедневное пиковое количество запросов в секунду: 30 тыс.+.
Предварительные требования: бизнес-модель, модель трафика и модель данных были оценены.
Требования к испытанию под давлением: испытание под давлением в режиме онлайн, минимальное время выполнения испытания под давлением обычно составляет не менее 10 минут.
Возникшие проблемы: объем тестовых данных, полученных в результате онлайн-записи трафика, слишком велик и превышает 30 ГБ. Как их хранить?
Главный вопрос: как генерировать большие объемы тестовых данных, сохраняя при этом баланс между эффективностью и стоимостью создания данных?
Расширенный вопрос: если это платформа стресс-тестирования собственной разработки, как поддержать практику применения больших объемов данных в проектах?
Эта проблема относительно сложна. К основным факторам сложности относятся высокая степень параллелизма, онлайн-среда, большой объем данных, эффективность и стоимость.
Пользуясь возможностью ответить на этот вопрос, поговорим о нескольких методах генерации тестовых данных.
1. Генерация вручную: напишите операторы SQL для записи данных в базу данных.
В качестве примера возьмем бизнес электронной коммерции. Чтобы смоделировать размещение пользователем заказа, товар должен быть на складе. Вы можете написать оператор SQL в базе данных, чтобы вставить номер SKU и данные о запасах продукта, а затем использовать его. при выполнении тестового примера.
Этот метод простой и грубый,Подходит для сценариев функционального тестирования.,ноНедостатком является то, что это легко приводит к загрязнению данных в тестовой среде и очень неэффективно.。Как только объем данных, необходимых для тестирования, превысит определенный уровень,Тогда эффективность создания тестовых данных вручную будет значительно снижена.
2. Генерация пакета: генерируется путем вызова интерфейса бизнес-логики или задачи пакетной обработки.
На этапе интеграционного тестирования (тестирование интерфейса),Или этап регрессионного тестирования (автоматическое тестирование),Необходимо выполнить большое количество тестовых случаев.。В это времяСоздание тестовых данных вручную очень неэффективно, и сгенерированные данные, скорее всего, будут несовместимы с бизнес-логикой.。
В настоящее время вы можете создавать файлы тестовых данных в пакетном режиме, вызывая интерфейс бизнес-логики или задачи пакетной обработки, а затем напрямую ссылаться на них при выполнении тестовых примеров.
Конечно, этот метод подходит для сценариев функционального и интерфейсного тестирования. Как только он включает в себя выполнение сотен или тысяч тестовых случаев или сценариев сквозного тестирования, недостатки этого метода будут отражены.
в частностиДля крупномасштабного автоматизированного тестирования,Помимо рассмотрения объема данных и прозрачной передачи данных по деловым каналам,,Нам также необходимо учитывать различные факторы, такие как идемпотентность и уникальность данных.。
3. Десенсибилизация и экспорт данных в режиме онлайн: десенсибилизация данных в базе данных производственной среды, а затем экспортирование их для использования.
Этот метод чаще использовался при полноканальном стресс-тестировании производства и автоматизированных онлайн-проверках бизнеса шесть или семь лет назад.,позжеПо мере изменения проверок безопасности и политики контроля рисков,Этот метод является дорогостоящим, трудоемким и рискованным.,Постепенно заменяются другими, более совершенными способами.
конечно,в командеКогда строительство основных технических объектов недостаточно развито, если вы хотите провести онлайн-тестирование производительности среды или автоматизированные онлайн-инспекции бизнеса, этот метод является единственным способом развития технологий.。
ТакДесенсибилизация означает, что группа безопасности дает заключение путем просмотра и проверки таблиц и полей базы данных, участвующих в экспортированных данных.(Что можно экспортировать,Что нельзя; что необходимо десенсибилизировать,Какие не нужны).
Так называемые конфиденциальные данные,т. е. настоящее имя пользователя、номер телефона、Адрес доставки、Номер банковской карты и другая информация。Распространенный подход заключается в создании правил с помощью инструментов и замене конфиденциальных данных данными, доступными для тестирования, которые соответствуют правилам и бизнес-логике при экспорте.(нравитьсяномер телефона,Замените на 11100000001).
Сказав это,Преимущества онлайн-экспорта десенсибилизированных данных по-прежнему очевидны.,Может генерировать большие объемы тестовых данных, соответствующих бизнес-правилам.。ноНедостатком является то, что это требует много времени (аудит безопасности) и затрат (затраты на рабочую силу, затраты на хранение данных).。
4. Запись и воспроизведение онлайн-трафика. Используйте инструменты для записи реальных данных запросов пользователей в онлайн-среде и сохранения их для использования.
Существует множество сценариев применения для записи и воспроизведения трафика. Он имеет широкие перспективы применения в тестировании производительности, регрессионном тестировании, автоматическом тестировании и быстром устранении онлайн-проблем. Он может помочь техническим группам решать проблемы обеспечения стабильности, а также процессы исследований и разработок в сложных бизнес-сценариях. Проблемы с системной архитектурой.
Однако когда в команде внедряется, казалось бы, идеальное техническое решение, она сталкивается со многими проблемами, главным образом следующими:
Вышеупомянутые три пункта представляют собой в основном технические проблемы. В реальной работе причиной сложности реализации часто является не сама технология, а соотношение затрат и результатов.
первый,Запись и воспроизведение трафика сами по себе предъявляют высокие требования к основным техническим возможностям команды.,За этим стоят высокие первоначальные инвестиционные затраты и временные затраты.
Во-вторых,Записанные данные необходимо сохранить, десенсибилизировать и обработать.,Он также должен соответствовать бизнес-связям и сценариям.,Этот процесс могут выполнить инженеры только вручную.,И это не то, что можно решить за короткое время.,Это опять же часть стоимости.
снова,Технология от исследования до полной реализации,Необходимость инвестировать в затраты проб и ошибок,Для координации также требуются время и человеческие ресурсы.。В контексте снижения затрат и повышения эффективности,Компаниям сложно инвестировать огромные затраты в направление, которое не приносит очевидных прямых выгод в краткосрочной перспективе.
наконец,Самая критическая точка:Техническая командаKPI переносятся сверху вниз.,Чем совершеннее и сложнее технология,Чем выше временные и трудовые затраты, необходимые для внедрения,KPI могут заставить лидеров принимать недальновидные решения,Это не имеет ничего общего с верой и признанием технологий.,Речь идет всего лишь о личном выживании на рабочем месте.
Ответьте на вопрос, заданный одноклассником.
первый,Из описания проблемы,Для проведения онлайн-стресс-теста обычно требуются десятки миллионов данных. Среди четырех методов генерации тестовых данных, упомянутых выше,,Ей больше подходят второй и третий способы генерации данных.,Прямо сейчас:Используйте онлайн-данные для получения основных данных по прокладке Десенсибилизация Экспорт,Параметризованные данные теста генерируются посредством пакетного запуска для создания файлов данных.。
Во-вторых, сохраняются большие объемы данных, и также необходимо учитывать фактор задержки чтения тестовых данных во время стресс-тестирования. Учитывая баланс между эффективностью и стоимостью, есть два решения:
Наконец, давайте ответим на расширенный вопрос: как платформа стресс-тестирования собственной разработки поддерживает практику применения больших объемов данных в проектах?
На самом деле за этой проблемой стоят две проблемы: генерация данных и ссылка на хранилище. Выше было представлено несколько методов генерации данных. Здесь мы поговорим о хранении и использовании тестовых данных отдельно. Существует два метода хранения и ссылки на тестовые данные: