Я бы назвал это «нагрузочным тестированием через воспроизведение сессии», лично. Я не знаю ни одного простого всеобъемлющего термина для такого рода техники тестирования.
Базовая стратегия, которую я видел для такого нагрузочного тестирования, состоит в том, чтобы загружать файлы журналов из производственной системы и воспроизводить их в тестовой системе.
Вы можете использовать такие инструменты, как JMeter или Apache Bench для воспроизведения запросов из файлов журнала. Если вы хотите воспроизвести очень сложные взаимодействия клиент-сервер (с конкретными сведениями о синхронизации, основанными на исходном потоке журналов) в надежде на реальное использование внутренних возможностей вашего приложения (поиск условий гонки, ошибок, связанных с синхронизацией и т. Д.), Вы можете посмотрите на написание инструментов тестирования для конкретных приложений, которые моделируют клиентов в масштабе.
Вы не сможете просто перехватывать загрузку сетевого трафика и «воспроизводить» его с помощью любого протокола TCP или IP. Порядковые номера TCP не соответствуют исходному захваченному трафику и не будут работать. Захват IP-уровня будет проблематичным, потому что ваши симулированные клиенты должны будут отвечать за IP-адрес перехваченного отправителя. Лучше было бы захватывать трафик ближе к 7-му уровню и использовать его для воспроизведения сеансов, потому что в противном случае вы также пытаетесь написать симулятор TCP. (Я мог бы представить, что можно использовать что-то вроде tshark
сброса данных и синхронизации уровня 7 из потока TCP и воспроизведения этого, например.)
Простое воспроизведение сетевого трафика имитирует нагрузку, но не обязательно фиксирует дефекты. Ваш симулированный клиент должен будет получать ответы от тестового сервера и анализировать их на предмет корректности, если вы хотите выполнить нагрузочный тест любого теста, чтобы приложение отвечало правильно. Поскольку ваше приложение будет генерировать данные динамического ответа, маловероятно, что ваш симулированный клиент сможет просто сравнить ответ тестового сервера с зарегистрированным ответом рабочего сервера. Именно здесь вы собираетесь написать тестовый комплект, специфичный для вашего приложения и его результатов.