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)上进行设置。两个操作系统之间的安装说明的任何差异都会特别突出显示。

  1. 要求: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
    
  2. 将SD-WAN测试套件存储库从Git和CD克隆到存储库根文件夹。

    git clone https://github.com/Spirent/SDWAN-Functional-Test-Suite.git
    
    cd ~/SDWAN-Functional-Test-Suite
    
  3. 在存储库根文件夹中设置python虚拟环境。

    在文件夹testenv中创建虚拟环境

    python3 -m venv testenv
    

    激活虚拟环境

    . testenv/bin/activate
    

    将根文件夹添加到python路径

    export PYTHONPATH=~/SDWAN-Functional-Test-Suite/
    
  4. 安装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。

    sudo apt install python3-pip python3-dev python3-venv git
    
    0
  5. < > >

    测试用例库

    此表包括测试脚本列表及其功能的简要说明。

    <表><广告>测试用例名称 测试用例id测试目标 < /广告><正文>从L2到L4转向的路径选择sd wan.path_selection.001验证DUT是否可以使用传统的L2/L3/L4流量分类方法在WAN链路之间引导流量路径选择应用程序感知转向sd wan.path_selection.002通过使用应用程序感知的流量分类方法,验证DUT可以引导WAN链路之间的流量弹性链路中断本地无拥塞sd wan.resiliency_link.001如果在Internet链路的本地端检测到链路中断,则验证DUT可以将流量从Internet链路转向MPLS链路,反之亦然弹性链路中断远程无拥塞sd wan.resiliency_link.002如果在Internet链路的远程侧检测到链路中断,则验证DUT可以将流量从Internet链路转向MPLS链路,反之亦然弹性链接浏览数据包丢失sd wan.resiliency_link.003如果Internet链路上的丢包率超过阈值,则验证DUT可以将流量从Internet链路转向MPLS链路,反之亦然弹性链接浏览数据包延迟sd wan.resiliency_link.004如果Internet链路上的双向延迟(从DUT1到DUT2)超过阈值,则验证DUT可以将流量从Internet链路转向MPLS链路,反之亦然弹性链接浏览抖动sd wan.resiliency_link.005如果Internet链路上的抖动超过阈值,则验证DUT可以将流量从Internet链路转向MPLS链路,反之亦然弹性链接浏览订单 sd wan.resiliency_link.006如果Internet链路上的数据包无序率超过阈值,则验证DUT可以将流量从Internet链路转向MPLS链路,反之亦然弹性链接浏览复制 sd wan.resiliency_link.007如果Internet链路上的数据包重复率超过阈值,则验证DUT可以将流量从Internet链路转向MPLS链路,反之亦然

    测试配置

    在执行测试之前,请执行以下步骤。

    1. 确定要从上一节的表中执行的测试用例名称和ID。

    2. 提供了一个映射文件testpacks/sd wan/testbed_lab/testbed_map.py,该文件在步骤3中将各个测试用例id映射到物理测试床配置文件中的特定测试床部分。从映射文件中找到映射到测试用例ID的适当测试台部分。

    3. 一旦确定了映射到测试用例的物理测试台部分,您必须使用特定于您实验室的配置详细信息编辑该部分。可以在单个配置文件中找到该部分,其中包含所有测试床的配置。如果需要覆盖默认值,还会公开其他几个Spirent TestCenter配置参数。

    4. 对于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。

    5. < > >

      有关每个测试用例的其他详细信息,请参阅测试包规范文档。所有测试用例都在文档中的唯一测试用例ID下解释。

      测试执行

      1. 在执行测试之前,需要激活python 3虚拟环境并设置python路径。
      2. < > >

        注意:每个shell实例只需要一次此设置。

        如果已经在安装过程中完成了此操作,请继续执行步骤2。否则运行下面的命令。 ` ` . testenv/bin/激活

        sudo apt install python3-pip python3-dev python3-venv git
        
        1
        1. 从根文件夹运行测试。您可以使用robot命令运行测试,如下所示:

          sudo apt install python3-pip python3-dev python3-venv git
          
          2

          参数
          测试床配置:物理实验室配置
          ../testbed_map.py:此文件将测试用例映射到实验室配置文件中的特定测试床
          -t sd wan.path_selection.002:测试用例选择器
          -d testrun:日志/报告的输出目录
          testpacks/sd wan/:robot查找测试用例文件的文件夹路径

          请参阅测试结果部分以检查测试结果。

          有关robot命令的完整语法,请参阅《robot framework用户指南》,包括根据测试用例id或标记选择要执行的测试用例的模式匹配。

          支持-v validate:1参数在不运行测试的情况下验证测试床文件。

          sudo apt install python3-pip python3-dev python3-venv git
          
          3
        2. < > >

          测试结果

          输出文件是使用robot命令行选项配置的。

          在节中:测试执行-d testrun将结果目录指定为testrun

          测试执行将生成多个报告/日志,例如robot报告文件、测试脚本日志和spirent testcenter日志。

          1. robot报告文件:
            report.htmllog.htmloutput.xml文件通常生成。
            report.html包含HTML格式的测试执行结果概述。
            log.html包含以html格式执行的测试用例的详细信息。
            output.xml包含XML格式的测试执行结果。
            您可以使用任何浏览器打开结果。

            sudo apt install python3-pip python3-dev python3-venv git
            
            4
          2. 测试脚本日志:
            test.log.jsontestrun/sd wan.path\u selection.002下包含测试脚本执行日志。

          3. Spirent测试中心日志:
            testrun/sd wan.path\u selection.002下有spirent testcenter bll/il和配置日志。

          4. < > >

            文件夹结构和命名

            1. 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

            2. 测试脚本被组织到testpacks文件夹中。它们基于python。

              每个测试用例都有元数据,请参见exampletestpacks/sd wan/path\u selection\u application\u aware\u steering.yaml

              每个测试包都有一个规范来描述测试用例。请参阅测试包规范文档中的示例。

            3. testbed_templates文件夹用于逻辑testbed模板。请参见示例:testpacks/sd wan/testbed_templates/3stc_1dut_type01.yaml,它从物理实验室配置获取信息,并生成测试脚本使用的最终配置文件。

            4. testbed_lab文件夹用于物理配置和映射文件。请参见示例:testpacks/sd wan/testbed_lab/testbed_map.py,它定义了每个测试用例id到物理配置文件testpacks/sd wan/testbed_lab/configuration.yaml中特定测试床部分的映射。物理配置是由最终用户提供的单个文件,其中包含实验室设备的完整详细信息,以及它们如何连接到试验台。

            5. 脚本test_framework/script/check_stc_param.py用于获取spirent testcenter端口参数值(phy和speed)。在物理实验室配置中编辑端口"phy"和"speed"时,可以通过以下脚本找到它们的值: python脚本/check_stc_param.py-l<;实验室服务器IP>;-c<;机箱IP>;-s<;插槽号>;-p<;端口号>;

            6. < > >

              支架

              如果您在安装或测试执行过程中遇到任何问题,对新功能有一般性问题或反馈,请在我们的github存储库中打开一个问题。您也可以通过电子邮件联系开发团队testpack@spirent.com

              许可证

              此测试包在2.0版的apache许可证下分发,有关详细信息,请参见许可证和通知。

              欢迎加入QQ群-->: 979659372 Python中文网_新手群

              推荐PyPI第三方库


热门话题
java汽车类程序   java Tomcat类加载器不工作   java在使用新记录类时无法反序列化   java为什么我没有得到字符串格式的输出?   Jersey资源中的java初始化数据库   如何从文本行读取多个字符串值并将其存储到字符串变量(java)   java Gradle问题在STS中,对于Spring引导应用程序,Gradle任务窗口显示“无可用操作”   java未指定任何类   使用不同线程时,源代码运行的java顺序   使用JAAS从webapp1登录到webapp2   向任何java异常添加属性   加密技术PBewithSHA256和128位AESCBC创建java。安全RedHat 6.4上的NoSuchAlgorithmException   java Android FIrebase查询填充下面的FirebaseListAdapter 2节点   java从变量TextView填充ArrayList   java为什么词汇规则“VARDECL”与文本不匹配?   java检查对象列表是否有与该对象的给定属性匹配的节点   使用XMLSchema在配置解析代码中进行XML验证:最佳实践?(爪哇)