了解 Python 测试文件中的 Junos 快照管理员
Python 中的 Junos 快照管理员 (jsnapy) 测试文件定义了快照所包含内容的详细信息。测试文件(也称为测试用例)是从 jsnapy 配置文件内部引用的 YAML 格式的文件。配置文件作为 CLI 命令的 jsnapy
参数读取。一般来说,测试文件定义测试用例中包含的测试以及这些测试的特定定义。
了解测试文件的结构
测试文件只有两个部分:tests_include列表和详细信息部分。包含列表中命名的每个测试都有一个详细信息部分。测试文件以包含语句开头: tests_include:
。include 语句表示测试用例中包含的测试列表的开头。列表中的每个测试名称前面都有一个短划线 (-);例如, - test_name
.您可以根据需要为测试命名任何名称,但测试名称不能包含空格或特殊字符。有效的测试名称包括: check_interfaces_up
、 show_software_version
或 test_bgp_neighbors
。
如果测试文件中不存在tests_include列表,但在详细信息部分中定义了测试,则将运行测试文件中详述的所有测试。通过将测试名称从tests_include列表中删除,可以跳过测试文件中特定测试的运行。
详细信息部分以包含列表中的测试名称开头,后跟冒号;例如, check_interfaces_up:
.详细信息部分的目的是提供测试用例的所有测试标准,包括:
在设备上执行的 Junos OS CLI 或 RPC 命令(每个测试一个)。这些命令的输出构成了快照的基础。
可扩展标记路径语言 (XPath),用于标识 Junos OS 层次结构中运行测试的起始节点。
测试运算符,帮助分析命令的输出。
由于成功执行测试运算符而返回的信息消息。
由于测试操作员失败而返回的错误消息。
使用 get-config
RPC 命令时,可以使用语句 filter_xml:
筛选特定的配置信息。例如,该 filter_xml: configuration/system/login
语句会导致设备过滤掉除 Junos OS /system/login
层次结构中的配置元素之外的所有配置元素。此语句仅适用于特定的 RPC 命令 get-config
。有关更多信息,请参阅 示例:在 Python 测试文件中创建 Junos 快照管理员。
测试文件的元素
与与 jsnapy 一起使用的其他 YAML 文件一样,测试文件是使用键值对构建的。关键字和值用冒号 (:)) 分隔。
例如 rpc: get-config
.
表 1 显示了可在 jsnapy 测试文件中使用的密钥,并描述了每个密钥。
关键 字 |
描述 |
---|---|
|
此关键字表示 jsnapy 测试文件的开头和包含语句的开头。它后面是一个冒号(:)和一个回车符。后面的列表的每个元素都是测试用例的名称,前面有一个空格、一个短划线和另一个空格,并且必须单独位于一行上。例如: tests_include: - show_version - check_interface_state - return_bgp_neighbors |
|
此关键字用于指定 jsnapy 在设备上运行的 Junos OS 命令。它前面有一个空格、一个破折号 (-) 和另一个空格,后面紧跟一个冒号 (:)。例如:
|
|
此关键字用于指定 jsnapy 应在设备上运行的 Junos OS RPC 命令。它前面有一个空格、一个破折号 (-) 和另一个空格,后面紧跟一个冒号 (:)。例如:
|
|
此关键字用于格式化设备输出。可用选项包括: |
|
此关键字仅适用于 RPC 命令。如果在测试用例定义中使用该关键字,则会 使用 |
|
此关键字表示测试定义的开始。它前面有一个空格、一个破折号 (-) 和另一个空格,后面紧跟一个冒号 (:)。例如:
此关键字还指示 jsnapy 仅匹配 . |
|
此关键字表示测试定义的开始。它前面有一个空格、一个破折号 (-) 和另一个空格,后面紧跟一个冒号 (:)。例如:
此关键字还指示 jsnapy 继续匹配 .
注意:
测试定义可以使用或 |
|
此关键字表示 Junos OS 层次结构中要从中开始测试的路径。它前面有两个空格,后跟一个冒号 (:)。例如:
与此关键字一起使用的值是路径语法值。例如,
|
|
此关键字表示相对于正在迭代的节点集的 XPATH 表达式,该表达式指定将第一个快照数据项映射到第二个快照数据项的唯一数据元素。关键字后面紧跟冒号 (:)。可以在相同 |
|
此关键字表示测试定义的开头。后面跟一个冒号。仅当使用和 |
|
此关键字指定在成功完成测试时记录哪些信息(如果 jsnapy 日志记录级别设置为调试)。该信息可以使用从快照文件中提取节点值的 jinja2 格式模板。例如:
|
|
此关键字指定如果 jsnapy 日志记录级别设置为调试,则测试失败时将记录哪些信息。该信息可以使用从快照文件中提取节点值的 jinja2 格式模板。例如:
|
|
当与信息或错误消息部分中的 jinja2 格式变量一起使用时,此关键字会导致 jsnapy 在更改前快照中搜索命名变量。 |
|
当与 info-err 消息部分中的 jinja2 格式模板一起使用时,此关键字会导致 jsnapy 在更改后快照中搜索命名变量。 |