Основываясь на вашем описании, вы ищете систему, которая может автоматизировать тестирование сетевой ОС на реальном оборудовании, включая такие задачи, как загрузка программного обеспечения, сбор топологии, загрузка конфигурации, генерация трафика, предварительные/последующие команды тестирования и создание отчетов.
Потенциальные решения:
Хотя Jenkins в первую очередь известен разработкой программного обеспечения, его можно адаптировать для тестирования сетей с помощью правильных плагинов и пользовательских скриптов. Однако, учитывая конкретные требования тестирования сетей, другие инструменты могут быть более подходящими:
Платформы автоматизации сетей:
Ansible: Мощный инструмент управления конфигурацией, который может автоматизировать такие задачи, как развертывание программного обеспечения, создание топологии и управление конфигурацией.
SaltStack: Похожий на Ansible, SaltStack может использоваться для автоматизации инфраструктуры, включая управление сетевыми устройствами.
Puppet: Еще один инструмент управления конфигурацией, который может автоматизировать задачи, связанные с сетью.
Фреймворки для автоматизации тестирования:
Robot Framework: Универсальный фреймворк для автоматизации тестирования, который может быть расширен библиотеками для взаимодействия с сетевыми устройствами.
TestNG: Фреймворк для тестирования на основе Java, который может использоваться для тестирования сетей с помощью пользовательских тестовых случаев.
Специализированные инструменты для тестирования сетей:
IXIA's IxNetwork: Комплексный инструмент для тестирования сетей, который может автоматизировать различные сценарии тестирования, включая генерацию трафика, тестирование производительности и проверку протоколов.
Wireshark: Популярный анализатор сетевых протоколов, который может быть интегрирован в сценарии автоматизации для захвата и анализа пакетов.
Пользовательские решения: Если ни один из вышеперечисленных инструментов не соответствует вашим точным требованиям, вы можете рассмотреть возможность создания пользовательского решения с использованием языков сценариев, таких как Python, Bash или Perl, в сочетании с API или библиотеками для автоматизации сетей.
Ключевые соображения:
Интеграция с генераторами трафика: Убедитесь, что выбранная система может интегрироваться с вашими генераторами трафика (Ixia, T-Rex) для автоматизации генерации трафика и анализа результатов.
Управление сетевыми устройствами: Система должна уметь управлять сетевыми устройствами (роутеры, коммутаторы) для таких задач, как загрузка программного обеспечения, изменение конфигурации и мониторинг.
Отчетность и аналитика: Система должна генерировать подробные отчеты о тестировании и предоставлять аналитику для выявления проблем и тенденций.
Масштабируемость: Учитывайте масштабируемость решения, поскольку в будущем вам может потребоваться тестировать более крупные сети или более сложные сценарии.
Тщательно оценивая эти варианты и учитывая свои конкретные требования, вы можете выбрать наиболее подходящую систему CI/CD для автоматизации тестирования вашей сетевой ОС.