Ответ
Да, есть опыт использования SpyTest — это Python-фреймворк с открытым исходным кодом, предназначенный для автоматизации тестирования сетевого оборудования (маршрутизаторы, коммутаторы).
Ключевые особенности и опыт работы:
- Интеграция с pytest: SpyTest построен поверх pytest, что позволяет использовать все его фикстур, параметризацию и систему плагинов.
- Мультивендорная поддержка: работа с устройствами через различные интерфейсы: CLI (SSH/Telnet), REST/gRPC API, GNMI.
- Параллельное выполнение: поддержка параллельного запуска тестов на стойке устройств для ускорения прогона.
- Генерация отчетов: детальные отчеты в форматах HTML, XML (JUnit-совместимый).
- Управление окружением: декларативное описание топологии и конфигурации устройств в YAML-файлах.
Пример теста для проверки состояния BGP сессии:
from spytest import st
def test_verify_bgp_neighbor_status():
"""
Проверяет, что BGP сессия с соседом находится в состоянии Established.
"""
neighbor_ip = "192.168.1.1"
# Выполнение команды на устройстве (DUT - Device Under Test)
output = st.exec_command("show bgp neighbors {} summary".format(neighbor_ip))
# Верификация результата
st.log("Вывод команды: {}".format(output))
if "Established" not in output:
st.error("BGP сессия с {} не установлена".format(neighbor_ip))
return False
st.log("BGP сессия с {} установлена успешно".format(neighbor_ip))
return True
Типовые сценарии тестирования: проверка маршрутизации (BGP, OSPF), ACL (списков контроля доступа), QoS, производительности интерфейсов.