在此页面上
示例:在 Python 测试文件中创建 Junos 快照管理员
此示例演示如何在 Python (jsnapy) 测试文件中创建一些基本的 Junos 快照管理员。本主题中的示例有时会在一行中输入任何其他文本之前使用特定数量的空格。这些空格是正确设置 YAML 文件所必需的。
要求
服务器上安装了 Python 1.0 版中的 Junos 快照管理员。
概述
本主题介绍如何使用可用于创建测试文件的各种元素创建两个测试文件:
名为
test_sw_version.yml
的测试文件,仅捕获 Junos OS 软件发布版本名为
filter_config_info.yml
的测试文件,用于请求从 RPC 命令筛选get_config
的信息。
Jsnapy 测试文件包含创建或比较 Junos OS 设备运行时环境快照所需的详细命令、测试、层次结构位置和测试元素。您可以根据需要创建任意数量的测试文件,将它们存储在 jsnapy 服务器上的任何位置,并根据需要命名它们(空格和特殊字符除外)。jsnapy 测试文件有两个主要部分:tests_include标题下的命名测试列表和详细信息部分,tests_include部分下每个命名测试都有一个详细信息部分。
注释可以通过以井号 (#) 开头的任何位置插入到测试文件中。
捕获 Junos OS 软件发布版本
程序
分步过程
对于此示例,请使用文本编辑器创建名为 test_sw_version.yml
的新文件。在与要使用的配置文件相同的目录中或在 /etc/jsnapy/testfiles/
目录中创建文件。
创建“tests_include”部分。
tests_include:
设置测试名称。
- test_sw_version
启动测试详细信息部分。
test_sw_version:
设置要发送的命令。在这种情况下,它是 Junos OS 命令
show version
.- command: show version
指定测试是查找值的第一个实例还是查找值的所有实例。在本例中,我们只查找第一个实例。
- item:
指定要从中启动快照或搜索的 XPATH 位置。
xpath: '//software-information'
开始测试部分(如果有)。在这种情况下,将有一个测试部分。
tests:
指定将运行哪些测试。在这种情况下,我们将启用此测试文件来检查快照之间的 Junos OS 版本是否相同。
- all-same: junos-version
设置要显示的错误消息。即使测试失败,也会显示此消息。
err: "Test Failed!!! The versions are not the same. From the PRE snapshot, the version is: <{{pre['junos-version']}}>. From the POST snapshot, the version is <{{post['junos-version']}}>!! "
设置要显示的信息消息。如果测试成功,将显示此消息。
info: "Test Succeeded!! The Junos OS version is: <{{post['junos-version']}}>!!!"
结果
生成的测试文件可以使用命令 cat
显示在终端中。
user@jsnapy-server:~> cat test_sw_version.yml tests_include: - test_sw_version test_sw_version: - command: show version - item: xpath: '//software-information' tests: - all-same: junos-version err: "Test Failed!!! The versions are not the same. From the PRE snapshot, the version is: <{{pre['junos-version']}}>. From the POST snapshot, the version is <{{post['junos-version']}}>!! " info: "Test Succeeded!! The Junos OS version is: <{{post['junos-version']}}>!!!"
请求筛选的配置信息
程序
分步过程
此示例创建一个测试 文件,该文件使用 RPC 命令 get-config
检索设备配置。向 RPC 命令提供了一个参数,以便 jsnapy 过滤该设备配置信息,以便快照仅包含过滤后的信息,而不是整个配置。在此示例中,我们将测试文件配置为仅 host-name
返回信息。
创建“tests_include”部分。
tests_include:
设置测试名称。
- test_rpc_filtering
开始测试详细信息部分。
test_rpc_filterin:
设置要使用的 RPC 命令。
- rpc: get-config
提供参数关键字以告诉 jsnapy 参数遵循。
- kwargs:
输入参数名称和值。在本例中,我们将过滤主机名。
filter_xml: configuration/system/host-name
结果
生成的配置可以使用命令显示在 cat
终端中。
user@jsnapy-server:~> cat filter_config_info.yml tests_include: - test_rpc_filtering test_rpc_filtering: - rpc: get-config - kwargs: filter_xml: configuration/system/host-name