Spirent SD-WAN功能测试套件
spirent-sdwan-test-suite的Python项目详细描述
SD-WAN功能测试套件src="https://warehouse camo.cmh1.psfhosted.org/b97ca76cf5d8fd16c7bc471270e0bbe53df7aa1/687470733a2f2f696d672e736869656c64e6396f62616467652f4c6963656e73652d417061636865253230322e302d62c75652e737667" />
SD-WAN功能测试套件是一组面向自动化的测试功能,旨在提供一个依赖于功能丰富的Spirent产品的端到端SD-WAN解决方案。测试套件开发基于开源项目,包括pyat、genie和robot框架,允许用户使用该套件轻松配置和执行sd-wan测试功能。yaml文件中测试台拓扑和测试设备参数的声明性配置直观地将设备等测试台对象及其接口建模为python对象。这样就省去了昂贵的开发和设置时间,并能产生可靠且易于解释的结果。
目录
安装
请按照以下说明获取项目源代码的副本,并在本地计算机上启动和运行,以进行开发和测试。该测试套件基于python,设计工作在linux、macos和windows子系统linux上。
以下步骤特定于在运行ubuntu 18.04lts的ubuntu18.04lts或windows子系统linux(wsl)上进行设置。两个操作系统之间的安装说明的任何差异都会特别突出显示。
要求:Python3.6或更高版本必须安装在您的系统上。
在ubuntu上运行以下命令安装其他软件包:
sudo apt install python3-pip python3-dev python3-venv git
在wsl上,apt-get的更新以及满足gcc依赖性所需的附加包:
sudo apt-get update sudo apt install python3-pip python3-dev python3-venv lib32ncurses5-dev git
将SD-WAN测试套件存储库从Git和CD克隆到存储库根文件夹。
git clone https://github.com/Spirent/SDWAN-Functional-Test-Suite.git cd ~/SDWAN-Functional-Test-Suite
在存储库根文件夹中设置python虚拟环境。
在文件夹testenv中创建虚拟环境
python3 -m venv testenv
激活虚拟环境
. testenv/bin/activate
将根文件夹添加到python路径
export PYTHONPATH=~/SDWAN-Functional-Test-Suite/
安装spirent测试包框架、sd-wan测试套件和执行测试所需的其他依赖项。
安装PIP软件包所需的轮子
pip install wheel
安装spirent testpack框架源代码
pip install -t test_framework spirent-testpack-framework
安装Spirent SD-WAN测试套件
pip install -t testpacks spirent-sdwan-test-suite
安装其他必需的依赖项,如pyats、unicon、genie、jinja2、stcrestclient和robotframework。
0sudo apt install python3-pip python3-dev python3-venv git
< > >确定要从上一节的表中执行的测试用例名称和ID。
提供了一个映射文件
testpacks/sd wan/testbed_lab/testbed_map.py
,该文件在步骤3中将各个测试用例id映射到物理测试床配置文件中的特定测试床部分。从映射文件中找到映射到测试用例ID的适当测试台部分。一旦确定了映射到测试用例的物理测试台部分,您必须使用特定于您实验室的配置详细信息编辑该部分。可以在单个配置文件中找到该部分,其中包含所有测试床的配置。如果需要覆盖默认值,还会公开其他几个Spirent TestCenter配置参数。
对于SD-WAN脚本,测试脚本中没有DUT配置。在运行测试之前,必须手动配置DUT。模拟设备的网关地址与DUT接口IP地址相同。
示例:
< Buff行情>步骤1:此示例使用SD-WAN路径选择应用程序感知转向,该转向由其测试用例ID SD WAN.path选择.002标识。
< Buff行情>第2步:在testpacks/sd wan/testbed_lab/testbed_map.py文件中,您会发现对于测试用例id sd-wan.path_selection.002,使用的物理测试床信息是3stc_1dut_type01_testbed02。
< Buff行情>第3步:在以下文件testpacks/sd wan/testbed_lab/configuration.yaml中找到步骤2("3stc_1dut_type01_testbed02")中引用的物理测试台部分,并使用适合您实验室的值对其进行更新。请注意,它使用机箱1、机箱2、机箱3、ls_1。必须修改stc1、stc2、stc3、spirent_lab_server_1下的ipv4地址和cha下的插槽/端口号ssis_1、chassis_2和chassis_3。
< Buff行情>第4步:检查3stc_1dut_type01_testbed02下模拟_设备的网关地址,该地址应与dut上的接口ip地址相同。如果它们不同,请修改网关或更改DUT接口IP。
< > >- 在执行测试之前,需要激活python 3虚拟环境并设置python路径。 < > >
从根文件夹运行测试。您可以使用robot命令运行测试,如下所示:
2sudo apt install python3-pip python3-dev python3-venv git
参数
测试床配置
:物理实验室配置../testbed_map.py
:此文件将测试用例映射到实验室配置文件中的特定测试床-t sd wan.path_selection.002
:测试用例选择器-d testrun
:日志/报告的输出目录testpacks/sd wan/
:robot查找测试用例文件的文件夹路径请参阅测试结果部分以检查测试结果。
有关robot命令的完整语法,请参阅《robot framework用户指南》,包括根据测试用例id或标记选择要执行的测试用例的模式匹配。
支持-v validate:1参数在不运行测试的情况下验证测试床文件。
3sudo apt install python3-pip python3-dev python3-venv git
< > >robot报告文件:
report.html
,log.html
和output.xml
文件通常生成。report.html
包含HTML格式的测试执行结果概述。log.html
包含以html格式执行的测试用例的详细信息。output.xml
包含XML格式的测试执行结果。
您可以使用任何浏览器打开结果。
4sudo apt install python3-pip python3-dev python3-venv git
测试脚本日志:
test.log.json
在testrun/sd wan.path\u selection.002下包含测试脚本执行日志。
Spirent测试中心日志:
在testrun/sd wan.path\u selection.002下有spirent testcenter bll/il和配置日志。
< > >robot文件被组织到testpacks文件夹中,例如:
testpacks/sd wan
机器人自动化框架是测试运行器。测试用例是在伴随python测试脚本的robot文件中定义的。这些robot文件,例如
testpacks/sd wan/core.robot
是robot框架的包装器。它们在python脚本中无缝地调用测试函数。一组相关的测试用例可以在一个.robot
脚本中定义。每个测试用例都有一个唯一的、不可变的标识符。这将在元数据文件和robot文件中标识测试用例。测试用例ID的格式为<;testpack>;<;area>;"35;,它是唯一的测试包名称以及与测试包相关的3位测试用例号。对于EXA例如,
sd wan.path\u selection.002
测试脚本被组织到testpacks文件夹中。它们基于python。
每个测试用例都有元数据,请参见example
testpacks/sd wan/path\u selection\u application\u aware\u steering.yaml
每个测试包都有一个规范来描述测试用例。请参阅测试包规范文档中的示例。
testbed_templates文件夹用于逻辑testbed模板。请参见示例:
testpacks/sd wan/testbed_templates/3stc_1dut_type01.yaml
,它从物理实验室配置获取信息,并生成测试脚本使用的最终配置文件。testbed_lab文件夹用于物理配置和映射文件。请参见示例:
testpacks/sd wan/testbed_lab/testbed_map.py
,它定义了每个测试用例id到物理配置文件testpacks/sd wan/testbed_lab/configuration.yaml
中特定测试床部分的映射。物理配置是由最终用户提供的单个文件,其中包含实验室设备的完整详细信息,以及它们如何连接到试验台。脚本test_framework/script/check_stc_param.py用于获取spirent testcenter端口参数值(phy和speed)。在物理实验室配置中编辑端口"phy"和"speed"时,可以通过以下脚本找到它们的值:
python脚本/check_stc_param.py-l<;实验室服务器IP>;-c<;机箱IP>;-s<;插槽号>;-p<;端口号>;
< > >
测试用例库
此表包括测试脚本列表及其功能的简要说明。
<表><广告>测试配置
在执行测试之前,请执行以下步骤。
有关每个测试用例的其他详细信息,请参阅测试包规范文档。所有测试用例都在文档中的唯一测试用例ID下解释。
测试执行
注意:每个shell实例只需要一次此设置。
如果已经在安装过程中完成了此操作,请继续执行步骤2。否则运行下面的命令。 ` ` . testenv/bin/激活
sudo apt install python3-pip python3-dev python3-venv git
1
测试结果
输出文件是使用robot命令行选项配置的。
在节中:测试执行,-d testrun
将结果目录指定为testrun
测试执行将生成多个报告/日志,例如robot报告文件、测试脚本日志和spirent testcenter日志。
文件夹结构和命名
支架
如果您在安装或测试执行过程中遇到任何问题,对新功能有一般性问题或反馈,请在我们的github存储库中打开一个问题。您也可以通过电子邮件联系开发团队testpack@spirent.com
许可证
此测试包在2.0版的apache许可证下分发,有关详细信息,请参见许可证和通知。