CN108595320A - 一种测试方法及装置 - Google Patents
一种测试方法及装置 Download PDFInfo
- Publication number
- CN108595320A CN108595320A CN201810289176.1A CN201810289176A CN108595320A CN 108595320 A CN108595320 A CN 108595320A CN 201810289176 A CN201810289176 A CN 201810289176A CN 108595320 A CN108595320 A CN 108595320A
- Authority
- CN
- China
- Prior art keywords
- test
- tested
- equipment
- packet
- result
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3644—Software debugging by instrumenting at runtime
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/366—Software debugging using diagnostics
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例提供了一种测试方法及装置,属于网络技术领域。所述方法应用于测试设备,所述方法包括:获取待测试的测试用例,所述测试用例包括测试操作的操作说明,解析所述操作说明,获得操作列表,所述操作列表包括所述测试操作的操作内容和操作类型,根据所述操作内容和所述操作类型,生成所述测试用例对应的测试报文和/或测试命令,向待测试设备发送所述测试报文和/或测试命令,所述测试报文和/或测试命令用于对所述待测试设备进行测试,得到测试结果。采用本发明,可以提高测试效率。
Description
技术领域
本申请涉及网络技术领域,特别是涉及一种测试方法及装置。
背景技术
目前,软件测试是保证软件质量的重要环节,为了提高测试效率,人们通常采用自动测试的方式来模拟人工操作,完成对待测试设备的输入,并且对输出进行检验。
在进行自动测试时,测试人员会根据测试需求撰写测试脚本,然后将测试脚本下发至测试设备,测试设备则会根据测试脚本对待测试设备进行测试。例如,测试设备执行测试脚本后,会向待测试设备发送测试报文,待测试设备接收到测试报文后,向测试设备回复测试响应报文。测试设备可以输出测试响应报文,技术人员则可以根据待测试设备发送的测试响应报文与测试期望进行比较,从而得到测试结果。
然而,一个测试脚本通常为针对一个功能模块进行测试的脚本,而对待测试设备进行测试时一般需要对多个测试脚本进行测试,这样,就需要测试人员编写多个脚本,导致测试效率低下。
发明内容
本申请实施例的目的在于提供一种测试方法及装置,以实现提高测试效率。具体技术方案如下:
第一方面,提供了一种测试方法,所述方法包括:
获取待测试的测试用例,所述测试用例包括待执行的测试操作的操作说明;
解析所述操作说明,获得操作列表,所述操作列表包括所述测试操作的操作内容和操作类型;
根据所述操作内容和所述操作类型,生成所述测试操作对应的测试报文和/或测试命令;
向待测试设备发送所述测试报文和/或测试命令,所述测试报文和/或测试命令用于对所述待测试设备进行测试,得到测试结果。
可选的,所述获取待测试的测试用例,包括:
接收用户输入的测试用例文件,所述测试用例文件中包含至少一条测试用例;
从所述测试用例文件中读取待测试的测试用例。
可选的,所述根据所述操作内容和所述操作类型,生成所述测试用例对应的测试报文和/或测试命令,包括:
若所述操作类型为命令测试类型,则调用预设的命令生成函数,根据所述操作内容生成包含测试命令的测试报文和/或根据所述操作内容确定测试命令;
若所述操作类型为报文测试类型,则调用预设的通信报文生成函数,构造携带有所述操作内容的测试报文;
若所述操作类型为应用协议测试类型,则根据所述操作类型中应用协议的标识,确定所述应用协议对应的协议报文生成函数,并调用所述协议报文生成函数,根据所述操作内容生成测试报文。
可选的,所述操作列表还包括所述测试操作的测试期望,所述方法还包括:
接收所述待测试设备发送的操作结果,所述操作结果由所述待测试设备执行所述测试报文得到;
将所述操作结果与所述测试操作的测试期望进行匹配,根据匹配结果,获得通过测试操作对所述待测试设备进行测试的测试结果。
可选的,所述测试用例还包括测试点信息,所述方法还包括:
根据所述测试结果和所述测试点信息生成测试报告,输出所述测试报告。
第二方面,提供了一种测试装置,所述装置包括:
获取模块,用于获取待测试的测试用例,所述测试用例包括待执行的测试操作的操作说明;
解析模块,用于解析所述操作说明,获得操作列表,所述操作列表包括所述测试操作的操作内容和操作类型;
生成模块,用于根据所述操作内容和所述操作类型,生成所述测试操作对应的测试报文和/或测试命令;
测试模块,用于向待测试设备发送所述测试报文和/或测试命令,所述测试报文和/或测试命令用于对所述待测试设备进行测试,得到测试结果。
可选的,所述获取模块,包括:
接收子模块,用于接收用户输入的测试用例文件,所述测试用例文件中包含至少一条测试用例;
读取子模块,用于从所述测试用例文件中读取待测试的测试用例。
可选的,所述生成模块,包括:
第一生成子模块,用于若所述操作类型为命令测试类型,则调用预设的命令生成函数,根据所述操作内容生成包含测试命令的测试报文和/或根据所述操作内容确定测试命令;
构造子模块,用于若所述操作类型为报文测试类型,则调用预设的通信报文生成函数,构造携带有所述操作内容的测试报文;
第二生成子模块,用于若所述操作类型为应用协议测试类型,则根据所述操作类型中应用协议的标识,确定所述应用协议对应的协议报文生成函数,并调用所述协议报文生成函数,根据所述操作内容生成测试报文。
可选的,所述操作列表还包括所述测试操作的测试期望,所述装置还包括:
接收模块,用于接收所述待测试设备发送的操作结果,所述操作结果由所述待测试设备执行所述测试报文得到;
匹配模块,用于将所述操作结果与所述测试操作的测试期望进行匹配,根据匹配结果,获得通过所述测试操作对所述待测试设备进行测试的测试结果。
可选的,所述测试用例还包括测试点信息,所述装置还包括:
输出模块,用于根据所述测试结果和所述测试点信息生成测试报告,输出所述测试报告。
第三方面,提供了一种测试设备,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现第一方面所述的方法步骤。
第四方面,提供了一种机器可读存储介质,其特征在于,存储有机器可执行指令,在被处理器调用和执行时,所述机器可执行指令促使所述处理器:实现第一方面所述的方法步骤。
本发明实施例提供的测试方法,测试设备可以获取待测试的测试用例,测试用例包括待执行的测试操作的操作说明,测试设备解析操作说明,获得操作列表,操作列表包括测试操作的操作内容和操作类型,然后测试设备根据操作内容和操作类型,生成该测试操作对应的测试报文和/或测试命令,进而向待测试设备发送测试报文和/或测试命令,测试报文和/或测试命令用于对待测试设备进行测试,得到测试结果。基于本方案,无需测试人员编写具体的测试脚本,提高了测试效率。
当然,实施本申请的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的测试组网的架构图;
图2为本发明实施例提供的一种测试方法的方法流程图;
图3为本发明实施例提供的一种测试方法的示例;
图4为本发明实施例提供的一种测试装置的结构示意图;
图5为本发明实施例提供的一种测试装置的结构示意图;
图6为本发明实施例提供的一种测试装置的结构示意图;
图7为本发明实施例提供的一种测试装置的结构示意图;
图8为本发明实施例提供的一种测试装置的结构示意图;
图9为本发明实施例提供的测试设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本发明实施例提供了一种测试方法,该方法应用于测试设备,该测试设备可以是用于进行自动化测试的服务器。该测试设备可以与一台或多台待测试设备连接,以便对待测试设备进行自动化测试。如图1所示,为本发明实施例提供的测试组网的架构图,其中,该测试组网包括一台测试设备和两台待测试设备(即图中的Dut1和Dut2,其中,Dut是DeviceUnder Test的缩写,含义可以是待测试设备),测试设备可以通过telnet(远程登录)协议控制待测试设备,进行命令行的下发和设备信息的获取。测试设备中可以设置有多个网卡,并可以通过多个网卡进行telnet协议的控制访问和业务测试。需要说明的是,测试设备和被测设备之间也可以通过其他协议进行通信,本发明实施例不做限定。
当用户需要进行自动化测试时,用户可以根据测试需求来搭建测试组网,并配置网卡的IP地址和待测试设备的接口的IP地址,以使待测试设备和网卡之间的路由可达。用户还需要配置测试设备的接口和网卡的对应关系,以使测试设备可以通过某一指定网卡与待测试设备进行通信。另外,由于本发明实施例中的测试设备和待测试设备之间,是通过telnet协议进行通信的,因此,用户还需要设置待测试设备的telnet server(telnet服务)地址、以及用于进行telnet控制的端口。其中,用于进行telnet控制的端口和用于进行业务测试的端口可以是同一端口,也可以是不同端口。
本发明实施例中,测试设备可以根据用户输入的测试用例,自动构造测试报文,不需要测试仪发送报文、不需要对具体测试点进行脚本开发,从而实现对待测试设备的自动化测试。为了便于理解,本发明实施例首先对测试用例文件进行说明,具体内容如下:
测试用例文件(testFile)可以由至少一条测试用例组成,每条测试用例的结构可以如下:
测试用例ID | 测试点内容 | 测试点说明 | 操作说明 | 备注 |
其中,测试用例ID(identification,身份标识)为测试用例的标识,例如,用户在编写测试用例时,可以对测试用例进行编号,该编号即可作为该测试用例的标识。测试点内容用来描述测试的目标内容,为测试目标内容的描述信息,通常为一个字符串。测试点说明是对测试点内容的补充说明,比如针对该测试点进行测试时需要关注的主要内容。操作说明是用于描述对该测试点进行自动化测试时,测试设备所需要进行的操作的具体信息,本发明实施例中,操作说明通过正则表达式来编写,操作说明也可以通过其他方式编写,本发明实施例不做限定。
测试用例中,操作说明的具体格式可以如下所示:
Type | Dev:Port[/Dev:Port] | 操作与结果 |
其中,Type为测试操作的操作类型的标识。本发明实施例中,测试操作可以有三种类型,即命令测试类型、报文测试类型和应用协议测试类型。例如,命令测试类型的标识可以为1,报文测试类型的标识可以为2,应用协议测试类型的标识可以为3。另外,还可以存在其他测试操作的类型,本发明实施例不做限定。
Dev:Port[/Dev:Port]为测试设备及端口信息,和/或待测试设备及端口信息。其中,Dev表示设备,Port表示该设备上的端口。
当测试操作的类型为命令测试类型时,Dev:Port[/Dev:Port]的格式可以为Dev:Port,其中,Dev表示待测试设备,Port表示该待测试设备上的端口。
当测试操作的类型为报文测试类型或应用协议测试类型时,Dev:Port[/Dev:Port]的格式可以为:Dev:Port/Dev:port。其中,前面的Dev:Port是指操作发起方的设备与端口,后面的Dev:Port是指操作接收方的设备与端口。
操作与结果表示测试操作的操作内容以及该测试操作的测试期望。对不同的操作类型,操作与结果的内容是不相同的,具体如下。
当测试操作的类型为命令测试类型时,操作与结果的格式为:
<cmdStr_1,result_1><cmdStr_2,result_2>……<cmdStr_i,result_i>
其中,cmdStr_i表示第i个需要下发的测试命令;result_i表示在执行cmdStr_i命令后,需要从待测试设备获取的字符串信息。result_i的值可以为空,表示不需要获取信息。每一个<>包含的内容都有两项,前一项可以看作测试操作的操作内容(即操作),后一项可以看作测试操作的测试期望(即结果),这两项可以有一项为空。
当测试操作的类型为报文测试类型时,操作与结果的格式为:
<snd@Packet_1,rcv@Packet_1><rcv@Packet_2,snd@Packet_2>……<snd@Packet_i,rcv@Packet_i>
其中,snd表示发送报文,rcv表示接收报文,Packet_i表示报文的内容。Packet_i的格式如下:
<Ethernet报文头参数1=X,报文头参数2=Y>|<IP报文头参数i=M>|<TCP/UDP/ICMP报文头参数i=N>|<data a>
其中,报文头参数是指报文头中携带的参数,例如,IP报文头里面的源IP地址即为报文头参数,可以表示为:sip=10.1.1.1。Packet_i中,每一个<>包含的内容都有两项,前一项可以看作测试操作的操作内容(即操作),后一项可以看作测试操作的测试期望(即结果),这两项可以有一项为空。
当测试操作的类型为应用协议测试类型时,操作与结果的格式为:
propName(clientIP->ServerIP)<cld@optStr_1,srv@optStr_1><srv@optStr_2,c ld@optStr_2>……<srv@optStr_2,cld@optStr_2>
其中,propName为协议名称,如FTP(File Transfer Protocol,文件传输协议)、HTTP(HyperText Transfer Protocol,超文本传输协议)等。clientIP表示该协议中客户端的IP地址。ServerIP表示该协议中Server端的IP地址。cld@optStr_i表示客户端要进行的操作或者要获取的信息。srv@optStr_i表示Server端要进行的操作或者要获取的信息。每一个<>包含的内容都有两项,前一项可以看作测试操作的操作内容(即操作),后一项可以看作测试操作的测试期望(即结果),这两项可以有一项为空。<>包含的一对操作和结果中,cld@optStr_i和srv@optStr_i的顺序可以颠倒,也可以有一项为空。
图2为本申请实施例提供的一种测试方法的流程示意图,该方法包括:
步骤201,获取待测试的测试用例。
在实施中,测试设备可以获取待测试的测试用例。该测试用例可以由用户按照上述测试用例的格式编写好,然后输入到测试设备中,或者,用户也可以在测试设备上分别输入上述测试用例所包含的各项内容,由测试设备根据预先设置的用于生成测试用例的应用程序,自动生成测试用例。如上所述,测试用例包括测试操作的操作说明,还可以包括测试用例ID、测试点内容、测试点说明和备注等信息。其中,备注可以由用户根据测试需求编辑。
可选的,测试设备可以从测试用例文件中,解析出测试用例,相应的,步骤201的处理过程可以如下:接收用户输入的测试用例文件,测试用例文件中包含至少一条测试用例;从测试用例文件中读取待测试的测试用例。
在实施中,用户可以编写包含至少一条测试用例的测试用例文件。测试设备可以接收用户输入的测试用例文件,并从测试用例文件中依次读取测试用例,得到待测试的测试用例。具体的,每条测试用例可以包含其编号,测试设备中可以根据测试用例的编号,从测试用例文件中依次读取测试用例。
本发明实施例中,测试设备可以包括主模块、测试用例解析模块、测试用例执行模块、测试报告输出模块、测试用例执行模块、命令控制模块、报文收发模块和应用测试模块等。其中,主模块可以从测试用例文件中读取待测试的测试用例,并将该测试用例提交给测试用例解析模块进行解析。
步骤202,解析该操作说明,获得操作列表。
在实施中,测试设备从测试用例文件中读取出待测试的测试用例后,可以对该测试用例进行解析,获取该测试用例中的操作说明,进而可以对该操作说明进行解析,获得操作列表。对于操作说明通过正则表达式来编写的情况,测试设备可以对操作说明进行正则表达式解析,得到操作列表。该操作列表可以包括测试操作的操作内容和操作类型。另外,测试设备还可以从测试用例中,获取该测试用例的标识(即测试用例ID),以便后续进行测试。
其中,操作列表中每一项的格式可以如下:
Type | port | optType | opt | result |
其中,Type为上述测试用例中测试操作的类型的标识。本发明实施例中,测试操作可以有三种类型,即命令测试类型、报文测试类型和应用协议测试类型。例如,命令测试类型的标识可以为1,报文测试类型的标识可以为2,应用协议测试类型的标识可以为3。另外,还可以存在其他测试操作的类型,本发明实施例不做限定。
Port为测试实施时,测试设备使用的网卡端口。
optType为测试操作具体的执行类型,具体包括:
1、cmd,表示命令行操作;
2、snd,表示发送报文;
3、rcv,表示接收报文;
4、appProp:Clt,表示应用协议中的客户端,其中,appProp表示应用协议名称,Clt表示客户端;
5、appProp:Srv,表示应用协议中的Server端,其中,appProp表示应用协议名称,Srv表示Server端。
opt,表示操作内容,比如测试命令的具体内容、收发报文内容、或者应用协议需要操作的具体内容。
result,表示测试操作执行后,需要获取到的测试期望(即结果)。
需要说明的是,根据一条测试用例可以生成一条操作列表的表项,也可以生成至少一条操作列表的表项。
本发明实施例中,测试用例解析模块对测试用例进行正则表达式解析后,可以将获得的测试点的标识和操作列表提交给测试用例执行模块。
步骤203,根据操作内容和操作类型,生成测试操作对应的测试报文和/或测试命令。
在实施中,测试设备获得操作列表后,可以获取操作列表中的操作内容和操作类型,然后根据操作内容和操作类型,生成该测试用例对应的测试报文。具体的,测试用例执行模块可以获取操作列表中的操作类型,并根据该操作类型,调用相应的模块生成测试报文和/或测试命令。如上所述,测试操作的操作类型可以包括命令测试类型、报文测试类型和应用协议测试类型,相应的,步骤203的具体处理有以下三种情况。
情况一,若操作类型为命令测试类型,则调用预设的命令生成函数,根据操作内容生成包含测试命令的测试报文和/或根据所述操作内容确定测试命令。
在实施中,对于操作列表中的任一表项,测试设备可以获取该表项中的操作类型,如果操作类型为命令测试类型,则测试设备可以调用预设的命令生成函数,根据表项中的操作内容,生成包含该操作内容的测试命令,进而根据预设的传输协议,将该测试命令封装成测试报文。具体的,测试用例执行模块确定操作类型为命令测试类型,则可以调用命令控制模块,以使命令控制模块根据该表项中的操作内容,生成包含测试命令的测试报文,和/或根据所述操作内容确定测试命令。
例如:假设操作列表中的某一表项如下所示。
Type | port | optType | opt | result |
1 | 网卡1端口 | cmd | cmdStr_i | result_1 |
则测试命令的内容为cmdStr_i,测试设备根据telnet协议,将测试命令cmdStr_i传送到待测试设备。当然在另一种可选的实施中,可以生成包含测试命令cmdStr_i的测试报文,再将该测试报文发送给待测试设备。
情况二,若操作类型为报文测试类型,则调用预设的通信报文生成函数,构造携带有操作内容的测试报文。
在实施中,对于操作列表中的任一表项,测试设备可以获取该表项中的操作类型,如果操作类型为报文测试类型,则测试设备可以调用预设的通信报文生成函数,根据该表项中的操作内容,生成包含该操作内容的测试报文。具体的,测试用例执行模块确定操作类型为报文测试类型,则可以调用报文收发模块,以使报文收发模块根据该表项中的操作内容,构造包含该操作内容的测试报文。其中,操作内容包含以正则表达式表示的报文内容,如:<IP src10.1.1.1,dst=11.1.1.1><tcp Sport:1000,Dport:2000><Data:xxxx>。
例如:假设操作列表中的某一表项如下所示。
则报文的源IP地址为10.1.1.1,报文的目的IP地址为11.1.1.1,发送端(即测试设备)的TCP端口号为1000,接收端(即待测试设备)的TCP端口号为2000,报文的Data内容为xxxx,测试设备基于上述信息和通信报文生成函数,生成测试报文。
情况三,若操作类型为应用协议测试类型,则根据操作类型中应用协议的标识,确定应用协议对应的协议报文生成函数,并调用协议报文生成函数,根据操作内容生成测试报文。操作内容为包含正则表达式表示的报文内容,如:<IP src 10.1.1.1,dst=11.1.1.1><tcp Sport:2000,Dport:应用协议端口><Data:应用协议内容>
例如:假设操作列表中的某一表项如下所示。
则报文的源IP地址为10.1.1.1,报文的目的IP地址为11.1.1.1,客户端(即测试设备)的TCP端口号为2000,服务端(即待测试设备)的TCP端口号为应用协议端口,报文的Data内容为应用协议内容,测试设备基于上述信息和协议报文生成函数,生成测试报文。
在实施中,测试设备中可以预先存储用于生成各应用协议的报文的函数。对于操作列表中的任一表项,测试设备可以获取该表项中的操作类型,如果操作类型为应用协议测试类型,则测试设备可以进一步获取该表项中的应用协议的标识,进而根据该操作类型中应用协议的标识,确定应用协议对应的协议报文生成函数,然后调用该协议报文生成函数,根据操作内容生成测试报文。具体的,测试用例执行模块确定操作类型为应用协议测试类型,则可以调用应用测试模块,以使应用测试模块根据该表项中的操作内容生成测试报文。
步骤204,向待测试设备发送测试报文和/或测试命令,该测试报文和/或测试命令用于对待测试设备进行测试,得到测试结果。
在实施中,测试设备向待测试设备发送测试报文,以对待测试设备进行测试,比如下发命令行、通信报文或某应用协议的报文,以使待测试设备执行相应的处理,并返回操作结果。例如,测试设备可以通过发送携带有包含测试命令的测试报文,向待测试设备下发配置信息,待测试设备则会根据该测试命令进行相应的配置,然后可以向测试设备返回配置结果。又如,测试设备还可以模拟用户终端,向待测试设备发送业务报文(即测试报文为通信报文或某应用协议的报文),待测试设备则会根据业务报文,执行相应的业务处理,比如转发该业务报文,或者返回该业务报文所请求的业务数据等。其中,对于转发业务报文的情况,待测试设备可以将转发信息作为操作结果发送给测试设备,转发信息可以包括发送该业务报文的端口信息、以及接收该业务报文的网络设备的信息等。
在其他实施例中,测试设备可以向待测试设备发送测试命令,以对待测试设备进行测试。
另外,上述操作列表中还包括该测试操作的测试期望,测试设备则可以根据操作结果和测试期望确定测试结果,具体的处理过程可以为:接收待测试设备发送的操作结果,该操作结果由待测试设备执行该测试报文得到;将操作结果与测试操作的测试期望进行匹配,根据匹配结果,获得通过测试操作对待测试设备进行测试的测试结果。
在实施中,测试生成生成测试报文和/或测试命令后,可以向待测试设备发送该测试报文和/或测试命令,待测试设备接收到该测试报文和/或测试命令后,可以根据该测试报文和/或测试命令执行相应的处理,从而得到操作结果,然后将操作结果发送给测试设备。测试设备可以将接收到的操作结果与测试操作的测试期望进行匹配,得到匹配结果。例如,如果接收到的操作结果与测试期望相同,则判定二者相匹配,测试结果为成功;如果接收到的操作结果与测试期望不相同,则判定二者不匹配,测试结果为失败。其中,该步骤可以由上述命令控制模块、报文收发模块和应用测试模块执行。
可选的,测试用例还包括测试点信息,测试设备得到测试结果之后,还可以根据测试结果和测试点信息生成测试报告,并输出测试报告。
其中,测试点信息可以包括上述测试点内容和测试点说明。
在实施中,如果测试设备判定接收到的操作结果与测试期望不匹配(即该测试点测试失败),则可以获取该测试点的测试点信息(比如测试点的ID等信息),并在测试报告中记录该失败信息(比如操作内容、操作结果和操作期望等),然后生成测试报告。如果测试设备判定接收到的操作结果与测试期望匹配(即该测试点测试成功),则可以在测试报告中记录该测试点为测试成功的测试点,并按照顺序继续读取下一条测试用例。具体的,如果测试点测试成功,则可以将该测试点ID和成功信息,提交给测试报告输出模块输出测试报告,测试报告输出模块则会在该测试点标注Passed/Pass等标注成功的信息,如果测试点测试失败,则将该测试点ID和失败信息,提交给测试报告输出模块,测试报告输出模块将该测试点标注Failed/Pass等标注失败的内容,并在备注附上失败信息。
在实际中,不同厂家的产品,需要执行的命令行可能不同。采用本发明实施例提供的测试方法,只需要在操作说明中写明即可。测试设备会按照操作说明中的内容自动解析并下发测试报文,而不会关注下发的内容,实现了跨平台测试。而对于测试人员来说,只需要描述清楚测试拓扑和相关IP地址路由的设置,撰写好测试点的操作说明,就可以进行自动化测试,不需要编写具体的脚本,也不需要测试仪发送报文,从而提高了测试效率。
如图3所示,为本发明实施例提供的一种测试方法的示例,具体包括以下步骤。
步骤301,接收用户输入的测试用例文件。
步骤302,从测试用例文件中顺序读取一条测试用例。
步骤303,判断测试用例文件是否为空,如果是,则执行步骤304,否则,执行步骤305。
步骤304,输出测试报告,结束测试,并关闭测试用例文件。
步骤305,对操作说明进行解析,生成操作列表。
步骤306,获取操作列表actionList[i]、以及数组长度count,i==0。
步骤307,判断当前读取的表项i是否小于count,如果是,执行步骤308~312,否则,执行步骤313。
步骤308,type==1,操作类型为命令测试类型,将actionList[i]提交给命令控制模块,由命令控制模块执行。
步骤309,Type==2,,操作类型为报文测试类型,将actionList[i]提交给报文收发模块,进行报文的收发。
步骤310,Type==3,操作类型为应用协议测试类型,将actionList[i]提交给应用测试模块执行。
步骤311,判断测试点是否测试成功。如果是,返回步骤307,否则,执行步骤312。
步骤312,将测试点ID和失败信息,提交给测试报告输出模块,测试报告输出模块将该测试点标注Failed,并在备注附上失败信息。
步骤313,将测试点ID和成功信息提交给测试报告输出模块,测试报告输出模块在该测试点标注Passed信息。
本发明实施例提供的测试方法,测试设备可以获取待测试的测试用例,测试用例包括测试操作的操作说明,解析操作说明,获得操作列表,操作列表包括测试操作的操作内容和操作类型,然后测试设备根据操作内容和操作类型,生成测试用例对应的测试报文和/或测试命令,进而向待测试设备发送测试报文和/或测试命令,测试报文用于对待测试设备进行测试,得到测试结果。基于本方案,无需测试人员编写具体的测试脚本,提高了测试效率。
基于相同的技术构思,如图4所示,本发明实施例还提供了一种测试装置,该装置应用于测试设备,该装置包括:
获取模块410,用于获取待测试的测试用例,测试用例包括待执行的测试操作的操作说明;
解析模块420,用于解析操作说明,获得操作列表,操作列表包括测试操作的操作内容和操作类型;
生成模块430,用于根据操作内容和操作类型,生成测试操作对应的测试报文和/或测试命令;
测试模块440,用于向待测试设备发送测试报文和/或测试命令,该测试报文和/或测试命令用于对待测试设备进行测试,得到测试结果。
可选的,如图5所示,获取模块410,包括:
接收子模块411,用于接收用户输入的测试用例文件,测试用例文件中包含至少一条测试用例;
读取子模块412,用于从测试用例文件中读取待测试的测试用例。
可选的,如图6所示,生成模块430,包括:
第一生成子模块431,用于若操作类型为命令测试类型,则调用预设的命令生成函数,根据操作内容生成包含测试命令的测试报文和/或根据所述操作内容确定测试命令;
构造子模块432,用于若操作类型为报文测试类型,则调用预设的通信报文生成函数,构造携带有操作内容的测试报文;
第二生成子模块433,用于若操作类型为应用协议测试类型,则根据操作类型中应用协议的标识,确定应用协议对应的协议报文生成函数,并调用协议报文生成函数,根据操作内容生成测试报文。
可选的,操作列表还包括测试操作的测试期望,如图7所示,该装置还包括:
接收模块450,用于接收待测试设备发送的操作结果,操作结果由待测试设备执行测试报文得到;
匹配模块460,用于将操作结果与测试操作的测试期望进行匹配,根据匹配结果,获得通过测试操作对待测试设备进行测试的测试结果。
可选的,测试用例还包括测试点信息,如图8所示,该装置还包括:
输出模块470,用于根据测试结果和测试点信息生成测试报告,输出测试报告。
本发明实施例提供的测试方法,测试设备可以通过获取模块410获取待测试的测试用例,测试用例包括测试操作的操作说明,并通过解析模块420解析操作说明,获得操作列表,操作列表包括测试操作的操作内容和操作类型,然后测试设备通过生成模块430根据操作内容和操作类型,生成测试用例对应的测试报文,进而通过测试模块440向待测试设备发送测试报文和/或测试命令,测试报文和/或测试命令用于对待测试设备进行测试,得到测试结果。基于本方案,无需测试人员编写具体的测试脚本,提高了测试效率。
本发明实施例还提供了一种测试设备,如图9所示,包括处理器901、通信接口902、存储器903和通信总线904,其中,处理器901,通信接口902,存储器903通过通信总线904完成相互间的通信,
存储器903,用于存放计算机程序;
处理器901,用于执行存储器903上所存放的程序时,以使该测试设备执行如下步骤,该步骤包括:
获取待测试的测试用例,所述测试用例包括待执行的测试操作的操作说明;
解析所述操作说明,获得操作列表,所述操作列表包括所述测试操作的操作内容和操作类型;
根据所述操作内容和所述操作类型,生成所述测试操作对应的测试报文和/或测试命令;
向待测试设备发送所述测试报文和/或测试命令,所述测试报文和/或测试命令用于对所述待测试设备进行测试,得到测试结果。
可选的,所述获取待测试的测试用例,包括:
接收用户输入的测试用例文件,所述测试用例文件中包含至少一条测试用例;
从所述测试用例文件中读取待测试的测试用例。
可选的,所述根据所述操作内容和所述操作类型,生成所述测试用例对应的测试报文和/或测试命令,包括:
若所述操作类型为命令测试类型,则调用预设的命令生成函数,根据所述操作内容生成包含测试命令的测试报文和/或根据所述操作内容确定测试命令;
若所述操作类型为报文测试类型,则调用预设的通信报文生成函数,构造携带有所述操作内容的测试报文;
若所述操作类型为应用协议测试类型,则根据所述操作类型中应用协议的标识,确定所述应用协议对应的协议报文生成函数,并调用所述协议报文生成函数,根据所述操作内容生成测试报文。
可选的,所述操作列表还包括所述测试操作的测试期望,所述方法还包括:
接收所述待测试设备发送的操作结果,所述操作结果由所述待测试设备执行所述测试报文得到;
将所述操作结果与所述测试操作的测试期望进行匹配,根据匹配结果,获得通过测试操作对所述待测试设备进行测试的测试结果。
可选的,所述测试用例还包括测试点信息,所述方法还包括:
根据所述测试结果和所述测试点信息生成测试报告,输出所述测试报告。
机器可读存储介质可以包括RAM(Random Access Memory,随机存取存储器),也可以包括NVM(Non-Volatile Memory,非易失性存储器),例如至少一个磁盘存储器。另外,机器可读存储介质还可以是至少一个位于远离前述处理器的存储装置。
上述处理器可以是通用处理器,包括CPU(Central Processing Unit,中央处理器)、NP(Network Processor,网络处理器)等;还可以是DSP(Digital Signal Processing,数字信号处理器)、ASIC(Application Specific Integrated Circuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。
Claims (10)
1.一种测试方法,其特征在于,所述方法包括:
获取待测试的测试用例,所述测试用例包括待执行的测试操作的操作说明;
解析所述操作说明,获得操作列表,所述操作列表包括所述测试操作的操作内容和操作类型;
根据所述操作内容和所述操作类型,生成所述测试操作对应的测试报文和/或测试命令;
向待测试设备发送所述测试报文和/或测试命令,所述测试报文和/或测试命令用于对所述待测试设备进行测试,得到测试结果。
2.根据权利要求1所述的方法,其特征在于,所述获取待测试的测试用例,包括:
接收用户输入的测试用例文件,所述测试用例文件中包含至少一条测试用例;
从所述测试用例文件中读取待测试的测试用例。
3.根据权利要求1所述的方法,其特征在于,所述根据所述操作内容和所述操作类型,生成所述测试用例对应的测试报文和/或测试命令,包括:
若所述操作类型为命令测试类型,则调用预设的命令生成函数,根据所述操作内容生成包含测试命令的测试报文和/或根据所述操作内容确定测试命令;
若所述操作类型为报文测试类型,则调用预设的通信报文生成函数,构造携带有所述操作内容的测试报文;
若所述操作类型为应用协议测试类型,则根据所述操作类型中应用协议的标识,确定所述应用协议对应的协议报文生成函数,并调用所述协议报文生成函数,根据所述操作内容生成测试报文。
4.根据权利要求1所述的方法,其特征在于,所述操作列表还包括所述测试操作的测试期望,所述方法还包括:
接收所述待测试设备发送的操作结果,所述操作结果由所述待测试设备执行所述测试报文得到;
将所述操作结果与所述测试操作的测试期望进行匹配,根据匹配结果,获得通过所述测试操作对所述待测试设备进行测试的测试结果。
5.根据权利要求1所述的方法,其特征在于,所述测试用例还包括测试点信息,所述方法还包括:
根据所述测试结果和所述测试点信息生成测试报告,输出所述测试报告。
6.一种测试装置,其特征在于,所述装置包括:
获取模块,用于获取待测试的测试用例,所述测试用例包括待执行的测试操作的操作说明;
解析模块,用于解析所述操作说明,获得操作列表,所述操作列表包括所述测试操作的操作内容和操作类型;
生成模块,用于根据所述操作内容和所述操作类型,生成所述测试操作对应的测试报文和/或测试命令;
测试模块,用于向待测试设备发送所述测试报文和/或测试命令,所述测试报文和/或测试命令用于对所述待测试设备进行测试,得到测试结果。
7.根据权利要求6所述的装置,其特征在于,所述获取模块,包括:
接收子模块,用于接收用户输入的测试用例文件,所述测试用例文件中包含至少一条测试用例;
读取子模块,用于从所述测试用例文件中读取待测试的测试用例。
8.根据权利要求6所述的装置,其特征在于,所述生成模块,包括:
第一生成子模块,用于若所述操作类型为命令测试类型,则调用预设的命令生成函数,根据所述操作内容生成包含测试命令的测试报文和/或根据所述操作内容确定测试命令;
构造子模块,用于若所述操作类型为报文测试类型,则调用预设的通信报文生成函数,构造携带有所述操作内容的测试报文;
第二生成子模块,用于若所述操作类型为应用协议测试类型,则根据所述操作类型中应用协议的标识,确定所述应用协议对应的协议报文生成函数,并调用所述协议报文生成函数,根据所述操作内容生成测试报文。
9.根据权利要求6所述的装置,其特征在于,所述操作列表还包括所述测试操作的测试期望,所述装置还包括:
接收模块,用于接收所述待测试设备发送的操作结果,所述操作结果由所述待测试设备执行所述测试报文得到;
匹配模块,用于将所述操作结果与所述测试操作的测试期望进行匹配,根据匹配结果,获得通过所述测试操作对所述待测试设备进行测试的测试结果。
10.根据权利要求6所述的装置,其特征在于,所述测试用例还包括测试点信息,所述装置还包括:
输出模块,用于根据所述测试结果和所述测试点信息生成测试报告,输出所述测试报告。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810289176.1A CN108595320B (zh) | 2018-04-03 | 2018-04-03 | 一种测试方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810289176.1A CN108595320B (zh) | 2018-04-03 | 2018-04-03 | 一种测试方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108595320A true CN108595320A (zh) | 2018-09-28 |
CN108595320B CN108595320B (zh) | 2022-03-22 |
Family
ID=63624282
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810289176.1A Active CN108595320B (zh) | 2018-04-03 | 2018-04-03 | 一种测试方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108595320B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109656831A (zh) * | 2018-12-26 | 2019-04-19 | 北京物芯科技有限责任公司 | 测试报文集中化生成方法、装置、设备和存储介质 |
CN110554956A (zh) * | 2019-07-31 | 2019-12-10 | 交控科技股份有限公司 | 一种bdms自动化测试方法 |
CN114721957A (zh) * | 2022-04-14 | 2022-07-08 | 合肥卓讯云网科技有限公司 | 一种软硬件自动化测试方法和装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100694248B1 (ko) * | 2006-04-25 | 2007-03-27 | 충남대학교산학협력단 | 네트워크 보안시스템의 보안 정책 테스트 장치 및 방법 |
CN102158370A (zh) * | 2011-04-12 | 2011-08-17 | 瑞斯康达科技发展股份有限公司 | 一种自动化测试方法和系统 |
CN105389259A (zh) * | 2015-12-11 | 2016-03-09 | 广州华多网络科技有限公司 | 一种进行应用程序测试的方法、装置及系统 |
EP3026564A1 (en) * | 2014-11-25 | 2016-06-01 | Synchronoss Technologies, Inc. | An error simulator for a test platform |
CN105808419A (zh) * | 2014-12-30 | 2016-07-27 | 平安科技(深圳)有限公司 | 应用测试方法及终端 |
CN105868100A (zh) * | 2015-12-22 | 2016-08-17 | 乐视网信息技术(北京)股份有限公司 | 基于Android系统的自动化测试方法及装置 |
CN107547299A (zh) * | 2017-06-01 | 2018-01-05 | 新华三信息安全技术有限公司 | 一种测试方法及系统 |
CN107729237A (zh) * | 2017-10-09 | 2018-02-23 | 郑州云海信息技术有限公司 | 一种软件性能测试的方法、装置、计算机装置及存储介质 |
-
2018
- 2018-04-03 CN CN201810289176.1A patent/CN108595320B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100694248B1 (ko) * | 2006-04-25 | 2007-03-27 | 충남대학교산학협력단 | 네트워크 보안시스템의 보안 정책 테스트 장치 및 방법 |
CN102158370A (zh) * | 2011-04-12 | 2011-08-17 | 瑞斯康达科技发展股份有限公司 | 一种自动化测试方法和系统 |
EP3026564A1 (en) * | 2014-11-25 | 2016-06-01 | Synchronoss Technologies, Inc. | An error simulator for a test platform |
CN105808419A (zh) * | 2014-12-30 | 2016-07-27 | 平安科技(深圳)有限公司 | 应用测试方法及终端 |
CN105389259A (zh) * | 2015-12-11 | 2016-03-09 | 广州华多网络科技有限公司 | 一种进行应用程序测试的方法、装置及系统 |
CN105868100A (zh) * | 2015-12-22 | 2016-08-17 | 乐视网信息技术(北京)股份有限公司 | 基于Android系统的自动化测试方法及装置 |
CN107547299A (zh) * | 2017-06-01 | 2018-01-05 | 新华三信息安全技术有限公司 | 一种测试方法及系统 |
CN107729237A (zh) * | 2017-10-09 | 2018-02-23 | 郑州云海信息技术有限公司 | 一种软件性能测试的方法、装置、计算机装置及存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109656831A (zh) * | 2018-12-26 | 2019-04-19 | 北京物芯科技有限责任公司 | 测试报文集中化生成方法、装置、设备和存储介质 |
CN110554956A (zh) * | 2019-07-31 | 2019-12-10 | 交控科技股份有限公司 | 一种bdms自动化测试方法 |
CN110554956B (zh) * | 2019-07-31 | 2023-05-23 | 交控科技股份有限公司 | 一种bdms自动化测试方法 |
CN114721957A (zh) * | 2022-04-14 | 2022-07-08 | 合肥卓讯云网科技有限公司 | 一种软硬件自动化测试方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108595320B (zh) | 2022-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109491905A (zh) | 前端测试方法、装置及电子设备 | |
CN104219340B (zh) | 一种arp应答代理方法以及装置 | |
CN105553977B (zh) | 请求消息的处理、发送方法及装置 | |
CN108595320A (zh) | 一种测试方法及装置 | |
CN104468363B (zh) | 页面重定向方法、路由设备、终端设备及系统 | |
CN106856434A (zh) | 访问请求转换的方法和装置 | |
CN107402880A (zh) | 一种测试方法及电子设备 | |
CN108964943A (zh) | 一种实现ioam封装的方法及装置 | |
CN104767714B (zh) | 一种用户标识与用户资源信息的关联方法、终端及系统 | |
CN106569951B (zh) | 一种脱离页面的Web测试方法 | |
CN109495870A (zh) | 蓝牙测试的方法和装置 | |
US20140198790A1 (en) | Data link layer analysis with packet trace replay | |
CN107547299A (zh) | 一种测试方法及系统 | |
CN106487610A (zh) | 双环网络误码率测试方法和装置 | |
CN106559289A (zh) | Sslvpn网关的并发测试方法及装置 | |
CN106878194A (zh) | 一种报文处理方法和装置 | |
CN108683704A (zh) | 一种Socket网络通信测试方法及其系统、存储介质 | |
CN108667732A (zh) | 一种报文转发方法及装置 | |
CN106789391A (zh) | 一种路由器dhcp功能的自动化测试方法及装置 | |
CN104270282B (zh) | 一种ip网络端到端测试方法和装置 | |
CN106105098B (zh) | 交换机及业务请求报文的处理方法 | |
CN102291274B (zh) | 一种实现网络测试仪表自动适配的系统及方法 | |
CN108111367A (zh) | 性能测试方法及装置 | |
CN107231398A (zh) | 信息交互方法及装置 | |
CN110069413A (zh) | 测试数据通信、测试方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |