掌桥专利:专业的专利平台
掌桥专利
首页

一种面向对象通信协议的自动化测试方法及系统

文献发布时间:2023-06-19 09:35:27


一种面向对象通信协议的自动化测试方法及系统

技术领域

本发明属于软件测试领域,更具体地,涉及一种面向对象通信协议的自动化测试方法及系统。

背景技术

自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念。

软件测试是保证软件质量的重要手段。传统的人工测试存在着成本高,效率低的缺点,所以自动化测试技术就成为近年来软件测试技术的重要研究方向与发展趋势。自动化测试技术能够有效提高测试的质量与效率,降低测试成本。

在对现有面向对象的通信协议进行自动化测试时,由于面向对象通信协议的数据结构为复杂的多层嵌套结构,现有excel表格形式的测试用例无法精确地描述这种多层嵌套数据结构,进而影响测试效率和测试质量。除此之外,在创建测试用例时,测试数据为人工确定及手动输入,这种测试数据的生成方式不仅容易出错而且使得测试人员的劳动强度较大,进而影响测试效率和测试质量。

发明内容

本发明的目的在于解决现有面向对象通信协议的自动化测试方法的测试效率低,测试质量差。

为了实现上述目的,本发明提供一种面向对象通信协议的自动化测试方法及系统。

根据本发明的第一方面,提供了一种面向对象通信协议的自动化测试方法,该方法包括以下步骤:

根据待测的面向对象通信协议的规范建立XML协议数据模型;

根据XML协议数据模型创建XML配置文件;

根据XML协议数据模型创建XML测试用例文件模板;

根据XML测试用例文件模板创建测试用例文件,测试用例文件所包含的测试数据基于遗传算法生成,在测试用例文件中,测试数据和测试预期结果均采用JSON数据格式描述;

解析并执行测试用例文件。

作为优选的是,所述面向对象通信协议为面向对象的用电信息数据交换协议或者平台与终端接口规范。

作为优选的是,所述XML测试用例文件模板包括测试用例中执行的所有步骤,每个步骤节点包括步骤名称、步骤编号、执行类型、执行的协议对象ID、测试数据和测试预期结果。

作为优选的是,测试用例文件中测试数据的生成方法包括:

对XML测试用例文件模板进行全路径遍历,通过递归的方式解析XML测试用例文件模板的数据格式,获取节点数据ID;

根据节点数据ID拉取历史测试数据;

将历史测试数据作为种子,采用遗传算法生成测试数据;

将生成的测试数据自XML数据格式转换为JSON数据格式。

作为优选的是,所述遗传算法基于作为种子的历史测试数据的大小和取值范围生成测试数据。

作为优选的是,所述解析并执行测试用例文件包括:

读取用例文件、XML测试用例文件模板和XML配置文件;

在内存中生成执行步骤列表;

调用预建立的协议解析组帧模块对执行步骤列表进行解析,并依次执行解析出的步骤。

作为优选的是,所述面向对象通信协议的自动化测试方法还包括:

判断比对测试执行结果与测试预期结果,若判断结果为假,结束测试并整理结果,若判断结果为真,根据期望预期判断是否需要继续测试;

所述根据期望预期判断是否需要继续测试,若是,返回执行所述根据XML测试用例文件模板创建测试用例文件的步骤,若否,结束测试并整理结果。

作为优选的是,在所述判断比对测试执行结果与测试预期结果的步骤中,测试执行结果和测试预期结果均为JSON数据格式,通过比较匹配预期值的叶子节点和收到的实际值来确定判断结果。

作为优选的是,在返回执行所述根据XML测试用例文件模板创建测试用例文件的步骤时,重新生成测试数据。

根据本发明的第二方面,提供了一种面向对象通信协议的自动化测试系统,用于实现上述面向对象通信协议的自动化测试方法,所述面向对象通信协议的自动化测试系统包括:

协议数据模型建立模块,用于根据待测的面向对象通信协议的规范建立XML协议数据模型;

配置文件创建模块,用于根据XML协议数据模型创建XML配置文件;

测试用例文件模板创建模块,用于根据XML协议数据模型创建XML测试用例文件模板;

测试用例文件创建模块,根据XML测试用例文件模板创建测试用例文件,测试用例文件所包含的测试数据基于遗传算法生成,在测试用例文件中,测试数据和测试预期结果均采用JSON数据格式描述;

测试执行模块,用于解析并执行测试用例文件。

本发明的有益效果在于:

本发明的面向对象通信协议的自动化测试方法,是一种基于遗传算法与描述文本XML及JSON的自动化测试方法。针对现有面向对象类型的通信协议结构复杂,使用excel表格形式测试用例无法精确地描述面向对象类型的通信协议的多层嵌套数据结构的这一现况,通过引入XML与JSON数据格式相交互的表述方式,实现了对面向对象类型的通信协议的多层嵌套数据结构的精确描述。与现有的面向对象通信协议的自动化测试方法所采用的测试数据手动生成的方式相比,本发明的面向对象通信协议的自动化测试方法基于遗传算法生成测试数据,有效地降低了测试人员的劳动强度,提高了测试的效率与质量。

本发明的面向对象通信协议的自动化测试系统,用于实现上述面向对象通信协议的自动化测试方法,与上述面向对象通信协议的自动化测试方法具有相同的有益效果。

本发明的其它特征和优点将在随后具体实施方式部分予以详细说明。

附图说明

通过结合附图对本发明示例性实施方式进行更详细的描述,本发明的上述以及其它目的、特征和优势将变得更加明显,其中,在本发明示例性实施方式中,相同的参考标号通常代表相同部件。

图1示出了根据本发明的实施例的面向对象通信协议的自动化测试方法的实现流程图。

图2示出了根据本发明的实施例的面向对象通信协议的自动化测试方法的展开流程图。

图3示出了根据本发明的实施例的面向对象通信协议的自动化测试方法的数据流图。

图4示出了根据本发明的实施例的面向对象通信协议的自动化测试系统的结构示意图。

具体实施方式

下面将更详细地描述本发明的优选实施方式。虽然以下描述了本发明的优选实施方式,然而应该理解,可以以各种形式实现本发明而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本发明更加透彻和完整,并且能够将本发明的范围完整地传达给本领域的技术人员。

实施例:图1示出了本实施例的面向对象通信协议的自动化测试方法的实现流程图。图2示出了本实施例的面向对象通信协议的自动化测试方法的展开流程图。参照图1和图2,本实施例的面向对象通信协议的自动化测试方法包括以下步骤:

步骤S100、根据待测的面向对象通信协议的规范建立XML协议数据模型;

步骤S200、根据XML协议数据模型创建XML配置文件;

步骤S300、根据XML协议数据模型创建XML测试用例文件模板;

步骤S400、根据XML测试用例文件模板创建测试用例文件,测试用例文件所包含的测试数据基于遗传算法生成,在测试用例文件中,测试数据和测试预期结果均采用JSON数据格式描述;

步骤S500、解析并执行测试用例文件。

本实施例的自动化测试方法用于对终端使用的面向对象类型的通信协议进行自动化测试,现有的面向对象类型的通信协议有面向对象的用电信息数据交换协议、统一终端软件平台下APP接口及开发规范。

本实施例的步骤S100中,基于待测的面向对象通信协议的规范文件,采用XML数据格式描述语言对面向对象通信协议的数据架构进行描述,得到XML协议数据模型。

本实施例的步骤S200中,XML配置文件用于对测试硬件设备或测试环境等测试相关参数进行配置,例如,配置用于执行测试用例的计算机的IP地址和侦听端口。

本实施例的步骤S300中,XML测试用例文件模板包括测试用例中执行的所有测试步骤,每个测试步骤节点包括测试步骤名称、测试步骤编号、执行类型、执行的协议对象ID、测试数据和测试预期结果等测试相关信息。XML测试用例文件模板用于创建的测试用例文件的基础。

本实施例的步骤S400中,测试用例文件基于XML测试用例文件模板所创建。测试用例文件中,测试数据和测试预期结果均采用JSON数据格式描述,其他项仍然采用XML数据格式描述。由此可知,本实施例的测试用例文件是一种XML数据格式中内嵌JSON数据格式的数据交互文件。如此设置,使得本实施例的测试用例文件能够精确地描述面向对象类型的通信协议的复杂数据结构,并且避免了原有excel格式测试用例由于个人电脑办公软件版本差异导致的各种问题。

本实施例中,测试用例文件中测试数据的生成方法包括:

对XML测试用例文件模板进行全路径遍历,通过递归的方式解析XML测试用例文件模板的数据格式,获取节点数据ID;

根据节点数据ID拉取历史测试数据;

将历史测试数据作为种子,采用遗传算法生成测试数据;

将生成的测试数据自XML数据格式转换为JSON数据格式。

其中,所述遗传算法基于作为种子的历史测试数据的大小和取值范围生成XML数据格式的测试数据。在生成XML数据格式的测试数据后,基于XML测试用例文件模板中的测试数据结构将XML数据格式的测试数据转换为JSON数据格式的测试数据。

本实施例中,测试预期结果也是基于XML测试用例文件模板生成的,测试预期结果无需包括所有的测试相关数据,仅包括验证相关数据即可,例如:

返回结果:

{"ACK":{

"组件名称":"M-wirelessDCM",

"订阅事件":"xxxx",

"版本信息":"V1.0",

"发布日期":"2020.9.11",

}}

预期结果:

{"ACK":{"组件名称":"M-wirelessDCM"}}

本实施例的步骤S500具体包括:

读取用例文件、XML测试用例文件模板和XML配置文件;

在内存中生成执行步骤列表;

调用预建立的协议解析组帧模块对执行步骤列表进行解析,并依次执行解析出的步骤。

本实施例中,用例文件、测试用例文件模板和配置文件均为XML格式,不再使用常规办公软件excel表格格式。在内存中生成执行步骤列表的过程中,步骤列表所包含的所有模板或文件均一次性转换到内存中,执行速度快,实时性好。协议解析组帧模块基于Python语言开发。

本实施例的面向对象通信协议的自动化测试方法,在执行完测试用例文件,得到测试执行结果后,还包括以下步骤:

判断比对测试执行结果与测试预期结果,若判断结果为假,结束测试并整理结果,若判断结果为真,根据期望预期判断是否需要继续测试;

所述根据期望预期判断是否需要继续测试,若是,返回执行所述根据XML测试用例文件模板创建测试用例文件的步骤,重新生成测试数据,若否,结束测试并整理结果。

在所述判断比对测试执行结果与测试预期结果的步骤中,测试执行结果和测试预期结果均为JSON数据格式,通过比较匹配预期值的叶子节点和收到的实际值来确定判断结果。

图3示出了本实施例的面向对象通信协议的自动化测试方法的数据流图。本实施例的面向对象通信协议的自动化测试方法,通过全路径覆盖的改进遗传算法,动态生成测试数据,并形成闭环反馈系统,根据测试结果修正数学模型,降低测试用例编写的复杂度,减少人工参与,提高自动化测试效率。

本实施例的面向对象通信协议的自动化测试方法基于相应的测试系统来实现,相应地,本实施例还提出一种面向对象通信协议的自动化测试系统。

图4示出了本实施例的面向对象通信协议的自动化测试系统的结构示意图。参照图4,本实施例的面向对象通信协议的自动化测试系统包括:

协议数据模型建立模块,用于根据待测的面向对象通信协议的规范建立XML协议数据模型;

配置文件创建模块,用于根据XML协议数据模型创建XML配置文件;

测试用例文件模板创建模块,用于根据XML协议数据模型创建XML测试用例文件模板;

测试用例文件创建模块,根据XML测试用例文件模板创建测试用例文件,测试用例文件所包含的测试数据基于遗传算法生成,在测试用例文件中,测试数据和测试预期结果均采用JSON数据格式描述;

测试执行模块,用于解析并执行测试用例文件。

本实施例通过遗传算法改进了测试数据的手工生成输入繁琐问题,通过XML及JSON的数据交互格式改善了excel表格不能很好表述面向对象类型数据的问题,以下举例说明:

某接口示例如下:

REQ∷=SEQUENCE

{

进程号double-long,

组件信息MQT_PLUGIN

},

而其中MQT_PLUGIN又是个复杂数据类型,如下

MQT_PLUGIN∷=SEQUENCE

{

组件名称visible-string,

版本信息double-long-unsigned,

发布日期date_time_s

}

那么使用原有的办公软件已经不能很好的表述,使用XML表述如下:

<进程号type="doublelong"/>

<组件信息type="MQT_PLUGIN"/>

<组件名称type="visiblestring"/>

<版本信息type="doublelongunsigned"/>

<发布日期type="datetimes"/>

这样使用XML很好的实现了这种对象类型数据的表述。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。

相关技术
  • 一种面向对象通信协议的自动化测试方法及系统
  • 基于面向对象的自动化测试方法及系统、和自动化平台
技术分类

06120112223626