本发明涉及通信技术领域,具体地,涉及一种协议互操作性测试方法及装置。
背景技术:
随着通信技术的飞速发展,通信网络规模越来越大,包含的设备也越来越多、越来越复杂,各种软硬件层出不穷,为了让不同生产厂家的产品互连起来可以正常工作,就需要进行产品间的互通测试。此时,通信协议就是互连互通的关键。目前主要有两种协议测试技术:协议互操作性测试和协议一致性测试。虽然协议一致性测试是保证互操作性的一个必要的步骤,但是由于协议描述本身的模糊、一致性测试的不彻底、厂商对协议实现的扩充等原因的存在,通过协议一致性测试的协议实现体不一定能正确互操作。
协议互操作性测试主要是为检验两个或多个协议实现是否可以进行正常交互提供期望的服务。通常采用已通过权威操作性测试的标准实现与被测实现进行正确交互,从而验证被测实现的可靠性和稳定性。
目前的协议互操作性测试的研究工作尽管已经非常深入,但还只是停留在理论上,无法在实际测试中起到指导作用。在实际的产品协议开发及后续的测试中,一般在本地开发测试环境通过串口工具连接硬件产品,并通过抓包工具做进一步的人工分析。该方法测试效率比较低,人工操作工作量大,不适用于远程、大规模地产品互操作验证。
技术实现要素:
本发明旨在至少解决现有技术中存在的技术问题之一,提出了一种协议互操作性测试方法及装置,其能够实现协议互操作性测试序列生成、协议数据解析、测试结果分析的自动化,从而可以提高测试及分析效率,而且能够应用于大规模产品的互操作验证。
为实现本发明的目的而提供一种协议互操作性测试方法,包括:
生成并执行测试序列;
监听所述测试序列,并采集至少一个被测实现的协议数据;
解析所述协议数据,并生成测试结果;
将所述测试结果与预期结果进行对比,并记录对比结果;
根据所述对比结果生成协议互操作性测试报告。
优选的,所述生成并执行测试序列包括:
配置测试协议、测试场景和测试执行步骤;
在协议指令信息库中检索与所述测试执行步骤对应的协议指令;
解析所述协议指令;
根据所述协议指令生成测试序列;
按所述测试场景和所述测试执行步骤执行所述测试序列。
优选的,所述测试序列包括引导部分、执行部分和测试部分。
优选的,所述协议数据包括测试序列、所述被测实现的接收数据和发送数据。
优选的,所述解析所述协议数据,并生成测试结果包括:
应用模式匹配方法对所述协议数据进行匹配,并根据匹配结果判断所述协议数据的协议类型;
针对所述协议类型解析所述协议数据,并生成测试结果;
为所述测试结果建立协议树;所述协议树的父节点标识所述协议类型,所述协议树的子节点标识协议字段及字段值,从而解析获得与所述测试执行步骤对应的所述被测实现的所有输出所述协议数据的帧格式。
优选的,所述将所述测试结果与预期结果进行对比,并记录对比结果包括:
预先存储预期结果;所述预期结果为与所述测试执行步骤对应的标准实现返回的协议数据的帧格式;该帧格式通过建立协议树,并解析标识获得;
定位所述测试协议的协议树节点,并对比所述测试结构的协议树和所述预期结果的协议树的子节点标识协议字段及字段值,并记录对比结果。
优选的,所述根据所述对比结果生成协议互操作性测试报告包括:
设置对比结果过滤规则,以过滤与所述被测实现的唯一性标识相关的比对差异字段,并生成协议互操作性测试报告。
作为另一个技术方案,本发明提供一种协议互操作性测试装置,其包括:
序列生成单元,用于生成并执行测试序列;
协议数据采集单元,用于监听所述测试序列,并采集至少一个被测实现的协议数据;
协议数据解析单元,用于解析所述协议数据,并生成测试结果;
对比单元,用于将所述测试结果与预期结果进行对比,并记录对比结果;
测试结果报告单元,用于根据所述对比结果生成协议互操作性测试报告。
优选的所述序列生成单元包括:
配置模块,用于配置测试协议、测试场景和测试执行步骤;
检索模块,用于在协议指令信息库中检索与所述测试执行步骤对应的协议指令;
解析模块,用于解析所述协议指令;
生成模块,用于根据所述协议指令生成测试序列;
执行模块,用于按所述测试场景和所述测试执行步骤执行所述测试序列。
优选的,所述协议数据采集单元为一个或多个,且多个所述协议数据采集单元一一对应地采集多个被测实现的协议数据。
优选的,所述协议数据解析单元用于:
应用模式匹配方法对所述协议数据进行匹配,并根据匹配结果判断所述协议数据的协议类型;
针对所述协议类型解析所述协议数据,并生成测试结果;
为所述测试结果建立协议树;所述协议树的父节点标识所述协议类型,所述协议树的子节点标识协议字段及字段值,从而解析获得与所述测试执行步骤对应的所述被测实现的所有输出所述协议数据的帧格式。
优选的,所述对比单元包括:
存储模块,用于预先存储预期结果;所述预期结果为与所述测试执行步骤对应的标准实现返回的协议数据的帧格式;该帧格式通过建立协议树,并解析标识获得;
对比模块,用于定位所述测试协议的协议树节点,并对比所述测试结构的协议树和所述预期结果的协议树的子节点标识协议字段及字段值,并记录对比结果。
本发明具有以下有益效果:
本发明提供的协议互操作性测试方法及装置的技术方案中,该方法包括:生成并执行测试序列;监听所述测试序列,并采集至少一个被测实现的协议数据;解析协议数据,并生成测试结果;将测试结果与预期结果进行对比,并记录对比结果;根据对比结果生成协议互操作性测试报告。由此,能够实现协议互操作性测试序列生成、协议数据解析、测试结果分析的自动化,从而可以提高测试及分析效率,而且能够应用于大规模产品的互操作验证。
附图说明
图1为本发明实施例提供的协议互操作性测试方法的流程框图;
图2为图1中步骤s1的流程框图;
图3为图1中步骤s3的流程框图;
图4为图1中步骤s4的流程框图;
图5为本发明第一实施例提供的协议互操作性测试装置的原理框图;
图6为本发明第二实施例提供的协议互操作性测试装置的原理框图。
具体实施方式
为使本领域的技术人员更好地理解本发明的技术方案,下面结合附图来对本发明提供的协议互操作性测试方法及装置进行详细描述。
请参阅图1,本发明实施例提供的协议互操作性测试方法,其包括:
s1,生成并执行测试序列;
s2,监听该测试序列,并采集至少一个被测实现的协议数据;
s3,解析该协议数据,并生成测试结果;
s4,将该测试结果与预期结果进行对比,并记录对比结果;
s5,根据该对比结果生成协议互操作性测试报告。
本发明实施例提供的协议互操作性测试方法,其通过上述步骤能够实现协议互操作性测试序列生成、协议数据解析、测试结果分析的自动化,从而可以提高测试及分析效率,而且能够应用于大规模产品的互操作验证。
上述协议数据包括测试序列、被测实现的接收数据和发送数据。
请参阅图2,上述步骤s1包括:
s11,配置测试协议、测试场景和测试执行步骤;
s12,在协议指令信息库中检索与该测试执行步骤对应的协议指令;
s13,解析该协议指令;
s14,根据该协议指令生成测试序列;
s15,按上述测试场景和测试执行步骤执行测试序列。
在上述步骤s14中,测试序列包括引导部分、执行部分和测试部分。上述测试执行步骤决定测试序列的执行顺序,一个测试执行步骤可能执行一个或多个测试序列。
请参阅图3,上述步骤s3包括:
s31,应用模式匹配方法对上述协议数据进行匹配,并根据匹配结果判断协议数据的协议类型;
s32,针对该协议类型解析协议数据,并生成测试结果;
s33,为测试结果建立协议树;该协议树的父节点标识协议类型,协议树的子节点标识协议字段及字段值,从而解析获得与上述测试执行步骤对应的被测实现的所有输出协议数据的帧格式。
请参阅图4,上述步骤s4包括:
s41,预先存储预期结果;该预期结果为与测试执行步骤对应的标准实现返回的协议数据的帧格式;该帧格式通过建立协议树,并解析标识获得,即建立与上述测试结果的协议树同样格式的协议树。
s42,定位测试协议的协议树节点,并对比测试结果的协议树和预期结果的协议树的子节点标识协议字段及字段值,并记录对比结果。
上述对比过程是对比测试结果的协议树和预期结果的协议树是否存在差异字段。
上述步骤s5包括:设置对比结果过滤规则,以过滤与被测实现的唯一性标识相关的比对差异字段,并生成协议互操作性测试报告。
上述与被测实现的唯一性标识相关的比对差异字段是由于设备标识或网络标识等的不同产生的差异,因此,通过设置上述过滤规则,过滤与被测实现的唯一性标识相关的比对差异字段,可以生成更精准的测试报告。
作为另一个技术方案,请参阅图5,本发明第一实施例还提供一种协议互操作性测试装置,其特征在于,包括:
序列生成单元1,用于生成并执行测试序列;
协议数据采集单元2,用于监听该测试序列,并采集至少一个被测实现的协议数据;
协议数据解析单元3,用于解析该协议数据,并生成测试结果;
对比单元4,用于将该测试结果与预期结果进行对比,并记录对比结果;
测试结果报告单元5,用于根据该对比结果生成协议互操作性测试报告。
本发明实施例提供的协议互操作性测试装置,其借助上述各个单元能够实现协议互操作性测试序列生成、协议数据解析、测试结果分析的自动化,从而可以提高测试及分析效率,而且能够应用于大规模产品的互操作验证。
在实际应用中,协议数据采集单元3可以为一个或多个,且对于多个被测实现,多个协议数据采集单元3一一对应地采集多个被测实现的协议数据。
请参阅图6,在上述第一实施例的基础上,本发明第二实施例提供的协议互操作性测试装置,其序列生成单元1进一步包括:
配置模块11,用于配置测试协议、测试场景和测试执行步骤;
检索模块12,用于在协议指令信息库6中检索与上述测试执行步骤对应的协议指令;
解析模块13,用于解析该协议指令;
生成模块14,用于根据该协议指令生成测试序列;
执行模块15,用于按测试场景和测试执行步骤执行测试序列。
协议数据解析单元3具体用于:应用模式匹配方法对协议数据进行匹配,并根据匹配结果判断该协议数据的协议类型;调用与该协议类型对应的解析模块13逐级解析协议数据,并生成测试结果。然后,为该测试结果建立协议树;该协议树的父节点标识协议类型,协议树的子节点标识协议字段及字段值,从而解析获得与测试执行步骤对应的被测实现的所有输出协议数据的帧格式。
对比单元4包括:
存储模块41,用于预先存储预期结果;该预期结果为与测试执行步骤对应的标准实现返回的协议数据的帧格式;该帧格式通过建立协议树,并解析标识获得,即建立与上述测试结果的协议树同样格式的协议树。
对比模块42,用于定位测试协议的协议树节点,并对比测试结构的协议树和预期结果构的协议树的子节点标识协议字段及字段值,并记录对比结果。
测试结果报告单元5用于设置对比结果过滤规则,以过滤与被测实现的唯一性标识相关的比对差异字段,并生成协议互操作性测试报告。
可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。