PyATS: 强大的网络测试和自动化解决方案

RayRay
时间序列异常检测OATS机器学习开源项目Github

PyATS 简介

PyATS(Python Automated Test System)是由思科公司开发的一套强大的网络测试和自动化解决方案。它最初是为思科内部工程师使用而开发的,现已成为思科测试自动化解决方案的核心组件。PyATS 不仅被思科内部广泛使用,每月运行数百万次 CI/CD、健全性、回归、规模和高可用性测试,还受到全球数千名网络工程师和开发人员的青睐。

PyATS 架构图

PyATS 的设计理念是像乐高积木一样,由可扩展的层构建而成。整个解决方案主要包含以下几个部分:

  1. 基础平台 - 原始的 PyATS 框架
  2. 标准开源、平台/供应商无关的库系统(Genie)
  3. 用于管理测试套件、测试台、测试结果及其见解的 Web 仪表板(XPRESSO)
  4. 以库、扩展、插件和 API 形式存在的多个绑定

这种模块化的架构使用户能够在基础设施堆栈之上构建自己的业务逻辑和解决方案。

PyATS 的优势

作为一个专门的网络测试框架,PyATS 具有以下几个突出的优势:

  1. 多功能性: PyATS 可用于执行健全性、特性、解决方案、系统和规模测试,适用于从路由器/交换机到接入点、防火墙和有线 CPE 等多种产品。

  2. 可扩展性: PyATS 允许开发人员从小型、简单和线性的测试用例开始,然后逐步扩展到大型、复杂和异步的测试套件。

  3. 平台无关性: PyATS 的设计理念是平台无关的。所有操作系统/平台和管理协议支持都是通过插件、库实现和扩展来定义和注入的。

  4. 丰富的库支持: PyATS 内置了支持 Cisco IOS、IOSXE、IOSXR、NXOS、ASA 等多种平台的库,并支持通过 CLI、NETCONF 或 RESTCONF 进行设备连接。

  5. 数据驱动: PyATS 专注于数据驱动和可重用测试,非常适合敏捷和快速开发迭代。

  6. 开源生态: 作为开源项目,PyATS 拥有活跃的社区支持,用户可以方便地获取资源和帮助。

PyATS 的核心组件

1. PyATS 基础框架

PyATS 基础平台框架是整个解决方案的核心,它专门用于数据驱动和可重用测试。这个强大的、高度可插拔的 Python 框架旨在使开发人员能够从小型、简单和线性的测试用例开始,然后扩展到大型、复杂和异步的测试套件。

2. Genie 库系统

Genie 是 PyATS 的标准网络设备库,它重新定义了网络工程师执行测试和脚本编写的方式。Genie 提供了网络测试自动化所需的所有组件,使网络工程师和 NetDevOps 从第一天起就能够使用 Genie 现成的、全面的和模型驱动的库高效工作。

Genie 在 PyATS 的基础上进行了扩展,提供了以下功能:

  • 设备连接、解析器、API
  • 平台无关的 Python 对象模型,用于 OSPF、BGP 等功能
  • 可重用测试用例池
  • YAML 驱动的测试运行器引擎

3. XPRESSO Web UI 仪表板

XPRESSO 是围绕 PyATS 构建的标准 UI 仪表板,具有以下特点:

  • 测试套件和测试环境管理
  • 测试台和测试资源管理
  • 测试执行:按需运行、批量运行、计划运行,支持 Jenkins 和基于 Docker 的执行后端
  • 测试运行时的实时视图
  • 结果归档、显示、比较、分析等功能

XPRESSO 可以灵活部署:可以在实验室中作为测试中心部署,集成到 CICD 管道中;也可以在笔记本电脑上部署,作为便携式测试系统使用。

PyATS 的安装和使用

安装 PyATS

安装 PyATS 需要 Python 3.5+ 版本。推荐使用虚拟环境进行安装:

# 创建虚拟环境 python3 -m venv pyATS_Test # 激活虚拟环境 source pyATS_Tests/bin/activate # 安装 PyATS pip3 install "pyats[full]==23.9"

使用 PyATS

以下是一个简单的 PyATS 使用示例,演示如何连接设备并获取接口信息:

from pyats.topology import loader # 加载测试台配置 testbed = loader.load('./testbed.yaml') # 获取设备对象 device = testbed.devices["iosxr1"] # 连接设备 device.connect() # 执行命令并获取输出 output = device.execute('show ip interface brief') # 打印输出 print(output) # 断开连接 device.disconnect()

这个示例展示了 PyATS 的基本使用流程:加载测试台配置、连接设备、执行命令、获取输出、断开连接。

PyATS 在 NetDevOps 中的应用

PyATS 在 NetDevOps 中扮演着重要角色,主要体现在以下几个方面:

  1. 网络健康检查自动化: 使用 PyATS 可以轻松实现定期的网络设备健康检查,及时发现潜在问题。

  2. 网络故障排除和调试: PyATS 提供了强大的解析和比较功能,可以快速定位网络配置或状态变化,加速故障排除过程。

  3. 网络测试自动化: 通过 PyATS,可以构建全面的网络测试套件,覆盖从单个设备功能到复杂网络场景的各种测试需求。

  4. 配置管理和合规性检查: PyATS 可以用于自动化配置管理流程,确保网络设备配置符合预定义的标准和最佳实践。

  5. 网络变更验证: 在进行网络变更时,可以使用 PyATS 快速验证变更的影响,确保网络功能正常。

结语

PyATS 作为一个强大的网络测试和自动化工具,为网络工程师提供了前所未有的效率和能力。它不仅简化了复杂的网络测试和验证流程,还为 NetDevOps 实践提供了坚实的基础。随着网络复杂性的不断增加,PyATS 将继续发挥重要作用,帮助工程师更好地管理和优化网络基础设施。

无论您是网络工程师、开发人员还是 DevOps 从业者,掌握 PyATS 都将为您的职业发展带来显著优势。我们鼓励读者深入探索 PyATS 的更多功能,将其整合到日常工作流程中,以提高网络运维效率和质量。

了解更多 PyATS 信息

编辑推荐精选

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

Trae

Trae

字节跳动发布的AI编程神器IDE

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

Hunyuan3D-2

Hunyuan3D-2

高分辨率纹理 3D 资产生成

Hunyuan3D-2 是腾讯开发的用于 3D 资产生成的强大工具,支持从文本描述、单张图片或多视角图片生成 3D 模型,具备快速形状生成能力,可生成带纹理的高质量 3D 模型,适用于多个领域,为 3D 创作提供了高效解决方案。

3FS

3FS

一个具备存储、管理和客户端操作等多种功能的分布式文件系统相关项目。

3FS 是一个功能强大的分布式文件系统项目,涵盖了存储引擎、元数据管理、客户端工具等多个模块。它支持多种文件操作,如创建文件和目录、设置布局等,同时具备高效的事件循环、节点选择和协程池管理等特性。适用于需要大规模数据存储和管理的场景,能够提高系统的性能和可靠性,是分布式存储领域的优质解决方案。

下拉加载更多