SuperAPI AI 工具集

pyats-dynamic-test

测试与质量

查看项目

更新于 10-15 18:46

技能介绍

用途:在网络配置变更后做自动化通过/失败校验、需要多步断言的一致性检查、维护窗口前后的回归测试,以及跨多个接口、邻居或路由的数据驱动验证,输出带 PASSED/FAILED 结论的正式测试报告。

主要能力:通过 pyats_run_dynamic_test 工具接收一段完整的 Python aetest 脚本字符串并执行,脚本在沙箱环境中运行,超时 300 秒。aetest 脚本固定结构为:导入 logging 与 aetest、模块级 TEST_DATA 字典、CommonSetup(连接设备)、一个或多个 Testcase(含断言的测试方法)、CommonCleanup(断开连接)、if name == "main": aetest.main()。TEST_DATA 必须是模块级 Python 字典字面量,包含全部预期值,不能从文件、网络或环境变量加载,以保证测试确定性与自描述。可用 logger.info() 输出详细信息,用 self.failed() 或 assert 给出判定。资料示例覆盖接口状态、OSPF 邻居、BGP 路径和 ping 矩阵四类验证。

使用方式:调用命令形如 PYATS_TESTBED_PATH=$PYATS_TESTBED_PATH python3 $MCP_CALL "${PYATS_PYTHON:-python3} -u $PYATS_MCP_SCRIPT" pyats_run_dynamic_test '{"test_script":"<完整 Python 源码>"}',test_script 为整段源码的单个 JSON 字符串,换行编码为 \n,引号编码为 "。建议先用 pyats_run_show_command 采集现状,再据此填写 TEST_DATA。

限制:禁止导入 os、sys、subprocess、shutil、socket、pathlib、pickle、yaml、requests、urllib、http、ssl;禁止使用 import()、eval()、exec()、compile()、open()、json.loads()。脚本不能直接连接设备,所有验证数据须内联在 TEST_DATA 中。执行有 300 秒超时限制。其它收费、价格与平台细节暂未提供。