Оказывается у VMware есть утилита TENS, что расшифровывается как Traffic Emulator for Network Service. Это еще один эмулятор сетевой нагрузки от VMware, который, в отличие от аналогов, сфокусирован на паттернах нагрузки, а не только на генерации объема и интенсивности сетевого потока. В основном, подобные средства предназначены для того, чтобы выяснить максимальные параметры сетевой нагрузки, которые могут выдержать те или иные компоненты. Кроме того, при генерации нагрузки эти средства, как правило, работают с одним приложением, когда речь идет о задании паттернов.
VMware же решила сделать утилиту для симуляции паттернов нагрузки для нескольких приложений, чтобы изучать их поведение в условиях, приближенных к реальным. Проект TENS распространяется как Open Source и доступен в репозитории на GitHub.
Продукт состоит из двух компонентов:
Traffic Engine Controller (TEC) - это мозг всей системы, который управляет распределенными воркерами (их может быть сколько угодно) и предоставляет доступ сторонним системам через API.
Traffic Engines Datapath (TE-DP) - компоненты непосредственно эмулирующие трафик нагрузки в соответствии с реальными паттернами.
TENS может эмулировать несколько браузерных сессий, клиентов, соединений и запросов на уровнях L4 и L7. Это позволяет заполнить разрыв между тестовым окружением, предпроизводственной средой, которую надо хорошо оттестировать, и производственным окружением, где приложения должны выдерживать требования к нагрузке по TCP/HTTP/UDP. Также TENS выводит отчет о метриках и ошибках для компонентов тестируемой системы.
Основные возможности VMware Traffic Emulator for Network Service:
Функции для валидации и отчетности серверов балансировки нагрузки и серверов приложений.
Генерация трафика от нескольких пользователей, нескольких сессий одного пользователя и нескольких соединений/запросов в рамках одной сессии - все это для нескольких вычислительных узлов.
Комплексные метрики, выявление аномалий и мониторинг в реальном времени с одного узла с возможностью сообщения об ошибках как на уровне L4 (TCP/UDP), так и на L7 (HTTP/HTTPS).
Возможность генерации L7-траффика с разных исходных IP и пространств имен, с внедренными куками, хэдерами и параметрами запросов в измерениях RPS, TPS, TPUT и CPS.
Возможность запуска в нескольких процессинговых узлах, которые контролируются единой точкой доступа через API.
Поддержка трафика http/1, http/1.1 и http/2 на уровне L7.
Поддержка SSL версий SSLv2, SSLv3, TLSv1, TLSv1.0, TLSv1.1, TLSv1.2 и TLSv1.3 на уровне L7.
Поддержка взаимной аутентификации сервер-клиент за счет проверки сертификатов на уровне L7.
Возможность эмуляции аплоадов и загрузок больших UDP-датаграмм с несколькими одновременными подключениями на уровне L4.
Утилита TENS упакована для использования в контейнеризованных системах - как в облачных, так и онпремизных.
Возможность управлять утилитой через REST API для автоматизации операций и интеграции в общую инфраструктуру рабочих процессов тестирования.
Поддержка SSL session reuse и persistence validation, что позволяет более безопасно организовывать процесс тестирования.