基于面向对象的自动化测试方法及系统、和自动化平台的制作方法
【技术领域】
[0001] 本发明属于软件测试技术领域,涉及一种测试方法及系统,特别是涉及一种基于 面向对象的自动化测试方法及系统、和自动化平台。
【背景技术】
[0002] 常规的手工网络设备测试是通过在设备上输入cli命令来进行测试。为此我们引 入了自动化平台来减轻测试人员的重复性工作。
[0003] 目前的自动化测试脚本是通过下发指定命令或收发指定协议包来进行测试的。但 是不同设备的命令行格式有时会不同,导致为测试同一种协议,需要修改脚本才能正常进 行功能测试。这大大的降低了自动化测试的效率。
[0004] 而现有技术中自动化测试的方法具有以下几个缺点:
[0005] 第一、不同设备的命令行格式有时会不同,导致为测试同一种协议,需要修改脚本 才能正常进行功能测试。
[0006] 第二、支撑库构建的命令格式固定,参数比较多。测试功能需要测试人员编写较多 代码,支撑库接口封装的功能较底层。
[0007] 因此,如何提供一种基于面向对象的自动化测试方法及系统、和自动化平台,以解 决现有技术中的自动化平台对待测设备中配置的网络协议进行测试时,不同待测设备的命 令行格式不通,导致测试同一种网络协议时就需要修改测试脚本,出现了降低自动化测试 效率的现象,且支撑库中构建的命令格式固定,参数比较多,测试功能代码复杂,但是实现 功能却较底层等种种缺陷,实已成为本领域从业者亟待解决的技术问题
【发明内容】
[0008] 鉴于以上所述现有技术的缺点,本发明的目的在于提供一种基于面向对象的自动 化测试方法及系统、和自动化平台,用于解决现有技术中自动化平台对待测设备中配置的 网络协议进行测试时,不同待测设备的命令行格式不通,导致测试同一种网络协议时就需 要修改测试脚本,出现了降低自动化测试效率的现象,且支撑库中构建的命令格式固定,参 数比较多,测试功能代码复杂,但是实现功能却较底层的问题。
[0009] 为实现上述目的及其他相关目的,本发明一方面提供一种基于面向对象的自动化 测试方法,所述基于面向对象的自动化测试方法包括以下步骤:步骤一,创建一用于测试待 测设备配置的网络协议的测试脚本,并令所述测试脚本引入用于提供所述测试脚本接口的 数据包;步骤二,选取一待测设备以选定该待测设备上配置的网络协议为测试对象;所述 网络协议包括多个需配置属性参数;步骤三,利用预存的属性参数设置操作和获取已设置 属性参数操作处理作为测试对象的网络协议;步骤四,调用预置测试方式测试作为测试对 象的网络协议的多个功能测试点;步骤五,为作为测试对象的网络协议指定默认命令行配 置文件路径。
[0010] 可选地,所述基于面向对象的自动化测试方法还包括判断作为测试对象的网络协 议是否发生变化,若是,则重新指定默认命令行配置文件路径,若否,则结束进程。
[0011] 可选地,重新指定默认命令行配置文件路径的步骤为利用预制修改配置路径方式 修改所述步骤五中指定的默认命令行配置文件路径使之与变化的网络协议相匹配。
[0012] 可选地,所述步骤四中预置测试方式包括创建不同的作为测试对象的网络协议报 文、向所述待测设备循环发送作为测试对象的网络协议报文、捕获符合条件的作为测试对 象的网络协议报文、和/或解析过滤捕获的作为测试对象的网络协议报文。
[0013] 可选地,所述步骤一还包括为所述测试脚本引入一面向对象的工具命令语言包以 使用其中的测试脚本接口。
[0014] 可选地,所述步骤三还包括初始化作为测试对象的网络协议需配置属性参数。
[0015] 本发明另一方面还提供一种基于面向对象的自动化测试系统,所述基于面向对象 的自动化测试系统包括:创建模块,用于创建一用于测试待测设备配置的网络协议的测试 脚本,并令所述测试脚本引入用于提供所述测试脚本接口的数据包;选取模块,与所述创建 模块连接,用于选取一待测设备以选定该待测设备上配置的网络协议为测试对象;所述网 络协议包括多个需配置属性参数;第一操作模块,与所述选取模块连接,用于利用预存的属 性参数设置操作和获取已设置属性参数操作处理作为测试对象的网络协议;第二操作模 块,与所述选取模块和第一操作模块连接,用于调用预置测试方式测试作为测试对象的网 络协议的多个功能测试点;路径指定模块,与所述第二操作模块连接,用于为作为测试对象 的网络协议指定默认命令行配置文件路径。
[0016] 可选地,所述基于面向对象的自动化测试系统还包括:判断模块,与所述路径指定 模块连接,用于判断作为测试对象的网络协议是否发生变化,若是,则重新调用所述路径指 定模块重新指定默认命令行配置文件路径,若否,则调用用于终止所述基于面向对象的自 动化测试系统运行的终止模块。
[0017] 可选地,所述创建模块还用于为所述测试脚本引入一面向对象的工具命令语言包 以使用其中的测试脚本接口;所述第一操作模块还用于初始化作为测试对象的网络协议需 配置属性参数。
[0018] 本发明又一方面还提供一种自动化平台,所述自动化平台与一待测设备连接,所 述自动化平台包括:如权利要求7-9中任一所述的基于面向对象的自动化测试系统;及交 互单元,用于与所述基于面向对象的自动化测试系统连接的,用于提供用户通过所述自动 化平台与所述待测设备交互下发的命令行的命令行界面
[0019] 如上所述,本发明的基于面向对象的自动化测试方法及系统、和自动化平台,具有 以下有益效果:
[0020] 本发明基于面向对象的自动化测试方法及系统、和自动化平台引入了面向对象的 思想,将网络协议作为一个对象,将网络协议的相关参数作为对象的属性,将网络协议的 功能作为对象的方法。提高了接口的封装级别,提高了接口的易用性和脚本的可读性。所 述基于面向对象的自动化测试方法的接口调用简单,降低了编写自动化脚本的测试人员门 槛,提升了编写脚本的速度,且功能测试接口中与设备交互下发的Cli命令取自用户指定 的配置文件,测试人员只需指定修改配置文件的路径即可适配不同的设备,扩展性好。测试 人员通过利用本发明只需调用一种测试方法就可以测试一个功能,简化了自动化测试脚本 开发人员的工作。
【附图说明】
[0021] 图1显示为本发明的基于面向对象的自动化测试方法流程示意图。
[0022] 图2显示为本发明的基于面向对象的自动化测试系统的原理结构示意图。
[0023] 图3显示为本发明的自动化平台的原理结构示意图。
[0024] 元件标号说明
[0025] 10 基于面向对象的自动化测试系统
[0026] 101 创建模块
[0027] 102 选取模块
[0028] 103 第一操作模块
[0029] 104 第二操作模块
[0030] 105 路径指定模块
[0031] 106 判断模块
[0032] 107 终止模块
[0033] 2 自动化平台
[0034] 21 基于面向对象的自动化测试系统
[0035] 22 交互单元
[0036] S1 ~S7 步骤
【具体实施方式】
[0037] 以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书 所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实 施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离 本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施 例中的特征可以相互组合。
[0038] 需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构 想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸 绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也 可能更为复杂。
[0039] 本发明所述的基于面向对象的自动化测试方法及系统的发明原理如下:
[0040] 本发明的具体实现为:
[0041] 1、支撑库脚本引入itcl包。代码为:
[0042] PackagerequireItcl
[0043] 2、为每个协议创建一个类。以vlan
为例,代码如下:
[0044]
[0045] 3、为协议的每个参数新建set与get方法。即上述示例中的method。
[0046] 4、为协议的每个功能测试点新建一个方法。用户只需调用此方法即可完成该功能 的测试。
[0047] 5、为协议指定默认的cli命令配置文件路径。同时新建一个setConfigPath的方 法,允许用户调用来修改引用的cli命令配置文件路径。
[0048] 实施例一
[0049] 本实施例所述的基于面向对象的自动化测试方法,该基于面向对象的自动化测试 方法通过自动化平台应用在多台待测设备,所述待测设备包括路由器,交换机等网络设备, 每一所述待测设备配置不同网络协议,每一网络协议具有多个功能测试点。支持所述基 于面向对象的自动化测试方法的网络协议包括:ACL,DHCP Relay,DHCP Snooping,EAPS, IGMP,IGMP Snooping,Lacp,LLDP,Mirror,NLDP,PM-SM,QINQ,RIP,VLAN,VRRP。在本实施 例中,以VLAN为例。请参阅图1,显示为基于面向对象的自动化测试方法流程示意图。如图 1所示,所述基于面向对象的自动化测试方法包括以下几个步骤:
[0050] S1,创建一用于测试待测设备配置的所述网络协议的测试脚本,并令所述测试脚 本引入用于提供所述测试脚本接口的数据包。在本步骤中,所述步骤S1还包括为所述测试 脚本引入一面向对象的工具命令语言包,即itcl包,所述itcl包是tel包的扩展模块,弓丨 入itcl包后可使用该包中的接口,以使用其中的测试脚本接口。在本实施例中,所述测试 脚本也称支撑库脚本,而支撑库是供脚本调用的脚本接口。
[0051] S2,选取一待测设备以选定该待测设备上配置的网络协议为测试对象。所述网络 协议包括多个需配置属性参数。不同网络协议包括不同的需配置属性参数。在本实施例中, 作为测试对象的网络协议为VLAN,VLAN包括的需配置属性参数在本实施例中为ID地址。
[0052] S3,利用预存的属性参数设置操作和获取已设置属性参数操作处理作为测试对象 的网络协议。在本实施例中,预存的属性参数设置操作=Vlan_objsetVlanldMethod,预存 的属性参数设置操作用以对需配置属性参数进行设置操作,即设置本实施例中VLAN的ID地址,预存的获取已设置属性参数操作=Vlan_objgetVlanListMethod,预存的获取已设 置属性参数操作用以获取设置的需配置属性参数的参数信息,即获取本实施例中VLAN列 表。在本实施例中,在执行利用预存的属性参数设置操作和获取已设置属性参数操作处理 作为测试对象的网络协议之前,还需要初始化作为测试对象的网络协议需配置属性参数。
[0053]S4,调用预置测试方式测试作为测试对象的网络协议的多个功能测试点。所 述预置测试方式包括创建不同的作为测试对象的网络协议报文、向所述待测设备循环 发送作为测试对象的网络协议报文、捕获符合条件的作为测试对象的网络协议报文、和 /或解析过滤捕获的作为测试对象的网络协议报文,在本实施例中,预测测试方式包括 createVlanPacket可创建不同的Vlan报文,sendVlanPackets可向待测设备循环发送指定 的Vlan报文,captureVlanPackets可捕获收到的符合条件的Vlan报文,parseVlanPackets 可解析过滤捕获到的不同的Vlan报文。
[0054]S5,为作为测试对象的网络协议指定默认命令行配置文件路径。在本步骤中,通过 创建一种setDefaultCfgPath命令为命令行配置默认命令行配置文件路径。
[0055] S6,判断作为测试对象的网络协议是否发生变化,若是,则执行步骤S7;若否,则 结束进程。
[0056] S7,重新指定默认命令行配置文件路径。在本步骤中,需要调用modifyConfigPath 命令为新的测试对象指定默认命令行配置文件路径。此处需要说明的是,每一种网络协议 都具有与之匹配的默认命令行配置文件路径。
[0057] 以下是所述基于面向对象的自动化测试方法的基本实现代码:
[0058]
[0059]
[0060] 本实施例所述的基于面向对象的自动化测试方法引入了面向对象的思想,将网络 协议作为一个对象,将网络协议的相关参数作为对象的属性,将网络协议的功能作为对象 的方法。提高了接口的封装级别,提高了接口的易用性和脚本的可读性。所述基于面向对 象的自动化测试方法的接口调用简单,降低了编写自动化脚本的测试人员门槛,提升了编 写脚本的速度,且功能测试接口中与设备交互下发的cli命令取自用户指定的配置文件, 测试人员只需指定修改配置文件的路径即可适配不同的设备,扩展性好。测试人员通过利 用本实施例所述的基于面向对象的自动化测试方法只需调用一种测试方法就可以测试一 个功能,简化了自动化测试脚本开发人员的工作。
[0061] 实施例二
[0062] 本实施例提供一种基于面向对象的自动化测试系统10,该基于面向对象的自动化 测试系统通过自动化平台应用在多台待测设备,每一所述待测设备配置不同网络协议,每 一网络协议具有多个功能测试点。支持所述基于面向对象的自动化测试方法的网络协议 包括:ACL,DHCPRelay,DHCPSnooping,EAPS,IGMP,IGMPSnooping,Lacp,LLDP,Mirror,NLDP,PM-SM,QINQ,RIP,VLAN,VRRP。在本实施例中,以VLAN为例。请参阅图2,显示为基 于面向对象的自动化测试系统原理结构示意图。如图2所示,所述基于面向对象的自动化 测试系统10包括:创建模块101、选取模块102、第一操作模块103、第二操作模块104、路径 指定模块105、判断模块106、及终止模块107。
[0063] 所述创建模块101用于创建一用于测试待测设备配置的所述网络协议的测试脚 本,并令所述测试脚本引入用于提供所述测试脚本接口的数据包。在本实施例中,所述创建 模块101还用于为所述测试脚本引入一面向对象的工具命令语言包,即itcl包,所述itcl 包是tel包的扩展模块,引入itcl包后可使用该包中的接口,以使用其中的测试脚本接口。 在本实施例中,所述测试脚本也称支撑库脚本,而支撑库是供脚本调用的脚本接口。
[0064] 所述选取模块102与所述创建模块101连接用于选取一待测设备以选定该待测设 备上配置的网络协议为测试对象;所述网络协议包括多个需配置属性参数。不同网络协议 包括不同的需配置属性参数。在本实施例中,作为测试对象的网络协议为VLAN,VLAN包括 的需配置属性参数在本实施例中为ID地址。
[0065] 所述第一操作模块103与所述选取模块102连接并用于利用预存的属性参数设置 操作和获取已设置属性参数操作处理作为测试对象的网络协议。在本实施例中,预存在所 述第一操作模块103中的属性参数设置操作=Vlan_objsetVlanldMethod,所述属性参数 设置操作用以对需配置属性参数进行设置操作,即设置待测设备中配置的VLAN的ID地址, 预存的获取已设置属性参数操作=Vlan_objgetVlanListMethod,预存的获取已设置属性 参数操作用以获取设置的需配置属性参数的参数信息,即获取本实施例中VLAN列表。在本 实施例中,所述第一操作模块103在执行利用预存的属性参数设置操作和获取已设置属性 参数操作处理作为测试对象的网络协议之前,还需要初始化作为测试对象的网络协议需配 置属性参数。
[0066] 与所述选取模块102和第一操作模块103连接的第二操作模块104用于调用预置 测试方式测试作为测试对象的网络协议的多个功能测试点。所述预置测试方式包括创建不 同的作为测试对象的网络协议报文、向所述待测设备循环发送作为测试对象的网络协议报 文、捕获符合条件的作为测试对象的网络协议报文、和/或解析过滤捕获的作为测试对象 的网络协议报文,在本实施例中,预测测试方式包括createVlanPacket可创建不同的Vlan 报文,sendVlanPackets可向待测设备循环发送指定的Vlan报文,captureVlanPackets可 捕获收到的符合条件的Vlan报文,parseVlanPackets可解析过滤捕获到的不同的Vlan报 文。
[0067] 与所述第二操作模块104连接的路径指定模块105用于为作为测试对象的网络协 议指定默认命令行配置文件路径。在本实施例中,所述第二操作模块104通过创建一种设 置配置路径命令,即setDefaultCfgPath命令为命令行配置默认命令行配置文件路径。在 本实施例中,设置路径的代码为setConfigPath,该代码还可以用于允许测试人员调用以修 改默认命令行配置文件路径。
[0068] 分别与所述选取模块102和路径指定模块105连接的所述判断模块106用于判断 作为测试对象的网络协议是否发生变化,若是,则重新调用所述路径指定模块105重新指 定默认命令行配置文件路径,在重新调用所述路径指定模块105时需重新创建一修改配置 路径命令,modifyConfigPath命令为新的测试对象指定默认命令行配置文件路径。此处需 要说明的是,每一种网络协议都具有与之匹配的默认命令行配置文件路径。若否,则调用用 于终止所述基于面向对象的自动化测试系统运行的终止模块107。所述终止模块107与判 断模块106连接。
[0069] 本实施例所述的基于面向对象的自动化测试系统引入了面向对象的思想,将网络 协议作为一个对象,将网络协议的相关参数作为对象的属性,将网络协议的功能作为对象 的方法。提高了接口的封装级别,提高了接口的易用性和脚本的可读性。所述基于面向对 象的自动化测试方法的接口调用简单,降低了编写自动化脚本的测试人员门槛,提升了编 写脚本的速度,且功能测试接口中与设备交互下发的cli命令取自用户指定的配置文件, 测试人员只需指定修改配置文件的路径即可适配不同的设备,扩展性好。测试人员通过利 用本实施例所述的基于面向对象的自动化测试系统只需调用一种测试方法就可以测试一 个功能,简化了自动化测试脚本开发人员的工作。
[0070] 实施例三
[0071] 本实施例提供一种自动化平台2,所述自动化平台2与一待测设备连接,每一所述 待测设备配置不同网络协议,每一网络协议具有多个功能测试点。所述网络协议包括:ACL, DHCPRelay,DHCPSnooping,EAPS,IGMP,IGMPSnooping,Lacp,LLDP,Mirror,NLDP,PIM-SM, QINQ,RIP,VLAN,VRRP。请参阅图3,显示为自动化平台的原理结构示意图。所述自动化平 台2包括上述实施例二中描述的基于面向对象的自动化测试系统21,及与用于与所述基于 面向对象的自动化测试系统连接的交互单元22,所述交互单元22用于提供用户通过所述 自动化平台2与所述待测设备交互下发的命令行(cli)的命令行界面。
[0072] 综上所述,本发明基于面向对象的自动化测试方法及系统、和自动化平台引入了 面向对象的思想,将网络协议作为一个对象,将网络协议的相关参数作为对象的属性,将 网络协议的功能作为对象的方法。提高了接口的封装级别,提高了接口的易用性和脚本的 可读性。所述基于面向对象的自动化测试方法的接口调用简单,降低了编写自动化脚本的 测试人员门槛,提升了编写脚本的速度,且功能测试接口中与设备交互下发的cli命令取 自用户指定的配置文件,测试人员只需指定修改配置文件的路径即可适配不同的设备,扩 展性好。测试人员通过利用本发明只需调用一种测试方法就可以测试一个功能,简化了自 动化测试脚本开发人员的工作。
[0073] 所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
[0074] 上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟 悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因 此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完 成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
【主权项】
1. 一种基于面向对象的自动化测试方法,其特征在于,所述基于面向对象的自动化测 试方法包括以下步骤: 步骤一,创建一用于测试待测设备配置的网络协议的测试脚本,并令所述测试脚本引 入用于提供所述测试脚本接口的数据包; 步骤二,选取一待测设备以选定该待测设备上配置的网络协议为测试对象;所述网络 协议包括多个需配置属性参数; 步骤三,利用预存的属性参数设置操作和获取已设置属性参数操作处理作为测试对象 的网络协议; 步骤四,调用预置测试方式测试作为测试对象的网络协议的多个功能测试点; 步骤五,为作为测试对象的网络协议指定默认命令行配置文件路径。2. 根据权利要求1所述的基于面向对象的自动化测试方法,其特征在于:所述基于面 向对象的自动化测试方法还包括判断作为测试对象的网络协议是否发生变化,若是,则重 新指定默认命令行配置文件路径,若否,则结束进程。3. 根据权利要求2所述的基于面向对象的自动化测试方法,其特征在于:重新指定默 认命令行配置文件路径的步骤为利用预制修改配置路径方式修改所述步骤五中指定的默 认命令行配置文件路径使之与变化的网络协议相匹配。4. 根据权利要求1所述的基于面向对象的自动化测试方法,其特征在于:所述步骤四 中预置测试方式包括创建不同的作为测试对象的网络协议报文、向所述待测设备循环发送 作为测试对象的网络协议报文、捕获符合条件的作为测试对象的网络协议报文、和/或解 析过滤捕获的作为测试对象的网络协议报文。5. 根据权利要求1所述的基于面向对象的自动化测试方法,其特征在于:所述步骤一 还包括为所述测试脚本引入一面向对象的工具命令语言包以使用其中的测试脚本接口。6. 根据权利要求1所述的基于面向对象的自动化测试方法,其特征在于:所述步骤三 还包括初始化作为测试对象的网络协议需配置属性参数。7. -种基于面向对象的自动化测试系统,其特征在于,所述基于面向对象的自动化测 试系统包括: 创建模块,用于创建一用于测试待测设备配置的网络协议的测试脚本,并令所述测试 脚本引入用于提供所述测试脚本接口的数据包; 选取模块,与所述创建模块连接,用于选取一待测设备以选定该待测设备上配置的网 络协议为测试对象;所述网络协议包括多个需配置属性参数; 第一操作模块,与所述选取模块连接,用于利用预存的属性参数设置操作和获取已设 置属性参数操作处理作为测试对象的网络协议; 第二操作模块,与所述选取模块和第一操作模块连接,用于调用预置测试方式测试作 为测试对象的网络协议的多个功能测试点; 路径指定模块,与所述第二操作模块连接,用于为作为测试对象的网络协议指定默认 命令行配置文件路径。8. 根据权利要求7所述的基于面向对象的自动化测试系统,其特征在于:所述基于面 向对象的自动化测试系统还包括: 判断模块,与所述路径指定模块连接,用于判断作为测试对象的网络协议是否发生变 化,若是,则重新调用所述路径指定模块重新指定默认命令行配置文件路径,若否,则调用 用于终止所述基于面向对象的自动化测试系统运行的终止模块。9. 根据权利要求7所述的基于面向对象的自动化测试系统,其特征在于:所述创建模 块还用于为所述测试脚本引入一面向对象的工具命令语言包以使用其中的测试脚本接口; 所述第一操作模块还用于初始化作为测试对象的网络协议需配置属性参数。10. -种自动化平台,所述自动化平台与一待测设备连接,其特征在于,所述自动化平 台包括: 如权利要求7-9中任一所述的基于面向对象的自动化测试系统;及 交互单元,用于与所述基于面向对象的自动化测试系统连接的,用于提供用户通过所 述自动化平台与所述待测设备交互下发的命令行的命令行界面。
【专利摘要】本发明提供一种基于面向对象的自动化测试方法,包括:创建一用于测试待测设备配置的网络协议的测试脚本,并令测试脚本引入用于提供测试脚本接口的数据包;选取一待测设备以选定该待测设备上配置的网络协议为测试对象;网络协议包括多个需配置属性参数;利用预存的属性参数设置操作和获取已设置属性参数操作处理作为测试对象的网络协议;调用预置测试方式测试作为测试对象的网络协议的多个功能测试点;为作为测试对象的网络协议指定默认命令行配置文件路径。本发明适配不同的设备,扩展性好,简化了自动化测试脚本开发人员的工作。
【IPC分类】G06F11/36
【公开号】CN104899150
【申请号】CN201510373567
【发明人】曾银华
【申请人】上海斐讯数据通信技术有限公司
【公开日】2015年9月9日
【申请日】2015年6月30日