Logo

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

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 信息

相关项目

Project Cover
darts
Darts是一个用户友好且灵活的Python库,专注于时间序列的预测与异常检测。它提供了一系列从ARIMA到深度神经网络的多样化模型,通过统一的fit()和predict()接口简化操作,类似于scikit-learn。此外,Darts支持包括多变量和外部数据在内的复杂时间序列处理,并为大规模数据集提供高效解决方案。它还拥有全面的异常检测功能,允许进行深入的异常分析和评分。
Project Cover
Time-Series-Library
TSLib为深度学习研究者提供了一个专业开源时间序列分析库,涵盖广泛的应用领域,如长短期预测、数据填充、异常检测和分类。本库提供清晰的代码基础,支持时间序列模型的评估与开发,包括最新的模型评估和深度时间序列研究成果。该工具适合科研和开发人员使用,以推动时间序列分析的未来研究与实践。
Project Cover
neuralforecast
NeuralForecast 提供 30 多种先进的神经网络模型,提升时间序列预测的准确性和效率。支持外生变量和静态协变量,并具备自动超参数优化和可解释性方法。通过 sklearn 语法 `.fit` 和 `.predict` 实现快速训练和预测,包含 NBEATSx 和 NHITS 等最新实现,并与 Ray 和 Optuna 集成,适用于多种应用场景。
Project Cover
time-series-transformers-review
本项目专业整理了Transformers在时序数据建模中的资源,涵盖论文、代码和数据,全面总结其最新进展。内容持续更新,开放问题提交和拉取请求,覆盖时序预测、不规则时序建模、异常检测和分类等领域,适合学术研究及实际应用。
Project Cover
UniRepLKNet
UniRepLKNet项目提出了一个适用于图像、音频、视频、点云和时间序列的大核卷积网络统一架构。通过提供四个设计大核卷积网络的架构指南,显著提升了多模态数据的识别性能。特别是在全球温度和风速预测等挑战性的时间序列预测任务中,UniRepLKNet表现优异,超过了现有系统。这一项目不仅重振了卷积神经网络在传统领域的表现,还展示了其在新兴领域的广泛应用潜力。
Project Cover
Time-series-prediction
TFTS(TensorFlow Time Series)是一个易用的时间序列预测工具包,支持TensorFlow和Keras中的经典及前沿深度学习方法。适用于预测、分类及异常检测任务。提供适应工业、研究和竞赛所需的深度学习模型,配有详尽文档和教程,帮助用户快速入门。
Project Cover
machine-learning
本项目持续更新,介绍了数据科学和机器学习各个主题。内容涵盖深度学习、模型部署、运筹学和强化学习等,提供Jupyter Notebook格式教程,结合Python科学栈(如numpy、pandas)和开源库(如scikit-learn、TensorFlow、PyTorch)进行教学示范,平衡数学符号与实际应用。
Project Cover
Anomaly-Transformer
Anomaly-Transformer是一种时间序列异常检测模型,利用关联差异作为可区分标准,并结合Anomaly-Attention机制和极小极大策略提高检测效果。该模型在多个基准数据集上展现出优秀性能,为无监督时间序列异常检测领域提供了新的解决方案。
Project Cover
chronos-forecasting
Chronos是一款基于语言模型架构的预训练时间序列预测工具。它通过量化处理将时间序列转换为标记序列,并使用大规模的公开和合成数据进行训练。Chronos模型在零样本场景中表现优异,提供从预测到嵌入提取的完整解决方案。通过AutoGluon,用户可轻松进行模型集成和云端部署,提升预测性能和应用的灵活性。

最新项目

Project Cover
豆包MarsCode
豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。
Project Cover
AI写歌
Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。
Project Cover
商汤小浣熊
小浣熊家族Raccoon,您的AI智能助手,致力于通过先进的人工智能技术,为用户提供高效、便捷的智能服务。无论是日常咨询还是专业问题解答,小浣熊都能以快速、准确的响应满足您的需求,让您的生活更加智能便捷。
Project Cover
有言AI
有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。
Project Cover
Kimi
Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。
Project Cover
吐司
探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。
Project Cover
SubCat字幕猫
SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。
Project Cover
AIWritePaper论文写作
AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。
Project Cover
稿定AI
稿定设计 是一个多功能的在线设计和创意平台,提供广泛的设计工具和资源,以满足不同用户的需求。从专业的图形设计师到普通用户,无论是进行图片处理、智能抠图、H5页面制作还是视频剪辑,稿定设计都能提供简单、高效的解决方案。该平台以其用户友好的界面和强大的功能集合,帮助用户轻松实现创意设计。
投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号