一种自动化测试方法及系统与流程

文档序号:11410744阅读:334来源:国知局
一种自动化测试方法及系统与流程

本发明涉及软件测试技术领域,具体来讲是一种自动化测试方法及系统。



背景技术:

自动化测试的主要工作量体现在测试脚本的编写和测试环境的搭建、维护。测试脚本的编写在于人力投入及测试脚本底层接口的完善。而由于测试脚本对测试环境的依赖太强,当需要移植脚本到新环境时,会产生大规模的脚本修改或者测试组网的改变,从而会花费大量的人力和时间。

目前,为了减少测试脚本对测试环境的依赖,业界常用的方法主要是:定义真实环境的初始化文件,该文件包含实际设备的ip(internetprotocol,网络之间互连的协议)地址、端口类型和连接情况等基本配置;测试脚本中调用设备时,直接通过调用该文件中设备的ip地址telnet(远程终端协议)、ssh(secureshell,安全壳协议)等登录进行操作。

这种方案可以获得一定的可移植性,但是依旧存在很大的局限性:这种方法没有解决脚本对测试物理环境的依赖。具体来说,由于测试脚本中使用的设备和链路是固定在真实环境中的某个设备和链路上的,因此,需要移植该测试脚本时,依然需要修改该初始化文件或者改变测试组网,从而使得自动化测试,尤其是测试集运行的效率明显降低。



技术实现要素:

本发明的目的是为了克服上述背景技术的不足,提供一种自动化测试方法及系统,能解决测试脚本对测试环境的依赖问题,不但能提高测试脚本的可移植性、减少测试组网搭建和脚本修改投入人力成本,而且测试效率高。

为达到以上目的,本发明提供一种自动化测试方法,该测试方法包括以下步骤:a、解析测试床文件以及所有测试用例的测试拓扑文件;b、比较解析过的测试拓扑文件,将相同的测试拓扑文件进行合并并排序;c、按照重新排序后的顺序,将一个测试拓扑文件中的所有逻辑设备与测试床文件中的物理设备进行映射匹配并占有;d、若测试床文件中的所有物理设备均匹配映射到了,则执行步骤c中完成映射匹配的测试拓扑文件中的所有相关的测试用例。

在上述技术方案的基础上,所述测试床文件包括物理设备描述信息、设备连接描述信息和设备匹配优先级信息;所述测试拓扑文件包括强制匹配信息和逻辑设备描述信息。

在上述技术方案的基础上,步骤c的具体流程为:

c1:按照重新排序后的顺序,检查当前测试拓扑文件中定义的某个逻辑设备是否与测试床文件中的物理设备有强制映射,若有,则转入步骤c2,否则转入步骤c3;

c2:直接执行强制映射,转入步骤c7;

c3:进行多元组映射,转入步骤c4;

c4:成功进行多元组映射后,判断测试床文件中是否有多个物理设备符合该测试拓扑文件中对该逻辑设备的描述,若是,转入步骤c5,否则转入步骤c6。

c5:进行优先级映射,将测试床文件中标注优先级高的物理设备匹配给当前测试拓扑文件中的该逻辑设备,转入步骤c7;

c6:将测试床文件中第一个匹配到的物理设备映射当前测试拓扑文件中的该逻辑设备,转入步骤c7。

c7:检测当前测试拓扑文件中所有逻辑设备是否匹配映射完成,若是,转入步骤s5,否则,重复步骤c1~c7,完成当前测试拓扑文件中其他逻辑设备的匹配映射。

在上述技术方案的基础上,步骤d中,若测试床文件中还有物理设备需要匹配映射,在测试床文件中剔除已被匹配占有的物理设备后,将剩余设备与按照排序的下一个测试拓扑文件进行映射匹配,若有能匹配上的就并行执行前后两个测试拓扑文件中的所有相关的测试用例。

本发明还提供一种基于上述方法的自动化测试系统,该系统包括解析模块、测试拓扑文件合并模块、映射匹配模块和执行模块。所述解析模块用于:解析测试床文件以及所有测试用例的测试拓扑文件,并向测试拓扑文件合并模块发送合并信号;所述测试拓扑文件合并模块用于:收到合并信号后,比较解析过的测试拓扑文件,将相同的测试拓扑文件进行合并并排序,并向映射匹配模块发送映射匹配信号;所述映射匹配模块用于:收到映射匹配信号后,按照重新排序后的顺序,将一个测试拓扑文件中的所有逻辑设备与测试床文件中的物理设备进行映射匹配并占有,并向执行模块发送执行信号;所述执行模块用于:收到执行信号后,若测试床文件中的所有物理设备均匹配映射到了,则执行映射匹配模块用于完成映射匹配的测试拓扑文件中的所有相关的测试用例。

在上述技术方案的基础上,所述测试床文件包括:物理设备描述信息、设备连接描述信息和设备匹配优先级信息;所述测试拓扑文件包括:强制匹配信息和逻辑设备描述信息。

在上述技术方案的基础上,所述映射匹配模块包括强制映射匹配子模块、多元组映射匹配子模块、优先级映射匹配子模块和映射匹配检测子模块:

所述强制映射匹配子模块用于:收到映射匹配信号后,按照重新排序后的顺序,检查当前测试拓扑文件中定义的某个逻辑设备是否与测试床文件中的物理设备有强制映射,若有,则执行强制映射,并向映射匹配检测子模块发送检测信号,否则,向多元组映射匹配子模块发送多元组映射信号;

所述多元组映射匹配子模块用于:收到多元组映射信号后,进行多元组映射,并在成功进行多元组映射后向优先级映射匹配子模块发送优先级映射信号;

所述优先级映射匹配子模块用于:收到优先级映射信号后,判断测试床文件中是否有多个物理设备符合该测试拓扑文件中对该逻辑设备的描述,若是,进行优先级映射,将测试床文件中标注优先级高的物理设备匹配给当前测试拓扑文件中的该逻辑设备,并向映射匹配检测子模块发送检测信号;否则,将测试床文件中第一个匹配到的物理设备映射当前测试拓扑文件中的该逻辑设备,并向映射匹配检测子模块发送检测信号;

所述映射匹配检测子模块用于:收到检测信号后,检测当前测试拓扑文件中所有逻辑设备是否匹配映射完成,若是,向执行模块发送执行信号,否则,向强制映射匹配子模块发送映射匹配信号。

在上述技术方案的基础上,所述执行模块还包括剩余资源映射执行子模块,该剩余资源映射执行子模块用于:若测试床文件中还有物理设备需要匹配映射,在测试床文件中剔除已被匹配占有的物理设备后,将剩余设备与按照排序的下一个测试拓扑文件进行映射匹配,若有能匹配上的就并行执行前后两个测试拓扑文件中的所有相关的测试用例。

在上述技术方案的基础上,所述解析模块包括测试床文件解析子模块和测试拓扑文件解析子模块;所述测试床文件解析子模块用于:解析测试床文件,并向测试拓扑文件合并模块发送合并信号;所述测试拓扑文件解析子模块用于:解析所有测试用例的测试拓扑文件,并向测试拓扑文件合并模块发送合并信号。

本发明的有益效果在于:

(1)本发明通过将测试床文件中的物理设备与测试脚本中的测试拓扑文件中的逻辑设备进行映射匹配(即通过将拓扑组网逻辑来描述被测设备),从而达到隔离测试脚本和物理设备的依赖的目的,使测试用例具备了平滑移植的可行性,极大提高了自动化测试集的可维护性、可移植性,减少测试组网搭建和脚本修改投入的人力成本。并且,本发明将测试脚本中相同的测试拓扑文件进行合并,使得相同的测试拓扑文件与测试床文件匹配一次就可以将相关的所有的测试用例跑完,不但避免了重复跑测试用例的问题,而且节约了匹配映射花费的时间,测试效率高。

(2)本发明还采用了一种剩余资源再匹配的测试思路,当上一个测试拓扑文件从测试床文件里匹配到设备并占有后,若测试床文件中还有剩余资源(剩余设备)未被映射匹配到,则可以选择后面的测试拓扑文件在测试床文件剩余的资源里进行匹配,如果有匹配上的就并行执行前后两个测试拓扑文件中的所有相关的测试用例,这种剩余资源再匹配的并行执行方式,减少了测试脚本执行的时间,进一步提高了测试的执行效率。

附图说明

图1为本发明实施例中自动化测试方法的流程图;

图2为本发明实施例中tbd文件、topo文件、测试脚本的匹配映射关系示意图;

图3为本发明实施例中tbd文件、topo文件、测试脚本的关系示意图;

图4为本发明实施例中自动化测试系统的结构框图。

具体实施方式

下面结合附图及具体实施例对本发明作进一步的详细描述。

参见图1所示,本发明实施例提供一种自动化测试方法,包括以下步骤:

步骤s1:解析测试床文件,转入步骤s2。

可以理解的是,测试床文件,简称tbd(testbed)文件,是来描述实际测试环境中的所有物理设备及其相关属性的,不同的测试环境可以用不同的tbd文件来描述。tbd文件可以由多种格式描述,在本发明实施例中,采用.txt后缀名文件来描述,且该tbd文件在包括一般的物理设备描述和设备连接描述的属性外,还增设有设备匹配优先级信息,当两个设备都能匹配上时,可通过查看优先级参数来决定具体该如何匹配。具体来说,tbd文件包括的物理设备描述信息、设备连接描述信息以及设备匹配优先级信息的具体内容为:

(1)设备描述信息

设备类型(type):设备的具体型号;

设备名(name):设备名称,被设备连接和拓扑中强制映射引用;

设备接口(interface):设备的端口;

设备访问通道(access):登录设备所用接口;

(2)设备连接描述信息

链路连接(link):设备间的链路,格式如下:

链路名称,设备名1设备接口/ip、掩码---设备名2设备接口/ip、掩码;

(3)设备匹配优先级信息

优先级(priority):0~7级,7级的优先级最高,默认为0级。

步骤s2:解析所有测试用例的测试拓扑文件,转入步骤s3。

可以理解的是,测试拓扑文件(简称,topo文件)包含于测试脚本(用于完成对被测试设备的命令下发、结果检查操作)中,且topo文件中有该测试脚本运行所需要的被测试设备逻辑描述。本发明实施例中,topo文件包括设备类型、连接等必选的逻辑设备描述信息,还包括强制映射的描述信息,而这些设备需要到tbd文件中去匹配并占有。具体来说,topo文件包括的内容为以下两部分:

(1)强制匹配信息部分

强制映射(force):为tbd文件中设备的名字,默认不强制映射;

(2)逻辑设备描述信息部分

逻辑设备名:逻辑设备名称,脚本中直接调用;

逻辑设备类型:设备的类型,用来和tbd文件中设备进行匹配;

逻辑设备连接:描述逻辑设备连接,和tbd文件中的链路连接进行匹配;

逻辑接口:接口名称、接口类型,直接被脚本应用。

topo文件严格按照一定格式描述,保持一个良好的可解析性。topo中逻辑设备匹配上tbd文件中的设备后,将继承tbd文件中该设备的所有属性。tbd文件、topo文件、测试脚本的匹配映射关系如图2所示。而测试脚本中需要调用设备名称、设备接口等全部应用topo文件中定义的,这样把脚本和物理设备完全隔离开,大大的增强了脚本的可移植性,可维护性。tbd文件、topo文件、测试脚本的关系如图3所示。

步骤s3:比较解析过的topo文件,将相同的topo文件合并并排序(就是使所有具有相同拓扑的测试用例公用一个topo文件,只需要映射一次),转入步骤s4。

可以理解的是,相同的topo文件合并,是指系统检查发现测试集里的topo文件有相同的后,内部排序将这些相同的topo文件合并在一起,这样只需要将相同的某个topo文件和tbd匹配一次就可以将相关的所有的测试用例跑完,不但避免了重复测试的操作,而且节约了匹配映射花费的时间。

步骤s4:按照重新排序后的顺序,将一个topo文件中的所有逻辑设备与tbd文件中的物理设备进行映射匹配并占有,转入步骤s5。

参加图1所示,实际操作时,步骤s4具体包括以下流程:

步骤s401:按照重新排序后的顺序,检查当前topo文件中定义的某个逻辑设备是否与tbd中的物理设备有强制映射,若有,则转入步骤s402;否则,转入步骤s403。

步骤s402:直接执行强制映射,转入步骤s407。

步骤s403:进行多元组映射,转入步骤s404。

步骤s404:成功进行多元组映射后,判断tbd中是否有多个设备符合该topo文件中对该逻辑设备的描述(即判断是否需要进行优先级映射),若是,转入步骤s405;否则转入步骤s406。

步骤s405:进行优先级映射,将tbd中标注优先级高的设备匹配给当前topo文件中的该逻辑设备,转入步骤s407。

步骤s406:将tbd中第一个匹配到的设备映射当前topo文件中的该逻辑设备,转入步骤s407。

步骤s407:检测当前topo文件中所有设备是否匹配映射完成,若是,转入步骤s5,否则,重复步骤s301~s307,完成当前topo文件中其他设备的匹配映射。

步骤s5:判断tbd中是否所有的物理设备均匹配映射到了,若是,则转入步骤s6,否则,表示tbd中还有剩余资源(剩余设备)需要匹配,则转入步骤s7。

步骤s6:执行当前测试集(当前测试集为步骤s4中完成映射匹配的那个合并后的topo文件)中的所有相关的测试用例,结束。

步骤s7:在tbd中剔除已被步骤s4中所述topo文件匹配占有的设备后,将tbd中的剩余设备与按照排序的下一个topo文件进行映射匹配,若有能匹配上的就并行执行前后两个topo文件中的所有相关的测试用例(即之前完成映射匹配的topo文件和这次完成映射匹配的topo文件的所有相关的测试用例),结束。

从步骤s5~s7可以看出,本发明实施例采用一种剩余资源再匹配的测试思路,当上一个topo文件从tbd文件里匹配到设备并占有后,若tbd中还有剩余资源(剩余设备)未被映射匹配到,则可以选择后面的topo文件在tbd剩余的资源里进行匹配,如果有匹配上的就并行执行前后两个topo文件中的所有相关的测试用例,这种剩余资源再匹配的并行执行方式,进一步提高了测试的执行效率。

参见图4所示,本发明实施例还提供一种基于上述方法的自动化测试系统,该测试系统包括解析模块、测试拓扑文件合并模块、映射匹配模块和执行模块。其中:

解析模块用于:解析测试床文件以及所有测试用例的测试拓扑文件,并向测试拓扑文件合并模块发送合并信号。具体来说,所述解析模块包括测试床文件解析子模块和测试拓扑文件解析子模块。测试床文件解析子模块,用于解析测试床文件,并向测试拓扑文件合并模块发送合并信号。测试拓扑文件解析子模块,用于解析所有测试用例的测试拓扑文件,并向测试拓扑文件合并模块发送合并信号。

测试拓扑文件合并模块用于:收到合并信号后,比较解析过的测试拓扑文件,将相同的测试拓扑文件进行合并并排序,并向映射匹配模块发送映射匹配信号。

映射匹配模块用于:收到映射匹配信号后,按照重新排序后的顺序,将一个测试拓扑文件中的所有逻辑设备与测试床文件中的物理设备进行映射匹配并占有,并向执行模块发送执行信号。

进一步的,参加图4所示,所述映射匹配模块包括强制映射匹配子模块、多元组映射匹配子模块、优先级映射匹配子模块和映射匹配检测子模块。所述强制映射匹配子模块用于:收到映射匹配信号后,按照重新排序后的顺序,检查当前测试拓扑文件中定义的某个逻辑设备是否与测试床文件中的物理设备有强制映射,若有,则执行强制映射,并向映射匹配检测子模块发送检测信号,否则,向多元组映射匹配子模块发送多元组映射信号。所述多元组映射匹配子模块用于:收到多元组映射信号后,进行多元组映射,并在成功进行多元组映射后向优先级映射匹配子模块发送优先级映射信号。所述优先级映射匹配子模块用于:收到优先级映射信号后,判断测试床文件中是否有多个物理设备符合该测试拓扑文件中对该逻辑设备的描述,若是,进行优先级映射,将测试床文件中标注优先级高的物理设备匹配给当前测试拓扑文件中的该逻辑设备,并向映射匹配检测子模块发送检测信号;否则,将测试床文件中第一个匹配到的物理设备映射当前测试拓扑文件中的该逻辑设备,并向映射匹配检测子模块发送检测信号。所述映射匹配检测子模块用于:收到检测信号后,检测当前测试拓扑文件中所有逻辑设备是否匹配映射完成,若是,向执行模块发送执行信号,否则,向强制映射匹配子模块发送映射匹配信号。

执行模块用于:收到执行信号后,若测试床文件中的所有物理设备均匹配映射到了,则执行映射匹配模块用于完成映射匹配的测试拓扑文件中的所有相关的测试用例。

更进一步的,参加图4所示,所述执行模块还包括剩余资源映射执行子模块,该剩余资源映射执行子模块用于:若测试床文件中还有物理设备需要匹配映射,在测试床文件中剔除已被匹配占有的物理设备后,将剩余设备与按照排序的下一个测试拓扑文件进行映射匹配,若有能匹配上的就并行执行前后两个测试拓扑文件中的所有相关的测试用例。

需要说明的是:上述实施例提供的系统在进行自动化测试时,仅以上述各功能模块的划分进行举例说明,实际应用中,可根据需要将上述功能分配由不同的功能模块完成,即将系统的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。

本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。

本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1