admin管理员组

文章数量:1532460


2024年6月8日发(作者:)

(19)中华人民共和国国家知识产权局

(12)发明专利说明书

(21)申请号 CN2.X

(22)申请日 2009.06.25

(71)申请人 成都市华为赛门铁克科技有限公司

地址 611731 四川省成都市天辰路88号电子科技大学高新科技园

(72)发明人 邱国平 杨敬腾

(74)专利代理机构 北京同立钧成知识产权代理有限公司

代理人 刘芳

(51)

H04L12/26

H04L29/06

(10)申请公布号 CN 101931564 A

(43)申请公布日 2010.12.29

权利要求说明书 说明书 幅图

(54)发明名称

协议异常测试方法和系统、测试设

备及控制设备

(57)摘要

本发明公开了一种协议异常测试方

法和系统、测试设备及控制设备。该方法

包括获取测试信息,所述测试信息包括待

测报文名及异常字段值;用与所述待测报

文名相对应的报文与被测设备进行报文协

商,所述报文中包含有所述异常字段值,

所述被测设备与测试设备为同类设备;查

询被测设备报文协商后的工作状态,获得

测试结果。通过本发明实施例可以降低开

发成本,减少开发时间,使测试的协商报

文更全面。

法律状态

法律状态公告日

法律状态信息

法律状态

权 利 要 求 说 明 书

1.一种协议异常测试方法,其特征在于,包括:

获取测试信息,所述测试信息包括待测报文名及异常字段值;

用与所述待测报文名相对应的报文与被测设备进行报文协商,所述报文中包含有所

述异常字段值,所述被测设备与测试设备为同类设备;

查询被测设备报文协商后的工作状态,获得测试结果。

2.根据权利要求1所述的协议异常测试方法,其特征在于,所述用与所述待测报文

名相对应的报文与被测设备进行报文协商包括:

根据控制设备的控制命令,向所述被测设备发送与所述待测报文名相对应的协商报

文;

或者

返回所述被测设备发送的协商报文的响应报文,所述响应报文与所述待测报文名相

对应。

3.根据权利要求1所述的协议异常测试方法,其特征在于,所述查询被测设备报文

协商后的工作状态,获得测试结果包括:

向所述被测设备发送查询信息;

当在预设的时间范围内接收到所述被测设备返回的所述查询信息的应答信息时,则

所述被测设备工作正常;

当在预设的时间范围内未接收到所述被测设备返回的所述查询信息的应答信息时,

则所述被测设备工作异常。

4.一种协议异常测试方法,其特征在于,包括:

向测试设备发送测试信息,所述测试信息包含待测报文名和异常字段值;

控制所述测试设备与被测设备用与所述待测报文名相对应的报文进行报文协商,所

述报文中包含有所述异常字段值,所述被测设备与测试设备为同类设备;

查询被测设备报文协商后的工作状态,获取测试结果。

5.根据权利要求4所述方法,其特征在于,所述控制所述测试设备与被测设备用与

所述待测报文名相对应的报文进行报文协商包括:

向所述测试设备发送测试命令,控制所述测试设备向被测设备发送与所述待测报文

名相对应的报文;或者

向所述被测设备发送测试命令,控制所述被测设备向测试设备发送报文,所述测试

设备向所述被测设备返回的响应报文与所述待测报文名相对应的。

6.根据权利要求4或5所述的方法,其特征在于,所述查询被测设备报文

协商后的工作状态,获取测试结果包括:

向所述被测设备发送查询信息;

当在预设的时间范围内接收到所述被测设备返回的所述查询信息的应答信息时,则

所述被测设备工作正常;

当在预设的时间范围内未接收到所述被测设备返回的所述查询信息的应答信息时,

则所述被测设备工作异常。

7.一种测试设备,其特征在于,包括:

接收模块,用于获取测试信息,所述测试信息包括待测报文名及异常字段值;

报文协商模块,用于用与所述待测报文名相对应的报文与被测设备进行报文协商,

所述报文中包含有所述异常字段值,所述被测设备与测试设备为同类设备;

测试结果获取模块,查询被测设备报文协商后的工作状态,获得测试结果。

8.根据权利要求7所述的测试设备,其特征在于,所述接收模块还用于接收控制设

备的测试命令;

所述报文协商模块包括:

发送单元,用于根据所述接收模块接收的测试命令向被测设备主动发送与所述待测

报文名相对应的包括所述异常字段值的协商报文;或者,用于返回所述被测设备发

送的协商报文的响应报文,所述响应报文与所述待测报文名相对应的,所述响应报

文中包括所述异常字段值;

异常字段植入单元,用于将所述接收模块所接收的测试信息中的异常字段值植入与

所述待测报文名相对应的协商报文或所述响应报文中。

9.一种控制设备,其特征在于,包括:

发送模块,用于向测试设备发送测试信息,所述测试信息包含待测报文名和异常字

段值;

控制模块,用于控制所述测试设备与被测设备用与所述待测报文名相对应的报文进

行报文协商,所述报文中包含有所述异常字段值,所述被测设备与测试设备为同类

设备;

结果获取模块,用于查询被测设备报文协商后的工作状态,获得测试结果。

10.根据权利要求9所述的控制设备,其特征在于,所述控制模块包括:

第一控制单元,用于向所述测试设备发送测试命令,控制所述测试设备主动向被测

设备发送与所述待测报文名相对应的报文,所述报文中包括所述异常字段值;

第二控制单元,用于向所述被测设备发送测试命令,控制所述被测设备向测试设备

发送报文,所述测试设备向所述被测设备返回的响应报文与所述待测报文名相对应,

所述响应报文中包括所述异常字段值。

11.根据权利要求9所述的控制设备,其特征在于,所述结果获取模块包括:

工作状态查询单元,用于向所述被测设备发送查询信息;

测试结果获取单元,用于当在预设的时间范围内接收到所述被测设备返回的所述查

询信息的应答信息时,确定所述被测设备工作正常;当在预设的时间范围内未接收

到所述被测设备返回的所述查询信息的应答信息时,确定所述被测设备工作异常。

12.一种协议异常测试系统,其特征在于,包括被测设备、测试设备和控制设备,

其中:

所述控制设备,用于向所述测试设备发送测试信息,控制所述测试设备或者被测设

备主动发起所述测试设备与所述被测设备之间的报文协商过程,所述测试信息包括

待测报文名及异常字段值;

所述测试设备,用于利用与所述待测报文名对应的报文与所述被测设备进行报文协

商,所述报文中包含有所述异常字段值,并通过查询被测设备报文协商后的工作状

态,获知被测设备的协议异常测试结果,所述被测设备与测试设备为同类设备。

13.根据权利要求12所述的系统,其特征在于,所述控制设备通过串口、远程网络

Telnet或者安全壳SSH方式与所述测试设备及所述被测设备连接。

说 明 书

技术领域

本发明涉及网络通信技术,特别涉及一种协议异常测试方法和系统、测试设备及控

制设备。

背景技术

利用互联网通信时,有时会出现通信故障,这些故障有很大一部分是由于安全产品

在协议处理方面不够健壮引起的,例如,当设置有某一安全产品的设备接收到外来

的异常报文后,若该安全产品缺乏合法性判断和保护功能,则很可能导致该设备的

重启或关键功能失效。而重启或关键功能失效引起的问题往往是致命的,对用户危

害性极大,对公司产品造成极坏的负面影响。因此,协议异常测试在安全产品测试

中具有至关重要的地位。目前的协议异常测试方案包括采用专用的硬件测试设备或

者专用的软件测试工具。

现有专用的硬件测试设备或者专用的软件测试工具是通过该专用的硬件测试设备或

者装载有专用的软件测试工具的PC机与被测设备进行报文协商,测试设备或者

PC机将异常值植入发送给被测设备的协商报文中,通过报文协商过程中被测设备

的状态(正常工作或者重启等)获知测试结果。

由于报文协商的主动端和被动端的协议状态必须一致,否则无法通过进行报文协商,

因此现有专用测试设备(作为主动端)中需要开发和维护协议状态机,以能够对不同

的被测设备进行测试,而开发协议状态机需要较高的开发成本及开发周期。同时,

现有技术中由于测试设备只能作为主动端发起报文协商,只能将异常值(字段值)植

入发送给被测设备的协商报文中进行测试,而不能将异常值植入响应报文中进行测

试,因此,被测试的报文也不全面,影响测试质量。

发明内容

本发明实施例提供了一种协议异常测试方法和系统、测试设备及控制设备,降低了

测试成本,提高了测试质量。

本发明实施例提供了一种协议异常测试方法,包括:

获取测试信息,所述测试信息包括待测报文名及异常字段值;

用与所述待测报文名相对应的报文与被测设备进行报文协商,所述报文中包含有所

述异常字段值,所述被测设备与测试设备为同类设备;

查询被测设备报文协商后的工作状态,获得测试结果。

本发明实施例还提供了一种协议异常测试方法,包括:

向测试设备发送测试信息,所述测试信息包含待测报文名和异常字段值;

控制所述测试设备与被测设备用与所述待测报文名相对应的报文进行报文协商,所

述报文中包含有所述异常字段值,所述被测设备与测试设备为同类设备;

查询被测设备报文协商后的工作状态,获取测试结果。

本发明实施例提供了一种测试设备,包括:

接收模块,用于获取测试信息,所述测试信息包括待测报文名及异常字段值;

报文协商模块,用于用与所述待测报文名相对应的报文与被测设备进行报文协商,

所述报文中包含有所述异常字段值,所述被测设备与测试设备为同类设备;

测试结果获取模块,查询被测设备报文协商后的工作状态,获得测试结果。

本发明实施例提供了一种控制设备,包括:

发送模块,用于向测试设备发送测试信息,所述测试信息包含待测报文名和异常字

段值;

控制模块,用于控制所述测试设备与被测设备用与所述待测报文名相对应的报文进

行报文协商,所述报文中包含有所述异常字段值,所述被测设备与测试设备为同类

设备;

结果获取模块,用于查询被测设备报文协商后的工作状态,获得测试结果。

本发明实施例提供了一种协议异常测试系统,包括被测设备、测试设备和控制设备,

其中:

所述控制设备,用于向所述测试设备发送测试信息,控制所述测试设备或者被测设

备主动发起所述测试设备与所述被测设备之间的报文协商过程,所述测试信息包括

待测报文名及异常字段值;

所述测试设备,用于利用与所述待测报文名对应的报文与所述被测设备进行报文协

商,所述报文中包含有所述异常字段值,并通过查询被测设备报文协商后的工作状

态,获知被测设备的协议异常测试结果,所述测试设备为与所述被测设备同类的设

备。

由上述技术方案可知,本发明实施例所述测试方法中,通过控制设备向测试设备或

者被测设备发送启动报文协商的过程,可以使测试设备或者被测设备主动发起报文

协商,使测试设备可以在发给被测设备的协商报文及发送给被测设备的响应报文中

携带异常的字段值,使被测报文更全面,提高测试质量,同事,由于测试设备与被

测设备具有相同的协议状态,无需在测试设备端重新开发和维护协议状态机,也降

低了测试成本。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有

技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅

是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的

前提下,还可以根据这些附图获得其他的附图。

图1为现有技术采用的基于报文协商的报文异常检测方法过程示意图;

图2为本发明实施例一提供的协议异常测试方法的流程示意图;

图3为本发明实施例二提供的协议异常测试方法的流程示意图;

图4为本发明实施例三提供的协议异常测试方法的流程示意图;

图5为本发明实施例四提供的协议异常测试方法的流程示意图;

图6为本发明实施例五提供的测试设备的结构示意图;

图7为本发明实施例六提供的控制设备的结构示意图;

图8为本发明实施例七提供的协议异常测试系统的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整

地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。

基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得

的所有其他实施例,都属于本发明保护的范围。

为更清楚的描述本发明实施例,先简述一下现有技术中的协议异常测试方法,如图

1所示,图1为现有技术采用的基于报文协商的报文异常检测方法过程示意图,如

图所示,以基于以太网点对点协议(Point to Point Protocol over Ethernet,PPPoE)为

例,包括:

步骤11:主动端向被动端发送PPPoE初始化(PPPoE Active Discovery Initiation,

PADI)报文。

步骤12:被动端向主动端发送PPPoE服务提供(PPPoE Active Discovery Offer,

PADO)报文。

步骤13:主动端向被动端发送PPPoE请求(PPPoE Active Discovery Request,

PADR)报文。

步骤14:被动端向主动端发送PPPoE会话(PPPoE Active Discovery Session-

Confirmation,PADS)报文。

在图1所示报文协商过程中,后续报文的发送和接收必须建立在前面报文接收和发

送的基础上,例如,PADR报文的发送必须在本端(被动端)已接收PADO报文,且

成功处理后才能进行。因此,在主动端和被动端需要建立协议状态机,用于判断前

面的报文是否成功处理。并且现有技术中由于测试设备只是作为主动端发起报文协

商,例如,如图1所示,只能将异常值植入PADI报文和PADR报文中,而不能将

异常值植入PADO报文和PADS报文中,因此测试的报文不全面,影响测试质量。

下面将对本发明实施例采用的技术方案进行详细描述。

为更清楚的理解本发明实施例,先简要阐述一下本发明实施例的主要技术思路:

1、采用与被测设备具有相同协议状态的设备作为测试设备,使测试设备不用专门

开发和维护状态协议机。具体的,可以将与被测设备同类的设备作为测试设备,例

如,若被测设备为路由器,则测试设备为与该路由器同类的路由器,这里“同类”的

含义是两者的协议状态机相同。因此,由于测试设备中已存在与被测设备相同的协

议状态机,无需重新开发协议状态机,可以降低开发成本,减少开发周期。

2、采用控制设备控制测试设备或被测设备主动发起报文协商,使得测试设备可以

在发给被测设备的协商报文中植入异常值,也可以在响应被测设备发送的协商报文

的响应报文中植入异常值,使测试全面。例如,当测试设备作为主动端时,可以测

试PADI报文和PADR报文,当被测设备作为主动端时,可以测试PADO报文和

PADS报文,实现可以测试100%的报文。

下面将对本发明实施例进行具体描述:

图2为本发明实施例一提供的协议异常测试方法的流程示意图,包括:

步骤21:测试设备获取测试信息,所述测试信息包括待测报文名及异常字段值;

具体的,测试设备需要向控制设备获取测试信息。

步骤22:测试设备用与所述待测报文名相对应的报文与被测设备进行报文协商,

所述报文中包含有所述异常字段值,所述被测设备与测试设备为同类设备;

具体地,测试设备可以根据控制设备的控制命令,主动向所述被测设备发送与所述

待测报文名相对应的协商报文,并在所述协商报文中植入所述异常字段值,即在待

测试的报文中的待测字段植入异常字段值。同样的,被测设备也可以根据控制设备

的控制命令主动发起报文协商,则测试设备可以在向被测设备返回的响应报文中植

入所述异常字段,所述响应报文与所述待测报文名相对应。

本发明实施例中,由于测试设备与被测设备为同类设备,因此,测试设备可以方便

的提供与被测设备相同的协议状态,而无需重新开发和维护状态协议机。具体的,

可以通过将与被测设备同类的设备通过改造作为测试设备,使该设备具有接收控制

设备命令的接口,从而能够使控制设备通过命令行方式将待测试信息(包括待测报

文和异常字段值)下发给测试设备,并能够控制测试设备发起协议测试。

步骤23:测试设备查询被测设备报文协商后的工作状态,获得测试结果。

具体包括:测试设备向所述被测设备发送查询信息;当在预设的时间范围内接收到

所述被测设备返回的所述查询信息的应答信息时,则所述被测设备工作正常,即认

为所述被测设备在经过异常协议测试后没有死机,具有抵挡异常协议报文的能力,

即比较健壮;当在预设的时间范围内未接收到所述被测设备返回的所述查询信息的

应答信息时,则视为所述被测设备经过异常协议报文测试后工作异常,即抵御异常

协议报文的能力较低,该设备不够健壮。

本实施例所述的测试方法,可以方便的提供与被测设备同类的协议状态,从而进行

协议测试,而无需通过开发和维护协议状态机来得到与不同的被测设备同类的协议

状态,只需要对被测设备进行一定的改造,使测试设备与控制设备之间以及被测设

备与控制设备之间能够进行通信,因此,可以降低测试成本、减少用于开发专用测

试设备的开发周期。并且通过测试设备主动发起或者被动接收与被测设备的报文协

商过程,可以在主动发送给被测设备的协商报文及发送给被测设备的响应报文中携

带异常的字段值,使对被测设备的协议测试更全面,提高测试质量。

图3为本发明实施例二提供的协议异常测试方法流程示意图,如图3所示,该过程

是从控制设备端描述该测试过程,包括:

步骤31:控制设备向测试设备发送测试信息,所述测试信息包含待测报文名和异

常字段值。

具体的,控制设备可以根据需要对待测协议中所有协商报文的所有字段进行分析,

获得测试信息。测试信息包括报文名、字段名和字段值,还可以包括序号、操作类

型、字段偏移和修改长度等信息。当然,可以理解的是,该测试信息也可以由控制

设备从外界(其他设备)直接获得。

步骤32:控制设备控制所述测试设备与被测设备用与所述待测报文名相对应的报

文进行报文协商,所述报文中包含有所述异常字段值,所述测试设备为与所述被测

设备同类的设备。

具体地,可以是控制设备向所述测试设备发送测试命令,控制所述测试设备主动向

被测设备发送与所述待测报文名相对应的报文,所述报文中包括所述异常字段值;

或者,也可以是控制设备向所述被测设备发送测试命令,控制所述被测设备向测试

设备发送报文进行报文协商,所述测试设备根据测试信息向所述被测设备返回响应

报文,该响应报文与所述待测报文名相对应,并在该响应报文中植入异常字段值,

用于测试被测设备对该异常报文的抵御能力。

可以理解的是,本领域技术人员可以知道,为了能将与被测设备同类的设备作为测

试设备,需要对将作为测试设备的设备进行一定的改造,使该设备具有接收控制设

备命令的接口,从而能够使控制设备通过命令行方式将待测试信息(包括待测报文

和异常字段值)下发给测试设备,并能够控制测试设备发起协议测试。

同样的,本领域技术人员可以知道,为了使被测设备能够接受控制设备的控制命令

主动发起报文协商,也需要对被测设备进行改造,使其具有接收控制设备控制命令

的通信接口。

步骤33:控制设备查询被测设备报文协商后的工作状态,获取测试结果。

具体的,控制设备可以向所述被测设备发送查询信息;当在预设的时间范围内接收

到所述被测设备返回的所述查询信息的应答信息时,则所述被测设备工作正常;当

在预设的时间范围内未接收到所述被测设备返回的所述查询信息的应答信息时,则

视为所述被测设备经过异常协议报文测试后工作异常,即抵御异常协议报文的能力

较低,该设备不够健壮。

或者,控制设备还可以向所述测试设备发送获取测试结果命令,控制设备根据所述

测试设备查询所述被测设备的工作状态后的返回结果获知测试结果。具体地,测试

设备接收到控制设备发送的获取测试结果命令后,向所述被测设备发送查询消息,

当在预设的时间范围内接收到所述被测设备返回的所述查询信息的应答信息时,即

视为所述被测设备在经过异常协议测试后工作正常,具有抵挡异常协议报文的能力,

比较健壮;当在预设的时间范围内未接收到所述被测设备返回的所述查询信息的应

答信息时,则视为所述被测设备在经过异常协议测试后工作异常,即抵御异常协议

报文的能力较低,该设备不够健壮。之后,测试设备将查询到的测试结果发送给控

制设备。

本实施例通过将与被测设备同类的设备作为测试设备,可以方便的提供与被测设备

同类的协议,从而进行协议测试,而无需通过开发和维护协议状态机来得到与不同

的被测设备同类的协议状态,只需要对被测设备进行一定的改造,使测试设备与控

制设备之间以及被测设备与控制设备之间能够进行通信,因此,可以降低测试成本、

减少用于开发专用测试设备的开发周期;并且通过测试设备主动发起或者被动接收

与被测设备的报文协商过程,可以在主动发送给被测设备的协商报文及发送给被测

设备的响应报文中携带异常的字段值,使对被测设备的协议测试更全面,提高测试

质量。

为更清楚的描述本发明实施例所述的技术方案,下面将根据报文协商发起端不同,

从整个测试系统的角度对该异常协议的测试方法进行详细描述。

图4为本发明实施例三提供的异常协议测试方法流程示意图,包括:

步骤401:控制设备启动测试。

步骤402:控制设备获取配置文件,该配置文件中包括测试信息,配置文件可以从

外界读取,也可以预先设置在控制设备内。

步骤403:控制设备根据配置文件建立有效的测试表,测试表包括一个或多个测试

信息。测试信息包括报文名、字段名和字段值,还可以包括如下信息:序号、操作

类型、字段偏移和修改长度等。

待测试的协议报文及字段等可以按照表1所示的格式:

表1

步骤404:控制设备根据测试表,判断是否存在待测的下一条记录,每条记录包括

报文名和字段名,若是,选择该记录,之后执行步骤405,否则,执行步骤419。

步骤405:控制设备判断是否存在该选择的记录下的待测的下一个字段值,即可以

测试一条记录的多个字段值,若是,选择该字段值,之后执行步骤406,否则,执

行步骤419。

在测试时,当字段值是1字节时,一般对字段值进行遍历测试(从0到255全部测

试),当字段值大于1字节时,可以取协议正常值范围中的最大值、最小值以及超

出范围的临界值等离散值。在配置字段值时,可以采用连续方式,也可以采用离散

方式,例如[00-FF]表示对字段进行0到255值进行遍历测试,[00,FF]表示只对0

和255值进行测试。

步骤406:控制设备将选择的记录及字段值(异常值)发送给测试设备,并向测试设

备发送触发测试命令,触发测试设备主动发起报文协商。

上述是将报文名和字段名作为一个整体进行循环测试的,可以理解的是,将报文名

和字段名分开进行循环测试。即可以使用如下步骤替代上述的步骤404-406,包括:

第一步,判断是否存在待测的下一个报文名,当存在时,选择该报文名,之后进入

第二步,否则,结束测试;第二步,判断是否存在该选择的报文名下的待测的下一

个字段名,当存在时,选择该字段名,之后进入第三步,否则,结束测试;第三步,

判断是否存在该选择的字段名下的待测的下一个字段值,当存在时,选择该字段值,

之后进入第四步,否则,结束测试;第四步,将选择的报文名、字段名和字段值都

发送给测试设备。

步骤407:控制设备进入等待状态,等待一定的报文协商时间。

可以理解的是,该报文协商时间是可以根据具体需要进行设置的,该报文协商时间

即测试设备和被测设备根据测试信息进行的报文协商时间。

步骤408:测试设备根据控制设备的触发测试命令触发测试,进入步骤409。

步骤409:测试设备判断待发送给被测设备的协商报文及字段是否与控制设备发送

的测试信息匹配,若是,执行步骤410,否则,执行步骤411。

在匹配判断时,当协商报文为控制设备发送的报文名对应的报文,且该协商报文的

某一字段为控制设备发送的字段名对应的字段时,表明该协商报文及字段与测试信

息匹配,否则为不匹配。

步骤410:测试设备将控制设备发送的字段值(异常值)填充在该选择的字段中,进

入步骤411。

步骤411:测试设备封装协商报文。

具体的,步骤409-411的过程可以采用如下的判断代码框架进行:

If(g_iPattMode==ENABLE&&

Strcmp(g_sPattPkg,[具体报文])==0&&

Strcmp(g_sPattField,[具体协议字段]==0))

{

//协议封装

//用控制设备发送过来的字段值g_sPattFldValue进行替换

}

其中,g_iPattMode:协议异常测试开关(全局变量)

g_sPattPkg:当前测试的协议报文标识(全局变量)

g_sPattField:当前测试的协议字段标识(全局变量)

g_sPattFldValue:当前测试的协议字段值(全局变量)

步骤412:测试设备将封装后的协商报文发送给被测设备,两者进行报文协商。

步骤413:控制设备在等待一定的协商时间(步骤407的等待时间到达)后,向测试

设备发送获取测试结果命令,进入步骤414。

步骤414:测试设备根据该获取测试结果命令向被测设备发送查询命令;

具体的,该查询命令可以是ping命令,通过ping命令查询被测设备的工作状态。

步骤415:测试设备获取测试结果;

例如,在测试设备采用ping命令时如果被测设备可能完整地将ping命令的数据返

回,表明测试结果为被测设备处于正常状态,如果测试设备中的ping程序在等不

到被测设备的返回数据时,提示超时(timeout)信息时,则此时的测试结果为被测设

备处于重启或复位等不正常状态。

步骤416:测试设备将得到的测试结果返回给控制设备。

上述是控制设备通过测试设备获取测试结果,可以理解的是,控制设备也可以直接

从被测设备获取测试结果,即可以用下述步骤替代上述的步骤413-416,包括:第

一步,控制设备向被测设备发送检测命令,例如,ping命令;第二步,控制设备获

取测试结果,例如,当采用ping命令时,若接收到被测设备返回的完整的ping命

令的数据,则获取测试结果为被测设备处于正常状态,当控制设备中的ping程序

在等不到被测设备的返回数据时,提示超时(timeout)信息时,这时得到测试结果为

被测设备处于重启或复位等不正常状态。

步骤417:控制设备保存测试结果,形成日志或报表。该步骤可选。

步骤418:控制设备向测试设备发送清除命令,指示测试设备清除测试信息。或者,

控制设备向测试设备发送显示命令,指示测试设备显示测试信息等。该步骤可选。

步骤419:结束。

本实施例通过采用与被测设备同类的设备作为测试设备,可以降低开发成本,减少

开发时间;采用控制设备控制测试设备发起报文协商,可以测试从测试设备到被测

设备方向上的协商报文。

图5为本发明实施例四提供的协议异常测试方法流程示意图,该过程从控制设备控

制被测设备端主动发起协议测试的过程对进行阐述,包括:

步骤501-505:与前述实施例中的步骤401-405相同。

步骤506:控制设备将选择的记录及字段值(异常值)发送给测试设备。

步骤507:控制设备向被测设备发送触发测试命令,触发被测设备主动发起报文协

商。

步骤508:控制设备进入等待状态,等待一定的协商时间(可配置)。

步骤509:被测设备接收到触发测试命令后,向测试设备发送协商报文,发起报文

协商。

步骤510:测试设备接收到被测设备发送的协商报文后,启动测试设备进行报文处

理。

步骤511:测试设备判断待发送给被测设备的响应报文及字段是否与控制设备发送

的测试信息匹配,若是,执行步骤512,否则,执行步骤513。

在匹配判断时,当响应报文为控制设备发送的报文名对应的报文,且该响应报文的

某一字段为控制设备发送的字段名对应的字段时,表明该响应报文及字段与测试信

息匹配,否则为不匹配。具体可以采用图4所述实施中的步骤409-411的判断方式。

步骤512-521:与第二实施例的步骤410-419相同。

本实施例通过采用与被测设备同类的设备作为测试设备,可以降低开发成本,减少

开发时间;采用控制设备控制被测设备发起报文协商,可以测试从被测设备到测试

设备方向上的协商报文的响应报文。

可以理解的是,本领域技术人员可以知道,在上述实施例中,控制设备可以通过命

令行方式,或者,通过套接字(socket)方式,将选择的测试信息发送给测试设备。

具体的,在采用命令行方式时,由于测试设备需要接收控制设备的命令及测试信息

等,因此,测试设备在与被测设备同类的基础上需要进行命令行改造和具有协议异

常代码植入功能:

1、命令行改造

对于测试设备命令行进行改造,要求控制设备能通过命令行将要测试的协议字段下

发测试设备中,要求提供以下命令:

协议异常测试控制开关命令,所述控制开关命令用于控制所述测试设备起止测试,

具体代码可以如:[undo]patt enable

协议异常测试字段配置清除命令,所述清除命令用于控制所述测试设备清除获取的

测试测试信息,具体代码可以如:patt clear

协议异常测试字段配置显示命令,所述显示命令用于控制所述测试设备显示获取的

测试测试信息,具体代码可以如:patt display

具体协议异常测试字段配置下发命令,用于下发测试信息,具体代码可以如:

patt pppoe<序号><操作类型><报文名><字段名><字段偏移

><修改长度><字段值>。

2、协议异常代码植入

根据具体的协议,在协议协商报文的封装过程中植入异常代码,需要检查协议异常

测试开关是否打开,然后检查协商报文和协议字段是否匹配,符合条件进行异常值

封装。其基本框架可以为:

If(g_iPattMode==ENABLE&&

Strcmp(g_sPattPkg,[具体报文])==0&&

Strcmp(g_sPattField,[具体协议字段]==0))

{

//协议封装

//用控制设备发送过来的字段值g_sPattFldValue进行替换

}

其中,g_iPattMode:协议异常测试开关(全局变量)

g_sPattPkg:当前测试的协议报文标识(全局变量)

g_sPattField:当前测试的协议字段标识(全局变量)

g_sPattFldValue:当前测试的协议字段值(全局变量)

图6为本发明实施例五提供的测试设备的结构示意图,包括接收模块61、报文协

商模块62和测试结果获取模块63。其中:

接收模块61,用于获取测试信息,所述测试信息包括待测报文名及异常字段值;

报文协商模块62,用于用与所述待测报文名相对应的报文与被测设备进行报文协

商,所述报文中包含有所述异常字段值,所述被测设备与测试设备为同类设备;

测试结果获取模块63,查询被测设备报文协商后的工作状态,获得测试结果。

进一步地,接收模块61还用于接收控制设备的测试命令。报文协商模块62包括发

送单元和异常字段植入单元,其中:

发送单元621,用于根据所述接收模块61接收的测试命令向被测设备主动发送与

所述待测报文名相对应的包括所述异常字段值的协商报文;或者,用于返回所述被

测设备发送的协商报文的响应报文,所述响应报文与所述待测报文名相对应,所述

响应报文中包括所述异常字段值;

异常字段植入单元622,用于将所述接收模块61所接收的测试信息中的异常字段

值植入与所述待测报文名相对应的协商报文或所述响应报文中。

本实施例通过将与被测设备同类的设备作为测试设备,可以方便的提供与被测设备

同类的协议,从而进行协议测试,而无需通过开发和维护协议状态机来得到与不同

的被测设备同类的协议状态,只需要对被测设备进行一定的改造,使测试设备与控

制设备之间以及被测设备与控制设备之间能够进行通信,因此,可以降低测试成本、

减少用于开发专用测试设备的开发周期;并且通过测试设备主动发起或者被动接收

与被测设备的报文协商过程,可以在主动发送给被测设备的协商报文及发送给被测

设备的响应报文中携带异常的字段值,使对被测设备的协议测试更全面,提高测试

质量。

图7为本发明实施例六提供的控制设备的结构示意图,包括发送模块71、控制模

块72和结果获取模块73。其中:

发送模块71,用于向测试设备发送测试信息,所述测试信息包含待测报文名和异

常字段值;

控制模块72,用于控制所述测试设备与被测设备用与所述待测报文名相对应的报

文进行报文协商,所述报文中包含有所述异常字段值,所述测试设备为与所述被测

设备同类的设备;

结果获取模块73,用于查询被测设备报文协商后的工作状态,获得测试结果。

具体地,控制模块72包括第一控制单元和第二控制单元,其中:

第一控制单元721,用于向所述测试设备发送测试命令,控制所述测试设备主动向

被测设备发送与所述待测报文名相对应的报文,所述报文中包括所述异常字段值;

第二控制单元722,用于向所述被测设备发送测试命令,控制所述被测设备向测试

设备发送报文,所述测试设备向所述被测设备返回的响应报文与所述待测报文名相

对应,所述响应报文中包括所述异常字段值。

具体的,结果获取模块73包括工作状态查询单元和测试结果获取单元,其中:

工作状态查询单元731,用于向所述被测设备发送查询信息;

测试结果获取单元732,用于当在预设的时间范围内接收到所述被测设备返回的所

述查询信息的应答信息时,确定所述被测设备工作正常;当在预设的时间范围内未

接收到所述被测设备返回的所述查询信息的应答信息时,确定所述被测设备工作异

常。

可以理解的是,工作状态查询单元731还可以用于向所述测试设备发送查询信息,

则此时测试结果获取单元732可以直接根据所述测试设备向所述被测设备查询后返

回的结果获得测试结果。具体可参见前述实施例,此处不再赘述。

本实施例通过采用与被测设备同类的设备作为测试设备,可以降低开发成本,减少

开发时间;采用控制设备控制测试设备或者被测设备发起报文协商,可以使测试的

协商报文更全面。

图8为本发明实施例七提供的协议异常测试系统的结构示意图,包括被测设备81、

测试设备82和控制设备83。其中:

控制设备83,用于向所述测试设备82发送测试信息,控制所述测试设备82或者

被测设备81主动发起所述测试设备82与所述被测设备81之间的报文协商过程,

所述测试信息包括待测报文名及异常字段值;

测试设备82,用于利用与所述待测报文名对应的报文与所述被测设备81进行报文

协商,所述报文中包含有所述异常字段值,并通过查询被测设备报文协商后的工作

状态,获知被测设备的协议异常测试结果,所述测试设备82为与所述被测设备81

同类的设备。

具体的,测试设备82可以包括命令行模块,所述命令行模块用于接收控制设备83

通过命令行方式发送的测试信息;或者,测试设备82包括守护程序模块,所述守

护程序模块用于接收控制设备83通过套接字(socket)方式发送的测试信息。在通讯

方式上,控制设备83可以通过串口、远程网络(Telnet)或者安全壳(Secure Shell,

SSH)方式与测试设备82或者与被测设备81连接。

在一些情况下,例如,控制设备83中只设置了一张网卡,为了实现控制设备与两

个设备(测试设备和被测设备)的通信,需要设置交换机,该交换机与所述被测设备、

测试设备和控制设备连接,用于使所述被测设备与控制设备及所述测试设备与控制

设备通信。

本实施例通过采用与被测设备同类的设备作为测试设备,可以降低开发成本,减少

开发时间;采用控制设备控制测试设备或者被测设备发起报文协商,可以使测试的

协商报文更全面。

现有技术中利用专用测试设备进行测试时,需要根据实际需要实现完整的协议状态

机,使测试设备与被测设备的协议状态一致,因此,需要非常清楚的知道被测设备

的协议实现细节,并开发相应的协议状态机,无疑会增加测试难度和代码量,势必

会增加开发周期和开发成本及人员投入。而在上述实施例中,由于测试设备是由同

类被测设备改造而成,较方便的实现了与被测设备协议状态一致,因此不需要另外

开发协议状态机,协议状态机由设备本身维护,开发难度大大降低,只需要进行命

令行改造和协议异常代码植入即可,从而加快开发进度,缩短开发周期,降低开发

成本。并且,上述实施例可以实现测试设备主动发起报文测试过程和测试设备被动

进行报文测试过程,实现测试的协商报文的全面性。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程

序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该

程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、

RAM、FLASH、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上实施例仅用以说明本发明的技术方案而非对其进行限制,尽

管参照较佳实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:

其依然可以对本发明的技术方案进行修改或者等同替换,而这些修改或者等同替换

亦不能使修改后的技术方案脱离本发明技术方案的精神和范围。


本文标签: 设备测试报文控制