本文作者:kaifamei

脚本测试方法、装置及电子设备与流程

更新时间:2025-12-20 22:34:56 0条评论

脚本测试方法、装置及电子设备与流程



1.本技术涉及软件测试技术领域,具体而言,涉及一种脚本测试方法、装置及电子设备。


背景技术:



2.信息化和网络安全是当下推动社会生产变革、为经济高质量发展赋能增效的重要手段。部署于网络各处的防火墙设备在抵御各类网络攻击、保护用户信息安全方面起到了举足轻重的作用。伴随着信息化的发展,防火墙的应用场景、承载的业务类型愈加复杂,不同行业的用户对防火墙提出了越来越多个性化的功能需求,从而也对软件开发和测试提出了更多的挑战。
3.对于软件测试而言,在软件功能快速迭代的情况下,可以借助脚本文件以及脚本文件对应的拓扑文件来自动化的对软件功能进行测试。
4.然而,现有技术在对脚本文件进行测试时,由于每个脚本文件对应一个拓扑文件,因此需要针对每个拓扑文件分配一个测试床,换言之,即每个测试床只能同时运行一个脚本文件,在脚本文件数量较多、并且测试床资源较少时,这种测试方式会严重影响脚本文件的测试效率。


技术实现要素:



5.本技术实施例提供了一种脚本测试方法、装置及电子设备,以至少解决现有技术中脚本测试效率低的技术问题。
6.根据本技术实施例的一个方面,提供了一种脚本测试方法,包括:获取待测试的多个脚本文件以及待测试的多个脚本文件所对应的目标拓扑文件,其中,目标拓扑文件由多个拓扑文件组成,每个拓扑文件与一个脚本文件相对应,目标拓扑文件至少包括多个逻辑设备之间的连接信息以及每个逻辑设备的设备描述信息;根据连接信息以及设备描述信息从设备资源池中确定多个测试设备,其中,设备资源池由处于空闲状态的物理设备组成,每个逻辑设备与一个测试设备相对应;根据连接信息对多个测试设备进行组网连接,得到测试床;在测试床中并行测试多个脚本文件,得到测试结果。
7.进一步地,脚本测试方法还包括:获取每个脚本文件所对应的拓扑文件,其中,每个拓扑文件中包括连接信息中的部分连接信息以及多个逻辑设备中至少一个逻辑设备的设备描述信息;获取多个拓扑文件之间的公共内容以及差异内容;合并多个拓扑文件中的公共内容,得到第一子文件;基于差异内容生成第二子文件;根据第二子文件与第一子文件确定目标拓扑文件。
8.进一步地,脚本测试方法还包括:根据连接信息以及设备描述信息确定测试设备信息,其中,测试设备信息至少包括每个测试设备的设备类型、每种设备类型的测试设备的设备数量以及每个测试设备所需的物理网口数量;根据测试设备信息从设备资源池中确定多个测试设备。
9.进一步地,脚本测试方法还包括:检测每个测试设备上处于空闲状态的目标物理网口;根据连接信息确定每个测试设备所对应的至少一个连接对象,其中,连接对象为与该测试设备存在直接连接关系的测试设备;将每个测试设备上的目标物理网口与连接对象上的目标物理网口相连接,得到测试床。
10.进一步地,脚本测试方法还包括:根据连接信息检测测试设备与连接对象之间是否存在多个连接链路;在测试设备与连接对象之间存在多个连接链路的情况下,通过目标物理网口中的子接口建立多个连接链路,其中,不同的连接链路所对应不同的子接口;在测试设备与连接对象之间存在一个连接链路的情况下,通过目标物理网口中的任意一个子接口建立该连接链路。
11.进一步地,脚本测试方法还包括:在根据连接信息对多个测试设备进行组网连接,得到测试床之后,获取目标接口标识以及子接口标识,其中,目标接口标识用于标识连接测试设备与连接对象的目标物理网口,子接口标识用于标识构成连接链路的子接口;读取目标拓扑文件中每个逻辑设备上的逻辑网口的逻辑网口标识,其中,在目标拓扑文件中,具有连接关系的两个逻辑设备之间通过逻辑网口连接;基于逻辑设备与测试设备的对应关系,确定目标接口标识与逻辑网口标识之间的第一映射关系,以及子接口标识与逻辑网口标识之间的第二映射关系。
12.进一步地,脚本测试方法还包括:在根据连接信息对多个测试设备进行组网连接,得到测试床之后,在测试设备与连接对象之间存在多个连接链路的情况下,为每个连接链路分配对应的虚拟局域网,其中,不同虚拟局域网下的连接链路之间互相隔离;获取每个虚拟局域网的局域网标识以及每个虚拟局域网所对应的连接链路的链路标识;建立链路标识与局域网标识之间的关联关系。
13.进一步地,脚本测试方法还包括:根据关联关系、第一映射关系以及第二映射关系生成测试床拓扑文件,测试床拓扑文件至少包括多个测试设备之间的连接信息以及每个测试设备的设备描述信息;依据测试床拓扑文件启动测试床中的测试设备,并在测试设备中并行运行多个脚本文件,得到测试结果。
14.根据本技术实施例的另一方面,还提供了一种脚本测试装置,包括:获取模块,用于获取待测试的多个脚本文件以及待测试的多个脚本文件所对应的目标拓扑文件,其中,目标拓扑文件由多个拓扑文件组成,每个拓扑文件与一个脚本文件相对应,目标拓扑文件至少包括多个逻辑设备之间的连接信息以及每个逻辑设备的设备描述信息;确定模块,用于根据连接信息以及设备描述信息从设备资源池中确定多个测试设备,其中,设备资源池由处于空闲状态的物理设备组成,每个逻辑设备与一个测试设备相对应;组网模块,用于根据连接信息对多个测试设备进行组网连接,得到测试床;测试模块,用于在测试床中并行测试多个脚本文件,得到测试结果。
15.根据本技术实施例的另一方面,还提供了一种电子设备,该电子设备包括一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现用于运行程序,其中,程序被设置为运行时执行上述的脚本测试方法。
16.在本技术中,采用将多个拓扑文件整合为一个目标拓扑文件的方式,在获取待测试的多个脚本文件以及待测试的多个脚本文件所对应的目标拓扑文件之后,根据连接信息
以及设备描述信息从设备资源池中确定多个测试设备,并根据连接信息对多个测试设备进行组网连接,得到测试床,最后在测试床中并行测试多个脚本文件,得到测试结果。其中,目标拓扑文件由多个拓扑文件组成,每个拓扑文件与一个脚本文件相对应,目标拓扑文件至少包括多个逻辑设备之间的连接信息以及每个逻辑设备的设备描述信息;设备资源池由处于空闲状态的物理设备组成,每个逻辑设备与一个测试设备相对应。
17.由上述内容可知,本技术通过将多个拓扑文件整合为一个目标拓扑文件,然后基于该目标拓扑文件组建一个测试床,并利用该测试床并行测试多个脚本文件,实现了在一个测试床上同时测试多个脚本文件的目的,不仅提高了测试设备资源的利用率,还提高了脚本文件的测试效率。另外,将多个脚本文件同时进行测试,也更加符合实际测试场景,因为在实际测试场景中,多个脚本文件对应的软件功能通常是是结合使用的,现有技术单独测试每个脚本文件,可能导致脚本文件结合使用时会出现的异常问题难以暴露,而本技术同时测试多个脚本文件,可以检测到更多的异常问题,提高测试全面性。
18.由此可见,本技术的技术方案达到了在同一个测试床上并行测试多个脚本文件的目的,从而实现了提高测试设备资源利用率的效果,进而解决了现有技术中脚本测试效率低的技术问题。
附图说明
19.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
20.图1是根据本技术实施例的一种可选的脚本测试方法的流程图;
21.图2是根据本技术实施例的一种可选的2pc+2dut的组网拓扑示意图;
22.图3是根据本技术实施例的一种可选的ospf脚本文件的拓扑结构示意图;
23.图4是根据本技术实施例的一种可选的2pc+4dut的组网拓扑示意图;
24.图5是根据本技术实施例的一种可选的dns脚本文件的拓扑结构示意图;
25.图6是根据本技术实施例的一种可选的设备资源池中测试设备的组网示意图;
26.图7是根据本技术实施例的一种可选的物理网口未复用的组网示意图;
27.图8是根据本技术实施例的一种可选的物理网口复用的组网示意图;
28.图9是根据本技术实施例的一种可选的脚本测试方法的流程图;
29.图10是根据本技术实施例的一种可选的脚本测试装置的示意图。
具体实施方式
30.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。
31.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或
描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
32.实施例1
33.根据本技术实施例,提供了一种脚本测试方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
34.图1是根据本技术实施例的一种可选的脚本测试方法的流程图,如图1所示,该方法包括如下步骤:
35.步骤s101,获取待测试的多个脚本文件以及待测试的多个脚本文件所对应的目标拓扑文件。
36.在步骤s101中,目标拓扑文件由多个拓扑文件组成,每个拓扑文件与一个脚本文件相对应,目标拓扑文件至少包括多个逻辑设备之间的连接信息以及每个逻辑设备的设备描述信息。
37.可选的,一种自动化测试系统可作为本技术实施例中的脚本测试方法的执行主体。上述的每个脚本文件对应待测试软件的部分软件功能模块,通过对脚本文件进行测试,即可实现对该脚本文件所对应的软件功能模块进行测试。每个脚本文件都对应了单独的拓扑文件,该拓扑文件用于描述测试该脚本文件所需要的逻辑设备以及逻辑设备之间的连接关系。假设有n个脚本文件需要测试,则开发人员也会设计n个拓扑文件,将n个脚本文件以及n个拓扑文件输入至本技术的自动化测试系统中,自动化测试系统首先分析n个拓扑文件中的差异内容以及公共内容,然后通过合并公共内容,保留差异内容,得到一个目标拓扑文件,通过该目标拓扑文件中所描述的多个逻辑设备以及多个逻辑设备之间的连接方式,自动化测试系统能够同时对n个脚本文件进行测试。
38.步骤s102,根据连接信息以及设备描述信息从设备资源池中确定多个测试设备。
39.在步骤s102中,设备资源池由处于空闲状态的物理设备组成,每个逻辑设备与一个测试设备相对应。
40.具体的,设备资源池中的测试设备包括但不限于防火墙设备、网络交换机以及pc设备等物理设备。其中,pc设备包括但不限于虚拟机或者容器,在本技术中,虚拟机运行在host主机上。
41.自动化测试系统通过分析目标拓扑文件,可确定测试多个脚本文件时所需要的设备类型、设备数量以及设备网络接口数量,例如,所需防火墙的设备数量、型号以及每个防火墙需要准备的网络接口数量。
42.步骤s103,根据连接信息对多个测试设备进行组网连接,得到测试床。
43.在步骤s103中,自动化测试系统通过分析目标拓扑文件,除了可确定上述设备类型、设备数量以及设备网络接口数量等设备相关信息之外,还可以确定得到各个逻辑设备之间的连接关系,然后基于逻辑设备之间的连接关系对测试设备进行组网连接。需要说明的是,目标拓扑文件可以理解为是测试床的设计图,在目标拓扑文件中,逻辑设备之间的连
接关系是一个逻辑概念,并非是真正的物理连接,两个逻辑设备之间用于建立连接链路的网络接口也是逻辑网络接口,并不是真实的物理网络接口。在实际的组网过程中,自动化测试系统会根据目标拓扑文件这一设计图,确定每个逻辑设备所对应的真实物理设备(即测试设备),并且根据多个逻辑设备之间的连接关系以及每个测试设备的物理网络接口的当前实际状况确定测试设备之间用于建立连接链路的实际网口,最后通过确定的实际网口对多个测试设备进行组网连接,得到测试床。
44.步骤s104,在测试床中并行测试多个脚本文件,得到测试结果。
45.在步骤s104中,测试床是基于目标拓扑文件组建的,而每个脚本文件所对应的拓扑文件为目标拓扑文件的一个子集,换言之,依据目标拓扑文件所组建的测试床可用于测试每个脚本文件,因此,为了提高测试效率,自动化测试系统可在测试床中并行测试多个脚本文件,然后得到多个脚本文件的测试结果。
46.基于上述步骤s101至步骤s104的内容可知,在本技术中,采用将多个拓扑文件整合为一个目标拓扑文件的方式,在获取待测试的多个脚本文件以及待测试的多个脚本文件所对应的目标拓扑文件之后,根据连接信息以及设备描述信息从设备资源池中确定多个测试设备,并根据连接信息对多个测试设备进行组网连接,得到测试床,最后在测试床中并行测试多个脚本文件,得到测试结果。其中,目标拓扑文件由多个拓扑文件组成,每个拓扑文件与一个脚本文件相对应,目标拓扑文件至少包括多个逻辑设备之间的连接信息以及每个逻辑设备的设备描述信息;设备资源池由处于空闲状态的物理设备组成,每个逻辑设备与一个测试设备相对应。
47.由上述内容可知,本技术通过将多个拓扑文件整合为一个目标拓扑文件,然后基于该目标拓扑文件组建一个测试床,并利用该测试床并行测试多个脚本文件,实现了在一个测试床上同时测试多个脚本文件的目的,不仅提高了测试设备资源的利用率,还提高了脚本文件的测试效率。另外,将多个脚本文件同时进行测试,也更加符合实际测试场景,因为在实际测试场景中,多个脚本文件对应的软件功能通常是是结合使用的,现有技术单独测试每个脚本文件,可能导致脚本文件结合使用时会出现的异常问题难以暴露,而本技术同时测试多个脚本文件,可以检测到更多的异常问题,提高测试全面性。
48.由此可见,本技术的技术方案达到了在同一个测试床上并行测试多个脚本文件的目的,从而实现了提高测试设备资源利用率的效果,进而解决了现有技术中脚本测试效率低的技术问题。
49.在一种可选的实施例中,自动化测试系统首先获取每个脚本文件所对应的拓扑文件,其中,每个拓扑文件中包括连接信息中的部分连接信息以及多个逻辑设备中至少一个逻辑设备的设备描述信息。然后,自动化测试系统获取多个拓扑文件之间的公共内容以及差异内容,并合并多个拓扑文件中的公共内容,得到第一子文件,以及基于差异内容生成第二子文件,最后,自动化测试系统根据第二子文件与第一子文件确定目标拓扑文件。
50.可选的,在本技术中,所有脚本文件共同对应一个统一的目标拓扑文件,其中,为了方便描述,以下将目标拓扑文件称为父拓扑。各个脚本文件在编写时都基于此父拓扑生成自己的拓扑文件,原则上尽量复用父拓扑中的逻辑设备。各脚本文件对应的拓扑文件可以理解为是父拓扑的一个子集,在当前父拓扑不能满足某个脚本文件的组网需求时,也可以根据实际需求在父拓扑中增加新的逻辑设备和连接,并将更新后的拓扑作为新的父拓
扑,之后所有脚本文件的编写都要基于最新的父拓扑进行。
51.举例而言,图2示出了一种父拓扑定义为2pc+2dut的组网拓扑示意图,其中,dut用于表示防火墙设备,在图2中,示出了pc1、pc2、dut1、dut2。
52.进一步地,在图2的基础上,新增“ospf”和“dns”两个脚本文件对应的拓扑结构。其中,ospf是一种广泛使用的动态路由协议,测试组网需要更多的防火墙设备,当前图2中的父拓扑不能满足要求,因此可以在父拓扑基础上增加两台防火墙设备dut3和dut4,两台pc:ospf_pc1和ospf_pc2,以及6个连接link_ospf_1至link_ospf_6。
53.其中,一种ospf脚本文件的拓扑结构如图3所示,需要注意到的是,在图3中,ospf_pc1、ospf_pc2、dut1至dut4均为对应的测试设备的唯一标识,是测试设备的逻辑名称logicname。link_ospf_1至link_ospf_6则为多个测试设备之间的一个连接,其中,“ospf”指代脚本文件的名称,表示该测试设备或连接仅供该脚本文件使用,末尾数字表示序号。此处的连接是一个逻辑概念,并非指物理连接。另外,每个link在连接的设备上会对应一个网络接口名,各设备的网络接口名(e0/0、eth1等)也均为逻辑名称logicname,并非表示真实的网络接口。
54.可选的,ospf脚本文件对应的拓扑文件(ospf.topo)以yaml格式定义如下:
55.[0056][0057]
其中,拓扑文件中的key表示设备名,设备的“os”属性用来标识设备的类型。在搭建测试床时,自动化测试系统可以根据“os”属性从设备资源池中筛选分配指定类型的设备。
[0058]
需要注意到的是,通过合并ospf脚本文件对应的多个拓扑文件的公共部分以及保留差异部分,此时的父拓扑扩展成如图4所示的2pc+4dut的组网,包含4个防火墙设备以及两个pc设备,四个防火墙设备为dut1、dut2、dut3以及dut4,两个pc设备为pc1和pc2。
[0059]
假设继续增加dns模块的脚本文件,由于dns测试对组网要求比较简单,当前父拓扑可以满足测试需求,且可以使用父拓扑的一个子集来作为测试拓扑。因此,父拓扑不会继续进行更新。
[0060]
其中,图5示出了一种dns脚本文件对应的拓扑结构,如图5所示,dns脚本文件对应的拓扑结构较为简单,使用当前父拓扑中的dut1、dut2、pc1以及pc2即可满足需求。
[0061]
另外,dns脚本文件对应的拓扑文件(dns.topo)以yaml格式定义如下:
[0062]
[0063][0064]
需要注意到的是,由于拓扑文件中设备的网络接口名均为logicname,无实际意义,所以不同的脚本文件可以使用同一设备的同名接口,只要保证每个脚本文件内部不冲突即可。自动化测试系统在组网过程中会将不同的拓扑文件中同一设备的相同逻辑名称的接口映射到不同接口上,从而以避免接口冲突的问题。
[0065]
在一种可选的实施例中,自动化测试系统根据连接信息以及设备描述信息确定测试设备信息,其中,测试设备信息至少包括每个测试设备的设备类型、每种设备类型的测试设备的设备数量以及每个测试设备所需的物理网口数量。然后,自动化测试系统根据测试设备信息从设备资源池中确定多个测试设备。
[0066]
可选的,在测试脚本文件之前,自动化测试系统需要根据脚本文件的组网需求为脚本文件申请分配合适的测试设备并建立测试设备之间的连接,完成测试床的搭建。其中,这些可供申请分配的测试设备构成了设备资源池。设备资源池中的测试设备大体可分为两类:pc设备和防火墙。为了方便调度、降低成本,pc一般都使用虚拟机(vm)或容器,因此,本技术后面用vm代替pc来描述。
[0067]
图6示出了根据本技术实施例的一种可选的设备资源池中测试设备的组网示意图,如图6所示,所有的测试设备(包括host主机和防火墙)的网络接口均连接到交换机上,交换机之间使用trunk接口互联。其中,host主机上可以创建多个vm,并借助dvs(分布式虚拟交换机)为vm分配虚拟网卡、vlan和充当上行链路的物理网卡。
[0068]
另外,在组建测试床之前,自动化测试系统需要知道脚本运行所需的设备类型、设备数量以及每个测试设备所需的物理网口数量。在并行执行多个脚本文件时,自动化测试系统可通过多个脚本文件对应的目标拓扑文件获取得到上述的测试设备信息。
[0069]
以ospf脚本文件和dns脚本文件为例,自动化测试系统首先汇总ospf.topo和dns.topo为summary.topo。其中,summary.topo如下:
[0070]
[0071][0072]
最后,自动化测试系统通过对summary.topo进行解析,能够获取得到并行执行dns和ospf两个脚本文件所需的测试设备的设备类型、设备数量、设备接口数量和设备之间的连接关系,进而申请设备搭建测试床。
[0073]
在一种可选的实施例中,自动化测试系统检测每个测试设备上处于空闲状态的目标物理网口,然后根据连接信息确定每个测试设备所对应的至少一个连接对象,其中,连接对象为与该测试设备存在直接连接关系的测试设备。最后,自动化测试系统将每个测试设备上的目标物理网口与连接对象上的目标物理网口相连接,得到测试床。
[0074]
可选的,由于拓扑文件中设备的网络接口名均为logicname,无实际意义,所以不同的脚本文件可以使用同一设备的同名接口,也基于该原因,实际组网过程中两个测试设备之间建立连接链路的物理网口的标识可能与目标拓扑文件中对应的逻辑网络接口的标识存在差异,例如,在目标拓扑文件中,逻辑设备pc1上的逻辑网口01与逻辑设备dut1上的逻辑网口a相连接,但是在实际组网过程中,自动化测试系统检测到测试设备pc1(该测试设备与逻辑设备pc1相对应)上的物理网口01已经被占用,同时测试设备dut1(该测试设备与逻辑设备dut1相对应)上的物理网口a也已经被占用,在此基础上,为了实现组网成功,自动化测试设备使用测试设备pc1上的物理网口02和测试设备dut1上的物理网口b建立连接链路,其中,物理网口02和物理网口b均处于空闲状态。
[0075]
在一种可选的实施例中,自动化测试系统还会根据连接信息检测测试设备与连接对象之间是否存在多个连接链路,在测试设备与连接对象之间存在多个连接链路的情况下,自动化测试系统通过目标物理网口中的子接口建立多个连接链路,其中,不同的连接链路所对应不同的子接口。在测试设备与连接对象之间存在一个连接链路的情况下,自动化测试系统通过目标物理网口中的任意一个子接口建立该连接链路。
[0076]
可选的,在现有技术中,每个脚本的拓扑文件中所标记的逻辑接口就是测试设备
的物理网口。在并行执行多模块脚本时,如果每次都直接将逻辑接口映射到物理网口上,那么在两个测试设备之间存在m个连接链路时,需要每个测试设备都准备出空闲的m个物理网口,不仅对设备接口的数量要求很高,并且在多数情况下,每个物理网口的带宽使用率也很低。因此,本技术优化了目标拓扑文件的映射规则,借助vlan子接口(即物理网口中的子接口)来实现设备上物理网口的复用。
[0077]
以summary.topo为例说明,对应的拓扑图如7所示,在图7中,两个设备间的每条线都表示一个连接链路link,在现有技术中,拓扑文件中一个link对应一对物理网口,采用这种方式运行dns和ospf两个脚本文件时,对各个测试设备的物理接口数要求为:dut1需要5个物理网口、dut2需要5个物理网口、dut3需要2个物理网口、dut4需要2个物理网口,每个host主机最少需要1个物理网口。
[0078]
而在本技术中,借用vlan子接口采用物理接口复用的映射规则,可以将summary.topo中相同设备之间的不同link映射到同一物理接口对的不同子接口上,如图8所示,连接链路link_dns_1与link_ospf_1共用一对物理网口、连接链路link_dns_2与link_ospf_2共用一对物理网口、连接链路link_dns_3与link_ospf_3共用一对物理网口。优化之后,dut1只需要3个物理接口、dut2只需要3个物理接口。自动化测试设备可根据优化后的物理网口数量从设备资源池中确定测试设备。
[0079]
在一种可选的实施例中,在每个测试设备与连接对象之间是否存在多个连接链路的情况下,自动化测试系统检测多个连接链路中是否存在第一连接链路,其中,第一连接链路需要单独占用目标物理网络接口。在多个连接链路中是否存在第一连接链路时,自动化测试系统为第一连接链路分配单独的目标物理网络接口,并通过其他目标物理网络接口中的子接口建立多个连接链路中剩余的连接链路。
[0080]
可选的,考虑到部分防火墙设备对接口类型、接口带宽等要求较高,不适用物理接口复用的映射规则,这种情况可以在脚本拓扑文件中为这些link定义一些扩展属性来限制映射规则。比如dut1和dut2之间的link_dns_2流量带宽较高,为了避免接口复用导致的与其他模块脚本流量争用接口带宽,可以为link_dns_2定义strict属性,说明该link的接口为本模块独占,不能与其他模块复用,后续做拓扑映射时自动化测试系统会为该模块分配一个单独的接口。
[0081]
以下是为link_dns_2定义strict属性的dns拓扑文件:
[0082][0083]
在一种可选的实施例中,在根据连接信息对多个测试设备进行组网连接,得到测试床之后,自动化测试系统获取目标接口标识以及子接口标识,其中,目标接口标识用于标识连接测试设备与连接对象的目标物理网口,子接口标识用于标识构成连接链路的子接口。然后,自动化测试系统读取目标拓扑文件中每个逻辑设备上的逻辑网口的逻辑网口标识,其中,在目标拓扑文件中,具有连接关系的两个逻辑设备之间通过逻辑网口连接。最后,自动化测试系统基于逻辑设备与测试设备的对应关系,确定目标接口标识与逻辑网口标识之间的第一映射关系,以及子接口标识与逻辑网口标识之间的第二映射关系。
[0084]
可选的,假设在目标拓扑文件中,逻辑设备pc1与逻辑设备dut1之间存在两个连接链路,分别为连接链路01与连接链路02。其中,连接链路01由逻辑设备pc1上的逻辑网口1与逻辑设备dut1上的逻辑网口a构成,连接链路02由逻辑设备pc1上的逻辑网口5与逻辑设备dut1上的逻辑网口f构成。为了提高物理网口的利用率,在实际组网过程中,两条连接链路都可以接入测试设备pc1上的物理网口2与测试设备dut1上的物理网口b(假设物理网口2与物理网口b处于空闲状态),但是,连接链路01接入的是子接口2-1与子接口b-1,连接链路02接入的是子接口2-2与子接口b-2。其中,子接口2-1与子接口2-2为物理网口2的两个vlan子接口,子接口b-1与子接口b-2为物理网口b的两个valn子接口。在此基础上,第一映射关系为逻辑网口1与逻辑网口5都对应物理网口2、逻辑网口a与逻辑网口f都对应物理网口b;第二映射关系为逻辑网口1对应子接口2-1、逻辑网口5对应子接口2-2、逻辑网口a对应子接口b-1、逻辑网口f对应子接口b-2。结合上逻辑设备与测试设备之间的对应关系,可确定逻辑网口与物理网口/子接口之间的唯一映射关系。
[0085]
在一种可选的实施例中,为了确保同一个物理网口中不同子接口之间的网络隔离,在测试设备与连接对象之间存在多个连接链路的情况下,自动化测试系统为每个连接链路分配对应的虚拟局域网,其中,不同虚拟局域网下的连接链路之间互相隔离。然后,自动化测试系统获取每个虚拟局域网的局域网标识以及每个虚拟局域网所对应的连接链路的链路标识,并建立链路标识与局域网标识之间的关联关系。
[0086]
可选的,为了确保上述的连接链路01与连接链路02之间的通讯隔离,可为连接链路01分配虚拟局域网vlan10,为连接链路02分配虚拟局域网vlan20,其中,vlan10与vlan20之间互相隔离,从而确保网络通讯的安全,避免信息泄露。
[0087]
可选的,为了方便对虚拟局域网的局域网标识进行管理,自动化测试系统还可以直接利用子接口名称的后缀作为该子接口所对应的虚拟局域网的局域网标识,例如,使用子接口2-x中的x直接作为局域网标识,x可以是数字、字母等任意一种字符。在上述示例中,子接口2-1中的“1”即为该子接口所对应的局域网标识。通过这种虚拟局域网标识的配置方法,可以在区分不同子接口的同时,确定每个子接口与对应的局域网标识之间的关联关系,有利于对子接口标识与局域网标识进行集中管理。
[0088]
另外,为了保证正确启动测试床的网络通讯,自动化测试系统会记录虚拟局域网标识与连接链路的链路标识之间的关联关系,以便在测试床启动之后,每个连接链路都能在对应的虚拟局域网下工作。
[0089]
在一种可选的实施例中,为了保证拓扑使用物理接口复用规则映射后设备之间的连通和隔离,可将设备资源池中设备的vlan划分规则确定如下:
[0090]
规则1:划分两个vlan区间,例如vlanrange 1:2-500,vlanrange 2:501-1000;
[0091]
规则2:防火墙设备之间的连接使用qinq技术实现设备间的连通和隔离,vlan范围为vlanrange 1。
[0092]
规则3:虚拟机之间的连接使用trunkpermitvlan实现设备间的连通和隔离,vlan范围为vlanrange 2。
[0093]
在一种可选的实施例中,自动化测试系统根据关联关系、第一映射关系以及第二映射关系生成测试床拓扑文件,其中,测试床拓扑文件至少包括多个测试设备之间的连接信息以及每个测试设备的设备描述信息,最后,自动化测试系统依据测试床拓扑文件启动测试床中的测试设备,并在测试设备中并行运行多个脚本文件,得到测试结果。
[0094]
可选的,图9示出了根据本技术实施例的一种可选的脚本测试方法的流程图。如图9所示,自动化测试系统首先获取多个待测试的脚本文件,并汇总每个脚本文件所对应的拓扑文件,得到目标拓扑文件。然后,自动化测试系统解析目标拓扑文件,得到并行执行多个脚本文件所需要的测试设备信息,并根据测试设备信息从设备资源池中筛选符合条件的测试设备并申请占用,如果设备资源池中的设备无法满足测试设备信息,则释放当前处于运行状态的测试设备。如果测试设备信息中的测试设备全部占用成功,则自动化测试系统根据目标拓扑文件中多个逻辑设备之间的连接关系,通过网络交换机对申请的多个测试设备进行组网连接,得到测试床,在测试床搭建过程中,通过物理接口多模块复用的方式,完成从目标拓扑文件到测试床中各个设备以及网络接口(包含子接口)的映射,并得到基于测试床的测试床拓扑文件。最后,自动化测试系统依据测试床拓扑文件启动测试床,并在测试床中同时测试多个脚本文件。
[0095]
可选的,在并行运行多个脚本文件时,每台测试设备上都至少承载了一个脚本文件,比如脚本a需要创建3000条源地址转换snat,脚本b需要创建4000条snat,而dut1上snat规格只有5000,显然不满足脚本a、b并行运行的条件,此时需要提示更改脚本运行参数,降低脚本a、b的snat配置数量。
[0096]
其中,各脚本使用到的各种配置对象和数量可以放在一个统一的数据结构中,如下:
[0097]
devicemoduleobjectnumoptions
[0098]
device和module分别表示设备名和脚本名,object表示配置对象名,num表示该脚本在该设备上配置了多少个任务object,options为可选项,比如可以附加一些提示信息,在规格超标后提示可以调整哪些参数来降低配置对象数量等。
[0099]
框架在批量执行脚本时,会汇总所有待执行模块的配置规格数据,与测试设备规格比较,超规格时给出提示和参数调整建议。通过提供设备规格定义与检查机制,可以提高脚本文件的测试灵活度以及成功率。
[0100]
需要注意到的是,在现有技术中,在同一时刻,一个测试床设备上只能运行一个脚本文件,无法组合多个脚本在同一个测试床上并发执行,这导致了大部分情况下,运行单一脚本的设备上业务配置简单、负载低,与现网设备配置和负载的特点差异较大,因而只能用来做一些基本的回归测试。并且,测试床在运行单个脚本时实际使用到的接口数量等其他测试资源很少,而这部分闲置的与测试床或设备绑定的资源又无法提供给其他脚本任务使用,导致资源利用率很低,造成浪费。
[0101]
本技术提出了基于同一测试床的多脚本并行执行的自动化测试方法。相比传统的自动化测试方法,本技术可以基于同一个测试床同时测试多个脚本文件,不仅可提高测试设备利用率,而且还可以模拟多个脚本同时使用的测试环境,从而提高脚本文件的测试复杂度,更加贴近真实的用户使用环境,也更易于发现新的问题。此外,本技术通过优化脚本拓扑的定义和物理接口复用的方法,解决了多模块脚本在同一测试床上并行运行时测试床搭建和拓扑映射问题,提高了设备利用率、降低了并行运行对设备数量和设备接口数量的要求,丰富了测试设备的功能配置和业务负载。
[0102]
实施例2
[0103]
根据本技术实施例,还提供了一种脚本测试装置的实施例,其中,图10是根据本技术实施例的一种可选的脚本测试装置的示意图,如图10所示,该装置包括:获取模块1001,用于获取待测试的多个脚本文件以及所述待测试的多个脚本文件所对应的目标拓扑文件,其中,所述目标拓扑文件由多个拓扑文件组成,每个所述拓扑文件与一个所述脚本文件相对应,所述目标拓扑文件至少包括多个逻辑设备之间的连接信息以及每个所述逻辑设备的设备描述信息;确定模块1002,用于根据所述连接信息以及所述设备描述信息从设备资源池中确定多个测试设备,其中,所述设备资源池由处于空闲状态的物理设备组成,每个所述逻辑设备与一个所述测试设备相对应;组网模块1003,用于根据所述连接信息对多个所述测试设备进行组网连接,得到测试床;测试模块1004,用于在所述测试床中并行测试多个所述脚本文件,得到测试结果。
[0104]
需要说明的是,上述获取模块1001、确定模块1002、组网模块1003以及测试模块1004对应于上述实施例中的步骤s101至步骤s104,四个模块与对应的步骤所实现的示例和
应用场景相同,但不限于上述实施例1所公开的内容。
[0105]
可选的,上述获取模块还包括:第一获取单元、第二获取单元、合并单元、第一生成单元以及第一确定单元。其中,第一获取单元,用于获取每个所述脚本文件所对应的拓扑文件,其中,每个所述拓扑文件中包括所述连接信息中的部分连接信息以及多个所述逻辑设备中至少一个所述逻辑设备的设备描述信息;第二获取单元,用于获取多个所述拓扑文件之间的公共内容以及差异内容;合并单元,用于合并多个所述拓扑文件中的公共内容,得到第一子文件;第一生成单元,用于基于所述差异内容生成第二子文件;第一确定单元,用于根据所述第二子文件与所述第一子文件确定所述目标拓扑文件。
[0106]
可选的,上述确定模块还包括:第二确定单元以及第三确定单元。其中,第二确定单元,用于根据所述连接信息以及所述设备描述信息确定测试设备信息,其中,所述测试设备信息至少包括每个测试设备的设备类型、每种设备类型的测试设备的设备数量以及每个测试设备所需的物理网口数量;第三确定单元,用于根据所述测试设备信息从所述设备资源池中确定多个所述测试设备。
[0107]
可选的,上述的组网模块还包括:第一检测单元、第四确定单元以及连接单元。其中,第一检测单元,用于检测每个所述测试设备上处于空闲状态的目标物理网口;第四确定单元,用于根据所述连接信息确定每个所述测试设备所对应的至少一个连接对象,其中,所述连接对象为与该测试设备存在直接连接关系的测试设备;连接单元,用于将每个所述测试设备上的目标物理网口与所述连接对象上的目标物理网口相连接,得到所述测试床。
[0108]
可选的,上述连接单元还包括:第一检测子模块、第一链路建立子模块以及第二链路建立子模块。其中,第一检测子模块,用于根据所述连接信息检测所述测试设备与所述连接对象之间是否存在多个连接链路;第一链路建立子模块,用于在所述测试设备与所述连接对象之间存在多个所述连接链路的情况下,通过所述目标物理网口中的子接口建立多个所述连接链路,其中,不同的连接链路所对应不同的子接口;第二链路建立子模块,用于在所述测试设备与所述连接对象之间存在一个所述连接链路的情况下,通过所述目标物理网口中的任意一个子接口建立该连接链路。
[0109]
可选的,脚本测试装置还包括:第一获取模块、读取模块、第一确定模块。其中,第一获取模块,用于获取目标接口标识以及子接口标识,其中,所述目标接口标识用于标识连接所述测试设备与所述连接对象的目标物理网口,所述子接口标识用于标识构成所述连接链路的子接口;读取模块,用于读取所述目标拓扑文件中每个所述逻辑设备上的逻辑网口的逻辑网口标识,其中,在所述目标拓扑文件中,具有连接关系的两个所述逻辑设备之间通过所述逻辑网口连接;第一确定模块,用于基于所述逻辑设备与所述测试设备的对应关系,确定所述目标接口标识与所述逻辑网口标识之间的第一映射关系,以及所述子接口标识与所述逻辑网口标识之间的第二映射关系。
[0110]
可选的,脚本测试装置还包括:分配模块、第二获取模块以及关联关系建立模块。其中,分配模块,用于在所述测试设备与所述连接对象之间存在多个所述连接链路的情况下,为每个所述连接链路分配对应的虚拟局域网,其中,不同虚拟局域网下的连接链路之间互相隔离;第一获取模块,用于获取每个所述虚拟局域网的局域网标识以及每个所述虚拟局域网所对应的连接链路的链路标识;关联关系建立模块,用于建立所述链路标识与所述局域网标识之间的关联关系。
[0111]
可选的,上述的测试模块还包括:第二生成单元以及启动单元。其中,第二生成单元,用于根据所述关联关系、所述第一映射关系以及所述第二映射关系生成测试床拓扑文件,其中,所述测试床拓扑文件至少包括多个所述测试设备之间的连接信息以及每个所述测试设备的设备描述信息;启动单元,用于依据所述测试床拓扑文件启动所述测试床中的测试设备,并在所述测试设备中并行运行多个所述脚本文件,得到所述测试结果。
[0112]
实施例3
[0113]
根据本技术实施例,还提供了一种电子设备,电子设备包括一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现用于运行程序,其中,所述程序被设置为运行时执行实施例1中的脚本测试方法。
[0114]
上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
[0115]
在本技术的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0116]
在本技术所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
[0117]
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0118]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0119]
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本技术各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0120]
以上所述仅是本技术的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本技术的保护范围。

技术特征:


1.一种脚本测试方法,其特征在于,包括:获取待测试的多个脚本文件以及所述待测试的多个脚本文件所对应的目标拓扑文件,其中,所述目标拓扑文件由多个拓扑文件组成,每个所述拓扑文件与一个所述脚本文件相对应,所述目标拓扑文件至少包括多个逻辑设备之间的连接信息以及每个所述逻辑设备的设备描述信息;根据所述连接信息以及所述设备描述信息从设备资源池中确定多个测试设备,其中,所述设备资源池由处于空闲状态的物理设备组成,每个所述逻辑设备与一个所述测试设备相对应;根据所述连接信息对多个所述测试设备进行组网连接,得到测试床;在所述测试床中并行测试多个所述脚本文件,得到测试结果。2.根据权利要求1所述的方法,其特征在于,获取目标拓扑文件,包括:获取每个所述脚本文件所对应的拓扑文件,其中,每个所述拓扑文件中包括所述连接信息中的部分连接信息以及多个所述逻辑设备中至少一个所述逻辑设备的设备描述信息;获取多个所述拓扑文件之间的公共内容以及差异内容;合并多个所述拓扑文件中的公共内容,得到第一子文件;基于所述差异内容生成第二子文件;根据所述第二子文件与所述第一子文件确定所述目标拓扑文件。3.根据权利要求1所述的方法,其特征在于,根据所述连接信息以及所述设备描述信息从设备资源池中确定多个测试设备,包括:根据所述连接信息以及所述设备描述信息确定测试设备信息,其中,所述测试设备信息至少包括每个测试设备的设备类型、每种设备类型的测试设备的设备数量以及每个测试设备所需的物理网口数量;根据所述测试设备信息从所述设备资源池中确定多个所述测试设备。4.根据权利要求1所述的方法,其特征在于,根据所述连接信息对多个所述测试设备进行组网连接,得到测试床,包括:检测每个所述测试设备上处于空闲状态的目标物理网口;根据所述连接信息确定每个所述测试设备所对应的至少一个连接对象,其中,所述连接对象为与该测试设备存在直接连接关系的测试设备;将每个所述测试设备上的目标物理网口与所述连接对象上的目标物理网口相连接,得到所述测试床。5.根据权利要求4所述的方法,其特征在于,将每个所述测试设备上的目标物理网口与所述连接对象上的目标物理网口相连接,包括:根据所述连接信息检测所述测试设备与所述连接对象之间是否存在多个连接链路;在所述测试设备与所述连接对象之间存在多个所述连接链路的情况下,通过所述目标物理网口中的子接口建立多个所述连接链路,其中,不同的连接链路所对应不同的子接口;在所述测试设备与所述连接对象之间存在一个所述连接链路的情况下,通过所述目标物理网口中的任意一个子接口建立该连接链路。6.根据权利要求5所述的方法,其特征在于,在根据所述连接信息对多个所述测试设备进行组网连接,得到测试床之后,所述方法还包括:
获取目标接口标识以及子接口标识,其中,所述目标接口标识用于标识连接所述测试设备与所述连接对象的目标物理网口,所述子接口标识用于标识构成所述连接链路的子接口;读取所述目标拓扑文件中每个所述逻辑设备上的逻辑网口的逻辑网口标识,其中,在所述目标拓扑文件中,具有连接关系的两个所述逻辑设备之间通过所述逻辑网口连接;基于所述逻辑设备与所述测试设备的对应关系,确定所述目标接口标识与所述逻辑网口标识之间的第一映射关系,以及所述子接口标识与所述逻辑网口标识之间的第二映射关系。7.根据权利要求6所述的方法,其特征在于,在根据所述连接信息对多个所述测试设备进行组网连接,得到测试床之后,所述方法还包括:在所述测试设备与所述连接对象之间存在多个所述连接链路的情况下,为每个所述连接链路分配对应的虚拟局域网,其中,不同虚拟局域网下的连接链路之间互相隔离;获取每个所述虚拟局域网的局域网标识以及每个所述虚拟局域网所对应的连接链路的链路标识;建立所述链路标识与所述局域网标识之间的关联关系。8.根据权利要求7所述的方法,其特征在于,在所述测试床中并行测试多个所述脚本文件,得到测试结果,包括:根据所述关联关系、所述第一映射关系以及所述第二映射关系生成测试床拓扑文件,其中,所述测试床拓扑文件至少包括多个所述测试设备之间的连接信息以及每个所述测试设备的设备描述信息;依据所述测试床拓扑文件启动所述测试床中的测试设备,并在所述测试设备中并行运行多个所述脚本文件,得到所述测试结果。9.一种脚本测试装置,其特征在于,包括:获取模块,用于获取待测试的多个脚本文件以及所述待测试的多个脚本文件所对应的目标拓扑文件,其中,所述目标拓扑文件由多个拓扑文件组成,每个所述拓扑文件与一个所述脚本文件相对应,所述目标拓扑文件至少包括多个逻辑设备之间的连接信息以及每个所述逻辑设备的设备描述信息;确定模块,用于根据所述连接信息以及所述设备描述信息从设备资源池中确定多个测试设备,其中,所述设备资源池由处于空闲状态的物理设备组成,每个所述逻辑设备与一个所述测试设备相对应;组网模块,用于根据所述连接信息对多个所述测试设备进行组网连接,得到测试床;测试模块,用于在所述测试床中并行测试多个所述脚本文件,得到测试结果。10.一种电子设备,其特征在于,所述电子设备包括一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现用于运行程序,其中,所述程序被设置为运行时执行所述权利要求1-8任一项中所述的脚本测试方法。

技术总结


本申请公开了一种脚本测试方法、装置及电子设备。其中,该方法包括:获取待测试的多个脚本文件以及待测试的多个脚本文件所对应的目标拓扑文件,其中,目标拓扑文件由多个拓扑文件组成,每个拓扑文件与一个脚本文件相对应,目标拓扑文件至少包括多个逻辑设备之间的连接信息以及每个逻辑设备的设备描述信息;根据连接信息以及设备描述信息从设备资源池中确定多个测试设备,其中,设备资源池由处于空闲状态的物理设备组成,每个逻辑设备与一个测试设备相对应;根据连接信息对多个测试设备进行组网连接,得到测试床;在测试床中并行测试多个脚本文件,得到测试结果。本申请解决了现有技术中脚本测试效率低的技术问题。技术中脚本测试效率低的技术问题。技术中脚本测试效率低的技术问题。


技术研发人员:

程磊 熊棚 张悦 刘婷婷 张西昌 郑小敏

受保护的技术使用者:

山石网科通信技术股份有限公司

技术研发日:

2022.10.13

技术公布日:

2023/1/19


文章投稿或转载声明

本文链接:http://www.wtabcd.cn/zhuanli/patent-1-78816-0.html

来源:专利查询检索下载-实用文体写作网版权所有,转载请保留出处。本站文章发布于 2023-01-26 04:32:35

发表评论

验证码:
用户名: 密码: 匿名发表
评论列表 (有 条评论
2人围观
参与讨论