协议接口测试方法、装置、计算机设备和存储介质与流程

文档序号:17179705发布日期:2019-03-22 20:47阅读:189来源:国知局
协议接口测试方法、装置、计算机设备和存储介质与流程

本申请涉及计算机通信技术领域,尤其涉及一种协议接口测试方法、装置、计算机设备和存储介质。



背景技术:

接口测试一般会用于多系统间交互开发,或者拥有多个子系统的应用系统开发的测试。接口测试适用于为其他系统提供服务的底层框架系统和中心服务系统,主要测试这些系统对外部提供的接口,验证其正确性和稳定性。接口测试同样适用于一个上层系统中的服务层接口,越往上层,其测试的难度越大。

目前,在进行接口测试时不同协议的接口其信息录入方式基本相同,但是在接口运行时其接口协议不一致,某些平台工具为了保证不同协议的接口被准确发送,均让用户录入时采用适合此协议的方式,如jmeter测试工具等。

但是,传统测试技术中,在进行多协议测试时,同一接口无法满足不同种类协议的需求,导致数据需要重复录入,降低测试效率。



技术实现要素:

有鉴于此,有必要针对多种协议在写入接口时,不能有效适配的问题,提供一种协议接口测试方法、装置、计算机设备和存储介质。

一种协议接口测试方法,包括如下步骤:

获取报文请求信息,从所述报文请求信息中抽取出协议的特征标识,根据所述特征标识输入接口后的反馈结果得到回应应答报文;

提取所述回应应答报文中所述协议入参信息和出参信息,得到所述协议的id标识,调用分类文件对所述协议的id标识进行分类得到所述协议的协议分类标识,根据所述协议分类标识将所述协议写入相应的接口,所述分类文件预存储在服务器中;

获取所述接口对应的逆协议分类标识,组装所述逆协议分类标识得到协议组,读取所述协议组得到所述协议组所对应的逆分类文件,从所述逆分类文件中获取所述协议的外推报文,发送所述协议的外推报文至测试终端。

在其中一个实施例中,所述获取报文请求信息,从所述报文请求信息中抽取出协议的特征标识,根据所述特征标识输入接口后的反馈结果得到回应应答报文,包括:

获取报文请求信息,从所述报文请求信息中抽取出协议的特征标识;

获取所述报文请求信息对应的正则表达规则,从所述正则表达规则中抽取出所述协议的特征标识中的起始标识和报文源地址字段,根据所述起始标识和所述报文源地址字段生成匹配规则列表,所述正则表达规则存储在数据库中;

根据所述匹配规则列表与所述回应应答报文之间的映射关系,定位并获取所述匹配规则列表对应的回应应答报文;

检测所述回应应答报文中所包含的上游接口信息与所述报文请求信息中所包含的下游映射节点信息是否匹配,若匹配则接受所述回应应答报文,否则重新获取回应应答报文。

在其中一个实施例中,所述提取所述回应应答报文中所述协议入参信息和出参信息,得到所述协议的id标识,调用分类文件对所述协议的id标识进行分类得到所述协议的协议分类标识,根据所述协议分类标识将所述协议写入相应的接口,所述分类文件预存储在服务器中,包括:

提取所述回应应答报文中所述协议的入参信息和出参信息,对所述入参信息和所述出参信息进行特征参数提取,并将所述特征参数进行标记,根据所述特征参数在入参和出参时的变化确定所述协议的id标识;

获取所述分类文件的加密规则,对所述分类文件进行加密,获得加密类分类文件和密钥标识;

根据所述密钥标识中的密钥标识符,对所述协议的id标识进行分类得到所述协议分类标识;

获取接口id标识与所述协议分类标识的对应表,根据所述对应表,建立所述协议的协议分类标识与所述协议对应的接口id之间的映射关系,根据所述映射关系将所述协议写入相应的接口,其中,所述接口id标识与所述协议分类标识的对应表存储在数据库中。

在其中一个实施例中,所述获取所述接口对应的逆协议分类标识,组装所述逆协议分类标识得到协议组,读取所述协议组得到所述协议组所对应的逆分类文件,从所述逆分类文件中获取所述协议的外推报文,发送所述协议的外推报文至测试终端包括:

建立所述接口与所述协议分类标识的对应关系表,将所述对应关系表中的元素进行矩阵化表示得到接口协议矩阵,对所述接口协议矩阵求逆得到接口协议逆矩阵,将所述接口协议逆矩阵中的元素进行归一化处理,获取归一化处理后的所述接口协议逆矩阵中的每一个元素,则每一个元素的值为所述接口对应的逆协议分类标识;

组装所述逆协议分类标识进行得到所述协议组;

将所述协议组入参到新例子函数中,出参后得到所述协议组所对应的逆分类文件;

获取所述逆分类文件中数据生成的开始节点和终止节点,从所述开始节点到所述终止节点依次发送所述逆分类文件中的协议信息至测试终端。

在其中一个实施例中,所述获取报文请求信息,从所述报文请求信息中抽取出协议的特征标识,包括:

获取预设的提取报文请求信息的时间间隔,根据所述时间间隔获取报文信息;

检测获得的所述报文信息是否完整,若所述报文信息不完整则重新获取所述报文信息;

将所述报文信息与上一轮回的回应应答报文进行比较,获取两者的差异点,根据所述差异点所对应的协议特征映射表中的位置,得到所述特征标识,其中,所述协议特征映射表存储在数据中。

在其中一个实施例中,所述提取所述回应应答报文中所述协议的入参信息和出参信息,对所述入参信息和所述出参信息进行特征参数提取,并将所述特征参数进行标记,根据所述特征参数在入参和出参时的变化确定所述协议的id标识,包括:

将所述入参信息按照入参时间顺序进行排序生成一行入参矩阵,将所述出参信息也按照出参时间顺序进行排序生成一列出参矩阵;

将所述入参矩阵与所述出参矩阵进行矩阵乘积得到入参-出参矩阵;

从所述入参-出参矩阵中抽取出主对角线上的数据,作为原始特征参数;

将所述入参-出参矩阵做归一化处理得到归一化的入参-出参矩阵;

抽取所述归一化的入参-出参矩阵中副对角线上的数据作为特征参数权重;

将所述特征参数权重与所述原始特征参数进行配对计算得到所述协议的id标识。

在其中一个实施例中,所述组装所述逆协议分类标识进行得到所述协议组,包括:

根据所述协议分类标识的接口来源,将所述逆协议分类标识进行分层打包形成数个协议层;

对所述协议层之间的协议数据进行识别,得到各协议层之间数据关联度指数,所述数据关联度指数用于表示两个协议层之间来自同一接口的数据的数量;

将所述数据关联度最大的两个所述协议层进行组装成一协议组。

一种协议接口测试装置,包括如下模块:

请求获取模块,设置为获取报文请求信息,从所述报文请求信息中抽取出协议的特征标识,根据所述特征标识输入接口后的反馈结果得到回应应答报文;

分类写入模块,设置为提取所述回应应答报文中所述协议入参信息和出参信息,得到所述协议的id标识,调用分类文件对所述协议的id标识进行分类得到所述协议的协议分类标识,根据所述协议分类标识将所述协议写入相应的接口,所述分类文件预存储在服务器中;

外推报文模块,设置为获取所述接口对应的逆协议分类标识,组装所述逆协议分类标识得到协议组,读取所述协议组得到所述协议组所对应的逆分类文件,从所述逆分类文件中获取所述协议的外推报文,发送所述协议的外推报文至测试终端。

一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行上述协议接口测试方法的步骤。

一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述协议接口测试方法的步骤。

上述协议接口测试方法、装置、计算机设备和存储介质,包括获取报文请求信息,从所述报文请求信息中抽取出协议的特征标识,根据所述特征标识输入接口后的反馈结果得到回应应答报文;提取所述回应应答报文中所述协议入参信息和出参信息,得到所述协议的id标识,调用分类文件对所述协议的id标识进行分类得到所述协议的协议分类标识,根据所述协议分类标识将所述协议写入相应的接口,所述分类文件预存储在服务器中;获取所述接口对应的逆协议分类标识,组装所述逆协议分类标识得到协议组,读取所述协议组得到所述协议组所对应的逆分类文件,从所述逆分类文件中获取所述协议的外推报文,发送所述协议的外推报文至测试终端。本技术方案针对多种协议在写入接口时,不能有效适配的问题,通过对报文信息进行有效分类,根据分类结果能够有效适配。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。

图1为本申请在一个实施例中的一种协议接口测试方法的整体流程图;

图2为本申请在一个实施例中的一种协议接口测试中的请求获取过程示意图;

图3为本申请在一个实施例中的一种协议接口测试方法中的分类写入过程示意图;

图4为本申请在一个实施例中的一种协议接口测试装置的结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。

图1为本申请一个实施例中协议接口测试方法的整体流程图,如图1所示,一种协议接口测试方法,包括以下步骤:

s1,获取报文请求信息,从所述报文请求信息中抽取出协议的特征标识,根据所述特征标识输入接口后的反馈结果得到回应应答报文;

具体的,接收协议接口检测发起方发送报文请求信息,从报文请求信息中提取用于标识多协议属性的特征标签,如多协议标签交换mpls中操作维护管理oam报文的类型字段;然后将多协议标签交换mpls中操作维护管理oam报文的类型字段输入接口后得到的回应应答报文。

s2,提取所述回应应答报文中所述协议入参信息和出参信息,得到所述协议的id标识,调用分类文件对所述协议的id标识进行分类得到所述协议的协议分类标识,根据所述协议分类标识将所述协议写入相应的接口,所述分类文件预存储在服务器中;

具体的,获取接口上使用的所有函数,将协议分别入参到这些函数中进行计算,得到出参结果,将出参结果中重复出现次数最多的结果作为协议的id标识;协议分类主要分为传输控制协议tcp、用户数据报协议udp和超文本传输协议http等。

s3,获取所述接口对应的逆协议分类标识,组装所述逆协议分类标识得到协议组,读取所述协议组得到所述协议组所对应的逆分类文件,从所述逆分类文件中获取所述协议的外推报文,发送所述协议的外推报文至测试终端。

具体的,所谓接口对应的逆协议标识是通过对协议进行逆向分析得到的,在组装逆协议标识时可以按照逆协议标识的生成顺序进行组装,也可以将同一逆分类标识组装成一协议组。

本实施例,通过对协议进行有效解析和分类,能够使协议与接口适配。

图2为本申请一种协议接口测试中的请求获取过程示意图,如图所示,所述获取报文请求信息,从所述报文请求信息中抽取出协议的特征标识,根据所述特征标识输入接口后的反馈结果得到回应应答报文,包括:

s101、获取报文请求信息,从所述报文请求信息中抽取出协议的特征标识;

具体的,设置一报文请求信息发送任务,当所述报文请求信息发送任务被触发后,检测终端发送报文请求信息与服务器,所谓协议的特征标识是指协议的缩写符号等。

s102、获取所述报文请求信息对应的正则表达规则,从所述正则表达规则中抽取出所述协议的特征标识中的起始标识和报文源地址字段,根据所述起始标识和所述报文源地址字段生成匹配规则列表,所述正则表达规则存储在数据库中;

其中,正则表达规则主要是利用正则表达式对字符串进行规则化处理,正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式是一种文本模式,模式描述在搜索文本时要匹配的一个或多个字符串。

s103、根据所述匹配规则列表与所述回应应答报文之间的映射关系,定位并获取所述匹配规则列表对应的回应应答报文;

具体的,应用结构化查询sql语言等对匹配规则列表进行报文内容中关键内容的检索,根据检索结果确定回应应答报文在匹配规则列表中的位置。

s104、检测所述回应应答报文中所包含的上游接口信息与所述报文请求信息中所包含的下游映射节点信息是否匹配,若匹配则接受所述回应应答报文,否则重新获取回应应答报文。

本实施例,通过对回应应答报文接收过程进行验证,可以有效的保证回应应答报文的完整性。

图3为本申请一种协议接口测试方法中的分类写入过程示意图,如图所示,所述提取所述回应应答报文中所述协议入参信息和出参信息,得到所述协议的id标识,调用分类文件对所述协议的id标识进行分类得到所述协议的协议分类标识,根据所述协议分类标识将所述协议写入相应的接口,所述分类文件预存储在服务器中,包括:

s201、提取所述回应应答报文中所述协议的入参信息和出参信息,对所述入参信息和所述出参信息进行特征参数提取,并将所述特征参数进行标记,根据所述特征参数在入参和出参时的变化确定所述协议的id标识;

具体的,回应应答报文中的特征参数主要指接口方法名、版本号和group等信息,比如若出参后所对应的出参结果发生版本发生变化,则以版本号作为协议id标识。

s202、获取所述分类文件的加密规则,对所述分类文件进行加密,获得加密类分类文件和密钥标识;

其中,加密规则可以采用base64加密方式、md5加密和钥匙串加密方式等进行加密。

s203、根据所述密钥标识中的密钥标识符,对所述协议的id标识进行分类得到所述协议分类标识;

其中,密钥标识符是指密钥标识中的首字符,若协议id标识的首字符与密钥标识符一致,则将所述协议按照密钥标识符对应的分类文件中的类别进行分类。

s204、获取接口id标识与所述协议分类标识的对应表,根据所述对应表,建立所述协议的协议分类标识与所述协议对应的接口id之间的映射关系,根据所述映射关系将所述协议写入相应的接口,其中,所述接口id标识与所述协议分类标识的对应表存储在数据库中。

本实施例,通过建立接口id标识和协议分类标识之间的对应关系,使接口与协议相匹配。

在一个实施例中,所述获取所述接口对应的逆协议分类标识,组装所述逆协议分类标识得到协议组,读取所述协议组得到所述协议组所对应的逆分类文件,从所述逆分类文件中获取所述协议的外推报文,发送所述协议的外推报文至测试终端,包括:

建立所述接口与所述协议分类标识的对应关系表,将所述对应关系表中的元素进行矩阵化表示得到接口协议矩阵,对所述接口协议矩阵求逆得到接口协议逆矩阵,将所述接口协议逆矩阵中的元素进行归一化处理,获取归一化处理后的所述接口协议逆矩阵中的每一个元素,则每一个元素的值为所述接口对应的逆协议分类标识;

具体的,提取对应关系表中的元素时记录提取元素在记录表中的位置,将所述位置所对应的行列号码,作为协议矩阵中元素的数值,比如,某一元素在对应关系表中的位置为第3行,第4列,则其在协议矩阵中的数值为34,;根据元素提取的顺序,依次将这些数值写入到接口协议矩阵中去。

组装所述逆协议分类标识进行得到所述协议组;

具体的,在组装这些分类标识时可以才有面切面编程aop进行组装。

将所述协议组入参到新例子函数中,出参后得到所述协议组所对应的逆分类文件;

具体的,新例子函数在使用aop时,采用newinstance()函数进行入参或者出参运算。

获取所述逆分类文件中数据生成的开始节点和终止节点,从所述开始节点到所述终止节点依次发送所述逆分类文件中的协议信息至测试终端。

本实施例,通过对协议分类元素进行矩阵化处理,可以提升外推报文发送的准确性。

在一个实施例中,所述获取报文请求信息,从所述报文请求信息中抽取出协议的特征标识,包括:

获取预设的提取报文请求信息的时间间隔,根据所述时间间隔获取报文信息;

具体的,时间间隔是根据历史数据获得的,在进行历史数据统计时,可以赋予不同的历史数据以不同的权重,距离现在时刻越近的历史数据的权重越大,反之越小。

检测获得的所述报文信息是否完整,若所述报文信息不完整则重新获取所述报文信息;

具体的,在检测报文信息完整性时,可以根据预设的报文规则对报文的起始字符和终止字符进行检测,若所述报文信息的起始字符或终止字符与预设的报文规则不符,则报文不完整。

将所述报文信息与上一轮回的回应应答报文进行比较,获取两者的差异点,根据所述差异点所对应的协议特征映射表中的位置,得到所述特征标识,其中,所述协议特征映射表存储在数据中。

具体的,在进行回应应答报文比较时,可以将回应应答报文进行分段,分割成数个报文子段,然后对每一个子段进行差异点比较。

本实施例中,通过回应应答报文进行完成整和差异性检测,可以更好的提升协议和接口匹配的准确性。

在一个实施例中,所述提取所述回应应答报文中所述协议的入参信息和出参信息,对所述入参信息和所述出参信息进行特征参数提取,并将所述特征参数进行标记,根据所述特征参数在入参和出参时的变化确定所述协议的id标识,包括:

将所述入参信息按照入参时间顺序进行排序生成一行入参矩阵,将所述出参信息也按照出参时间顺序进行排序生成一列出参矩阵;

将所述入参矩阵与所述出参矩阵进行矩阵乘积得到入参-出参矩阵;

具体的,如将入参信息进行数值转换后建立入参矩阵a,将出参信息进行数值转换后建立出参矩阵b。例如矩阵将矩阵a和矩阵b做积得到入参-出参矩阵

从所述入参-出参矩阵中抽取出主对角线上的数据,作为原始特征参数;

具体的,如上例中原始特征参数为8+10=18。

将所述入参-出参矩阵做归一化处理得到归一化的入参-出参矩阵;

抽取所述归一化的入参-出参矩阵中副对角线上的数据作为特征参数权重;

具体的,对于矩阵c做归一化处理后,副对角线上的元素求和然后除以2,得到的权重为0.5。

将所述特征参数权重与所述原始特征参数进行配对计算得到所述协议的id标识。

本实施例,通过入参和出参信息进行矩阵化处理,提升了确定协议id标识的准确性。

在一个实施例中,所述组装所述逆协议分类标识进行得到所述协议组,包括:

根据所述协议分类标识的接口来源,将所述逆协议分类标识进行分层打包形成数个协议层;

具体的,在进行分层打包时,可以将同一接口来源的逆协议分类标识写入一个协议层,也可以将几个同一类别的接口来源的逆协议写入一个协议层。

对所述协议层之间的协议数据进行识别,得到各协议层之间数据关联度指数,所述数据关联度指数用于表示两个协议层之间来自同一接口的数据的数量;

将所述数据关联度最大的两个所述协议层进行组装成一协议组。

具体的,若有三个或者以上协议层之间的关联度一致,则随机抽取出两个协议层进行组装形成一协议组,剩下的协议层再与其它协议层重新计算关联度。

本实施例,通过计算关联度形成协议组,提升了协议接口测试的速度。

在一个实施例中,提出了协议接口测试装置,如图4所示,包括如下模块:

请求获取模块,设置为获取报文请求信息,从所述报文请求信息中抽取出协议的特征标识,根据所述特征标识输入接口后的反馈结果得到回应应答报文;

分类写入模块,设置为提取所述回应应答报文中所述协议入参信息和出参信息,得到所述协议的id标识,调用分类文件对所述协议的id标识进行分类得到所述协议的协议分类标识,根据所述协议分类标识将所述协议写入相应的接口,所述分类文件预存储在服务器中;

外推报文模块,设置为获取所述接口对应的逆协议分类标识,组装所述逆协议分类标识得到协议组,读取所述协议组得到所述协议组所对应的逆分类文件,从所述逆分类文件中获取所述协议的外推报文,发送所述协议的外推报文至测试终端。

一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行上述各实施例中所述协议接口测试方法的步骤。

一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述各实施例中所述协议接口测试方法的步骤。所述存储介质可以为非易失性存储介质。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(rom,readonlymemory)、随机存取存储器(ram,randomaccessmemory)、磁盘或光盘等。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请一些示例性实施例,其中描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

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