基于参数自动识别的接口测试方法、装置、设备及介质
技术领域
本发明涉及数据一致性测试
技术领域
,特别涉及一种基于参数自动识别的接口测试方法、装置、设备及介质。背景技术
软件测试中应用程序编程接口的测试需要按照常规测试、边界测试、异常测试、故障测试的测试流进行测试工作,测试流的每个单元测试又包括很多细分类,因此,接口测试工作是多维度的,这就需要测试人员在测试前做好分析,提前做测试数据准备,以保证覆盖性更加全面。
在现有技术方案中,当需要针对软件系统代码中的应用程序编程接口进行测试时,需要将应用程序编程接口转化成一个可自动化覆盖测试的可执行接口测试程序,目前在将应用程序编程接口转化时,由测试工程师采用逐个参数填充的方式构建每个程序编程接口的可执行接口测试程序,随着系统中功能节点的日益增大,需要构建的程序编程接口出现爆发式增长,当测试工程师针对待测试接口填充参数时,需要花费大量的时间构建进行参数化工作,从而导致提升了软件测试周期,降低了软件测试的测试效率。
发明内容
基于此,有必要针对软件系统上线后的安全性低的问题,提供一种基于参数自动识别的接口测试方法、装置、设备及介质。
一种基于参数自动识别的接口测试方法,方法包括:当检测到针对待测系统中功能节点的触发指令时,捕获触发功能节点后生成的应用程序接口信息;其中,应用程序接口信息包含请求参数与请求数据;抽取应用程序接口信息中的请求参数;根据预设的参数分析器和预先训练的参数类型识别模型对所述请求参数进行识别输出所述请求参数的类型;所述预先训练的参数类型识别模型是基于第一训练样本与第二训练样本训练生成,所述第一训练样本与所述第二训练样本的相似度大于预设值;根据请求参数所属类型进行参数化生成参数化方法,并将参数化方法与请求数据进行拼接后生成已参数化的接口程序;执行已参数化的接口程序后得到测试用例,并将测试用例与请求参数绑定后生成待测接口,执行待测接口生成测试结果。
在其中一个实施例中,当检测到针对待测系统中功能节点的触发指令时,捕获触发功能节点后生成的应用程序接口信息,包括:连接并访问待测系统;当检测到针对待测系统中的功能节点的触发指令时,根据触发指令生成应用程序接口信息;采用网络抓包工具捕获应用程序接口信息。
在其中一个实施例中,当检测到针对待测系统中功能节点的触发指令时,捕获触发功能节点后生成的应用程序接口信息,包括:连接并访问待测系统;接收针对待测系统中当前页面表单填写的数据信息;当检测到针对当前页面表单的提交指令时,根据填写的数据信息生成应用程序接口信息;采用网络抓包工具捕获应用程序接口信息。
在其中一个实施例中,抽取应用程序接口信息中的请求参数,包括:加载预先配置的正则过滤器;将应用程序接口信息中包含的数据逐一输入正则过滤器中,识别应用程序接口信息中包含的请求参数;输出请求参数;其中,按照以下步骤生成预先配置的正则过滤器,包括:收集软件编程领域所使用的请求参数生成数据字典;初始化正则过滤器;将数据字典与初始化后的正则过滤器进行关联,生成预先配置的正则过滤器。
在其中一个实施例中,识别并输出请求参数所属类型,包括:加载参数分析器和预先训练的参数类型识别模型;将请求参数输入参数分析器中,输出分析结果;当分析结果中存在请求参数对应的所属类型时,输出请求参数对应的所属类型;或者,当分析结果中不存在请求参数对应的所属类型时,将请求参数输入预先训练的参数类型识别模型;输出请求参数对应的所属类型。
在其中一个实施例中,预先训练的参数类型识别模型包括表示层、BiLSTM层以及CRF层;将请求参数输入预先训练的参数类型识别模型,包括:表示层提取请求参数的字向量,生成字向量集合;BiLSTM层将字向量集合中每个字向量进行标签向量化,生成每个字向量对应的标签向量;CRF层计算每个字向量对应的标签向量的类别值矩阵;根据每个字向量对应的标签向量的类别值矩阵确定请求参数的所属类型。
在其中一个实施例中,按照以下方法生成预先训练的参数类型识别模型,包括:采用BiLSTM-CRF算法创建参数类型识别模型;获取软件编程领域所使用的请求参数生成第一训练样本;针对第一训练样本进行预处理与扩展生成第二训练样本;接收针对第一训练样本的统计分析指令,并基于统计分析指令生成多种约束规则;将第一训练样本与第二训练样本输入参数类型识别模型中进行训练,输出模型的损失值;当模型的损失值和训练次数到达预先设定的值时,生成训练后的参数类型识别模型;将多种约束规则加入训练后的参数类型识别模型中的CRF层内,生成预先训练的参数类型识别模型。
一种基于参数自动识别的接口测试装置,装置包括:应用程序接口信息捕获模块,用于当检测到针对待测系统中功能节点的触发指令时,捕获触发功能节点后生成的应用程序接口信息;其中,应用程序接口信息包含请求参数与请求数据;请求参数抽取模块,用于抽取应用程序接口信息中的请求参数;类型识别模块,用于根据预设的参数分析器和预先训练的参数类型识别模型对所述请求参数进行识别输出所述请求参数的类型;所述预先训练的参数类型识别模型是基于第一训练样本与第二训练样本训练生成,所述第一训练样本与所述第二训练样本的相似度大于预设值;接口程序生成模块,用于根据请求参数所属类型进行参数化生成参数化方法,并将参数化方法与请求数据进行拼接后生成已参数化的接口程序;测试结果生成模块,用于执行已参数化的接口程序后得到测试用例,并将测试用例与请求参数绑定后生成待测接口,执行待测接口生成测试结果。
一种设备,包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行上述基于参数自动识别的接口测试方法的步骤。
一种存储有计算机可读指令的介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述基于参数自动识别的接口测试方法的步骤。
上述基于参数自动识别的接口测试方法、装置、设备和介质,基于参数自动识别的接口测试装置当检测到针对待测系统中功能节点的触发指令时,首先捕获触发功能节点后生成的应用程序接口信息,并抽取应用程序接口信息中的请求参数,然后识别并输出请求参数所属类型,请求参数所属类型是根据参数分析器和预先训练的参数类型识别模型进行识别,预先训练的参数类型识别模型是基于第一训练样本与第二训练样本训练生成,再根据请求参数所属类型进行参数化生成参数化方法,并将参数化方法与请求数据进行拼接后生成已参数化的接口程序,最后执行该接口程序后得到测试用例,并将测试用例与请求参数绑定后生成待测接口,以及执行待测接口生成测试结果。由于本申请通过采用正则过滤器与预先训练的参数类型识别模型识别应用程序接口信息所包含的请求参数所属类型,使得应用程序接口信息所包含的请求参数可以自动完成参数化,从而降低了系统测试周期,降低了软件测试的测试效率。与此同时,由于第一训练样本与第二训练样本之间建立了相关性,使得训练出的参数类型识别模型的识别精度更加准确,从而提升了系统测试的准确性。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1为本申请一个实施例中提供的基于参数自动识别的接口测试方法的实施环境图;
图2为本申请一个实施例中设备的内部结构示意图;
图3为本申请一个实施例中提供的基于参数自动识别的接口测试方法的方法示意图;
图4为本申请一个实施例中提供的基于参数自动识别的接口测试过程的过程示意图;
图5为本申请另一个实施例中提供的参数类型识别模型训练方法的方法示意图;
图6是本申请实施例提供的一种基于参数自动识别的接口测试装置的装置示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。
图1为一个实施例中提供的基于参数自动识别的接口测试方法的实施环境图,如图1所示,在该实施环境中,包括设备110以及客户端120。
设备110可以为服务器设备,例如为缓存参数分析器或应用程序接口信息中的请求参数的设备、还可以是用来部署预先训练的参数类型识别模型的服务器设备。当需要进行基于参数自动识别的接口测试时,客户端120当检测到针对待测系统中功能节点的触发指令时,捕获触发功能节点后生成的应用程序接口信息,客户端120抽取应用程序接口信息中的请求参数并缓存至设备110中,客户端120从设备110中获取预先训练的参数类型识别模型,客户端120根据参数分析器和预先训练的参数类型识别模型识别并输出设备110中缓存的请求参数所属类型,客户端120根据请求参数所属类型进行参数化生成参数化方法,并将参数化方法与请求数据进行拼接后生成已参数化的接口程序,客户端120执行已参数化的接口程序后得到测试用例,并将测试用例与请求参数绑定后生成待测接口,执行待测接口生成测试结果。
需要说明的是,客户端120可为智能手机、平板电脑、笔记本电脑、台式计算机等,但并不局限于此。设备110以及客户端120可以通过蓝牙、USB(Universal Serial Bus,通用串行总线)或者其他通讯连接方式进行连接,本发明在此不做限制。
图2为一个实施例中设备的内部结构示意图。如图2所示,该设备包括通过系统总线连接的处理器、介质、存储器和网络接口。其中,该设备的介质存储有操作系统、数据库和计算机可读指令,数据库中可存储有控件信息序列,该计算机可读指令被处理器执行时,可使得处理器实现一种基于参数自动识别的接口测试方法。该设备的处理器用于提供计算和控制能力,支撑整个设备的运行。该设备的存储器中可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行一种基于参数自动识别的接口测试方法。该设备的网络接口用于与终端连接通信。本领域技术人员可以理解,图2中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的设备的限定,具体的设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。其中,介质为一种可读的存储介质。
下面将结合附图3-附图5,对本申请实施例提供的基于参数自动识别的接口测试方法进行详细介绍。该方法可依赖于计算机程序实现,可运行于基于冯诺依曼体系的基于参数自动识别的接口测试装置上。该计算机程序可集成在应用中,也可作为独立的工具类应用运行。
请参见图3,为本申请实施例提供了一种基于参数自动识别的接口测试方法的流程示意图。如图3所示,本申请实施例的方法可以包括以下步骤:
S101,当检测到针对待测系统中功能节点的触发指令时,捕获触发功能节点后生成的应用程序接口信息;其中,应用程序接口信息包含请求参数与请求数据;
其中,待测系统是将要进行测试的软件系统,可以为web系统、也可以是H5网页类型的网页、还可以是应用程序app。触发指令是用户通过点击待测系统的相关功能按键所生成的信号。应用程序接口简称API(Application Programming Interface),是软件系统不同组成部分衔接的约定。请求参数为API所需要的参数信息,例如参数信息可以为:{"name":"张三","description":"xxx","phone":"130xxxxxxxx","Email":"[email protected]"}。请求数据至少包括请求的路径url,头部信息headers,请求方法method。
在本申请实施例中,触发指令可以是用户通过点击待测系统中的功能节点按键生成的信号,也可以是用户通过在待测系统的表单填写页输入相关的表单信息,最后触发表单填写页的提交按键后生成的信号。
在一种可能的实现方式中,当需要进行接口测试时,首先连接并访问待测系统,然后用户针对待测系统中的功能节点触发后生成指令,根据该指令进行代码逻辑层处理后生成应用程序接口信息,采用通过网络抓包工具抓取应用程序接口信息。
在另一种可能的实现方式中,当需要进行接口测试时,连接并访问待测系统,然后用户填写待测系统中的表单页面信息,表单填写结束后通过点击表单上的提交按键生成触发指令,根据该指令进行代码逻辑层处理后生成应用程序接口信息,采用通过网络抓包工具抓取应用程序接口信息。
S102,抽取应用程序接口信息中的请求参数;
通常,应用程序接口信息包括请求参数、请求的路径url,头部信息headers,请求方法method等信息。
在一种可能的实现方式中,当抽取请求参数时,首先加载预先配置的正则过滤器,然后将应用程序接口信息中包含的数据逐一输入正则过滤器中,判断应用程序接口信息中包含的数据是否为请求参数,如果是请求参数则输出。
具体的,在生成预先配置的正则过滤器时,首先收集软件编程领域所使用的请求参数生成数据字典,然后初始化正则过滤器,最后将数据字典与初始化后的正则过滤器进行关联后,生成预先配置的正则过滤器。
在另一种可能的实现方式中,当抽取请求参数时,首先收集软件编程领域所使用的请求参数生成请求参数语料样本,并基于请求参数语料样本构建分词词典,然后根据分词词典对应用程序接口信息进行分词后生成分词结果,最后将分词结果确定为请求参数进行输出。由于分词词典构建时专门使用了软件编程领域所用的大量请求参数构建,因此构建的分词词典能分类出应用程序接口信息中包括的请求参数。
S103,根据预设的参数分析器和预先训练的参数类型识别模型对所述请求参数进行识别输出所述请求参数的类型;所述预先训练的参数类型识别模型是基于第一训练样本与第二训练样本训练生成,所述第一训练样本与所述第二训练样本的相似度大于预设值;
其中,请求参数所属类型是软件编程中设定的类型,例如java编程中数据的类型有字符类型、布尔类型以及数值类型,字节类型例如char,布尔类型例如boolean,数值类型例如byte、short、int、long、float、double。
在本申请实施例中,在识别请求参数所属类型时,首先加载参数分析器和预先训练的参数类型识别模型,再将请求参数输入参数分析器经过参数分析器得其对应的参数类型,当参数分析器不能识别参数类型时,将请求参数输入预先训练的参数类型识别模型进行识别,输出请求参数所属类型。
进一步地,预先训练的参数类型识别模型包括表示层、BiLSTM层以及CRF层。
具体的,将请求参数输入预先训练的参数类型识别模型进行识别,输出请求参数所属类型时,首先将请求参数输入表示层,输出字向量集合,然后将字向量集合中每个字向量输入BiLSTM层,输出每个字向量对应的标签向量,再将每个字向量对应的标签向量输入CRF层中,输出请求参数对应的类别值矩阵,最后根据类别值矩阵确定请求参数的所属类型。
例如,将抽取到的请求参数经过参数分析器和预先训练的参数类型识别模型得其对应的参数值类型,如有
参数"name":"张三"【姓名】类型,"phone":"130xxxxxxxx"【手机号码】类型,
"Email":"[email protected]"【邮箱】类型;
具体的,在生成预先训练的参数类型识别模型时,首先采用BiLSTM-CRF算法创建参数类型识别模型,然后获取软件编程领域所使用的请求参数生成第一训练样本,然后针对第一训练样本进行预处理与扩展生成第二训练样本,再接收针对第一训练样本的统计分析指令,并基于统计分析指令生成多种约束规则,其次将第一训练样本与第二训练样本输入参数类型识别模型中进行训练,输出模型的损
失值,当损失值和训练次数到达预先设定的值时,生成训练后的参数类型识别模型,最后将多种约束规则加入训练后的参数类型识别模型中的CRF层内,生成预先训练的参数类型识别模型。
具体的,将第一训练样本与第二训练样本输入参数类型识别模型中进行训练,输出模型的损失值时,首先将第一训练样本与第二训练样本输入参数类型识别模型中,输出第一训练样本的第一损失值与第二训练样本的第二损失值,然后将第一损失值与第二损失值的均值确定为模型的损失值。
S104,根据请求参数所属类型进行参数化生成参数化方法,并将参数化方法与请求数据进行拼接后生成已参数化的接口程序;
在一种可能的实现方式中,在得到请求参数所属类型后,首先调用数据伪造库,然后根据数据伪造库进行请求参数所属类型的自动参数化生成参数化方法,再获取步骤S101中的应用程序接口信息包含的请求数据(例如:url/headers/http method),最后将参数化方法与请求数据组合后生成已参数化的接口程序。
S105,执行已参数化的接口程序后得到测试用例,并将测试用例与请求参数绑定后生成待测接口,执行待测接口生成测试结果。
在一种可能的实现方式中,在生成已参数化的接口程序后,当接收针对已参数化的接口程序的接口触发指令时,执行已参数化的接口程序从伪造数据库中获取测试用例,将得到的测试用例与请求参数进行绑定后生成待测接口,最后执行待测接口生成测试结果。
进一步地,从数据伪造库中获取测试用例可以随机获取,也可以按照ID标识递增的方式逐一获取。
例如,【姓名】类型自动参数化为"name":fake.name(),通过执行此参数化方法fake.name()可以从伪造数据库中获取到测试用例。
进一步地,在生成已参数化的接口程序后,还可以接受用户输入的已参数化的接口程序执行次数,根据执行次数循环执行已参数化的接口程序获取到多个测试用例。
例如图4所示,图4是本申请实施例提供的一种基于参数自动识别的接口测试过程的过程示意图,应用在表单页面填写场景下,访问待测系统(待测系统可为web/H5/app)表单填写页,填写表单信息,通过网络抓包工具捕获访问待测系统页面时所触发的接口,将捕获到的接口信息通过正则获取表单请求参数信息,将每个参数经过参数分析器分析对应参数的值类型,若参数分析器不能识别时,则输入模型中进行识别,根据参数所属类型执行对应类型的自动参数化,将完成参数化的参数以及其接口的请求数据组合后生成可触发的接口测试程序。
在本申请实施例中,基于参数自动识别的接口测试装置当检测到针对待测系统中功能节点的触发指令时,首先捕获触发功能节点后生成的应用程序接口信息,并抽取应用程序接口信息中的请求参数,然后识别并输出请求参数所属类型,请求参数所属类型是根据参数分析器和预先训练的参数类型识别模型进行识别,预先训练的参数类型识别模型是基于第一训练样本与第二训练样本训练生成,再根据请求参数所属类型进行参数化生成参数化方法,并将参数化方法与请求数据进行拼接后生成已参数化的接口程序,最后执行该接口程序后得到测试用例,并将测试用例与请求参数绑定后生成待测接口,以及执行待测接口生成测试结果。由于本申请通过采用正则过滤器与预先训练的参数类型识别模型识别应用程序接口信息所包含的请求参数所属类型,使得应用程序接口信息所包含的请求参数可以自动完成参数化,从而降低了系统测试周期,降低了软件测试的测试效率。
如图5所示,图5是本申请提供的一种参数类型识别模型的训练方法,包括以下步骤:
S201,采用BiLSTM-CRF算法创建参数类型识别模型;
其中,CRF是一种常用的序列标注算法,可用于词性标注,分词,命名实体识别等任务。BiLSTM+CRF是目前比较流行的序列标注算法,其将BiLSTM和CRF结合在一起,使模型即可以像CRF一样考虑序列前后之间的关联性,又可以拥有LSTM的特征抽取及拟合能力。
通常,BiLSTM可以预测出每一个字属于不同标签的概率,然后使用Softmax得到概率最大的标签,作为该位置的预测值。这样在预测的时候会忽略了标签之间的关联性。
S202,获取软件编程领域所使用的请求参数生成第一训练样本;
S203,针对第一训练样本进行预处理与扩展生成第二训练样本;
S204,接收针对第一训练样本的统计分析指令,并基于统计分析指令生成多种约束规则;
S205,将第一训练样本与第二训练样本输入参数类型识别模型中进行训练,输出模型的损失值;
S206,当模型的损失值和训练次数到达预先设定的值时,生成训练后的参数类型识别模型;
S207,将多种约束规则加入训练后的参数类型识别模型中的CRF层内,生成预先训练的参数类型识别模型。
在本申请实施例中,由于第一训练样本与第二训练样本之间建立了相关性,使得训练出的参数类型识别模型的识别精度更加准确,从而提升了系统测试的准确性。
下述为本发明装置实施例,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明方法实施例。
请参见图6,其示出了本发明一个示例性实施例提供的基于参数自动识别的接口测试装置的结构示意图,应用于服务器。该基于参数自动识别的接口测试装置可以通过软件、硬件或者两者的结合实现成为设备的全部或一部分。该装置1包括应用程序接口信息捕获模块10、请求参数抽取模块20、类型识别模块30、接口程序生成模块40、测试结果生成模块50。
应用程序接口信息捕获模块10,用于当检测到针对待测系统中功能节点的触发指令时,捕获触发功能节点后生成的应用程序接口信息;其中,应用程序接口信息包含请求参数与请求数据;
请求参数抽取模块20,用于抽取应用程序接口信息中的请求参数;
类型识别模块30,用于根据预设的参数分析器和预先训练的参数类型识别模型对所述请求参数进行识别输出所述请求参数的类型;所述预先训练的参数类型识别模型是基于第一训练样本与第二训练样本训练生成,所述第一训练样本与所述第二训练样本的相似度大于预设值;
接口程序生成模块40,用于根据请求参数所属类型进行参数化生成参数化方法,并将参数化方法与请求数据进行拼接后生成已参数化的接口程序;
测试结果生成模块50,用于执行已参数化的接口程序后得到测试用例,并将测试用例与请求参数绑定后生成待测接口,执行待测接口生成测试结果。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请实施例中,基于参数自动识别的接口测试装置当检测到针对待测系统中功能节点的触发指令时,首先捕获触发功能节点后生成的应用程序接口信息,并抽取应用程序接口信息中的请求参数,然后识别并输出请求参数所属类型,请求参数所属类型是根据参数分析器和预先训练的参数类型识别模型进行识别,预先训练的参数类型识别模型是基于第一训练样本与第二训练样本训练生成,再根据请求参数所属类型进行参数化生成参数化方法,并将参数化方法与请求数据进行拼接后生成已参数化的接口程序,最后执行该接口程序后得到测试用例,并将测试用例与请求参数绑定后生成待测接口,以及执行待测接口生成测试结果。由于本申请通过采用正则过滤器与预先训练的参数类型识别模型识别应用程序接口信息所包含的请求参数所属类型,使得应用程序接口信息所包含的请求参数可以自动完成参数化,从而降低了系统测试周期,降低了软件测试的测试效率。
在一个实施例中,提出了一种设备,设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:当检测到针对待测系统中功能节点的触发指令时,捕获触发功能节点后生成的应用程序接口信息;其中,应用程序接口信息包含请求参数与请求数据;抽取应用程序接口信息中的请求参数;根据预设的参数分析器和预先训练的参数类型识别模型对所述请求参数进行识别输出所述请求参数的类型;所述预先训练的参数类型识别模型是基于第一训练样本与第二训练样本训练生成,所述第一训练样本与所述第二训练样本的相似度大于预设值;根据请求参数所属类型进行参数化生成参数化方法,并将参数化方法与请求数据进行拼接后生成已参数化的接口程序;执行已参数化的接口程序后得到测试用例,并将测试用例与请求参数绑定后生成待测接口,执行待测接口生成测试结果。
在一个实施例中,处理器执行当检测到针对待测系统中功能节点的触发指令时,捕获触发功能节点后生成的应用程序接口信息时,具体执行以下操作:连接并访问待测系统;当检测到针对待测系统中的功能节点的触发指令时,根据触发指令生成应用程序接口信息;采用网络抓包工具捕获应用程序接口信息。
在一个实施例中,处理器执行当检测到针对待测系统中功能节点的触发指令时,捕获触发功能节点后生成的应用程序接口信息时,具体执行以下操作:连接并访问待测系统;接收针对待测系统中当前页面表单填写的数据信息;当检测到针对当前页面表单的提交指令时,根据填写的数据信息生成应用程序接口信息;采用网络抓包工具捕获应用程序接口信息。
在一个实施例中,处理器执行抽取应用程序接口信息中的请求参数时,具体执行以下操作:加载预先配置的正则过滤器;将应用程序接口信息中包含的数据逐一输入正则过滤器中,识别应用程序接口信息中包含的请求参数;输出请求参数;其中,按照以下步骤生成预先配置的正则过滤器,包括:收集软件编程领域所使用的请求参数生成数据字典;初始化正则过滤器;将数据字典与初始化后的正则过滤器进行关联,生成预先配置的正则过滤器。
在一个实施例中,处理器执行识别并输出请求参数所属类型时,具体执行以下操作:加载参数分析器和预先训练的参数类型识别模型;将请求参数输入参数分析器中,输出分析结果;当分析结果中存在请求参数对应的所属类型时,输出请求参数对应的所属类型;或者,当分析结果中不存在请求参数对应的所属类型时,将请求参数输入预先训练的参数类型识别模型;输出请求参数对应的所属类型。
在一个实施例中,处理器执行将请求参数输入预先训练的参数类型识别模型时,具体执行以下操作:表示层提取请求参数的字向量,生成字向量集合;BiLSTM层将字向量集合中每个字向量进行标签向量化,生成每个字向量对应的标签向量;CRF层计算每个字向量对应的标签向量的类别值矩阵;根据每个字向量对应的标签向量的类别值矩阵确定请求参数的所属类型。
在一个实施例中,处理器按照以下方法生成预先训练的参数类型识别模型,具体执行以下操作:采用BiLSTM-CRF算法创建参数类型识别模型;获取软件编程领域所使用的请求参数生成第一训练样本;针对第一训练样本进行预处理与扩展生成第二训练样本;接收针对第一训练样本的统计分析指令,并基于统计分析指令生成多种约束规则;将第一训练样本与第二训练样本输入参数类型识别模型中进行训练,输出模型的损失值;当模型的损失值和训练次数到达预先设定的值时,生成训练后的参数类型识别模型;将多种约束规则加入训练后的参数类型识别模型中的CRF层内,生成预先训练的参数类型识别模型。
在本申请实施例中,基于参数自动识别的接口测试装置当检测到针对待测系统中功能节点的触发指令时,首先捕获触发功能节点后生成的应用程序接口信息,并抽取应用程序接口信息中的请求参数,然后识别并输出请求参数所属类型,请求参数所属类型是根据参数分析器和预先训练的参数类型识别模型进行识别,预先训练的参数类型识别模型是基于第一训练样本与第二训练样本训练生成,再根据请求参数所属类型进行参数化生成参数化方法,并将参数化方法与请求数据进行拼接后生成已参数化的接口程序,最后执行该接口程序后得到测试用例,并将测试用例与请求参数绑定后生成待测接口,以及执行待测接口生成测试结果。由于本申请通过采用正则过滤器与预先训练的参数类型识别模型识别应用程序接口信息所包含的请求参数所属类型,使得应用程序接口信息所包含的请求参数可以自动完成参数化,从而降低了系统测试周期,降低了软件测试的测试效率。与此同时,由于第一训练样本与第二训练样本之间建立了相关性,使得训练出的参数类型识别模型的识别精度更加准确,从而提升了系统测试的准确性。
在一个实施例中,提出了一种存储有计算机可读指令的介质,该计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行以下步骤:当检测到针对待测系统中功能节点的触发指令时,捕获触发功能节点后生成的应用程序接口信息;其中,应用程序接口信息包含请求参数与请求数据;抽取应用程序接口信息中的请求参数;根据预设的参数分析器和预先训练的参数类型识别模型对所述请求参数进行识别输出所述请求参数的类型;所述预先训练的参数类型识别模型是基于第一训练样本与第二训练样本训练生成,所述第一训练样本与所述第二训练样本的相似度大于预设值;根据请求参数所属类型进行参数化生成参数化方法,并将参数化方法与请求数据进行拼接后生成已参数化的接口程序;执行已参数化的接口程序后得到测试用例,并将测试用例与请求参数绑定后生成待测接口,执行待测接口生成测试结果。
在一个实施例中,处理器执行当检测到针对待测系统中功能节点的触发指令时,捕获触发功能节点后生成的应用程序接口信息时,具体执行以下操作:连接并访问待测系统;当检测到针对待测系统中的功能节点的触发指令时,根据触发指令生成应用程序接口信息;采用网络抓包工具捕获应用程序接口信息。
在一个实施例中,处理器执行当检测到针对待测系统中功能节点的触发指令时,捕获触发功能节点后生成的应用程序接口信息时,具体执行以下操作:连接并访问待测系统;接收针对待测系统中当前页面表单填写的数据信息;当检测到针对当前页面表单的提交指令时,根据填写的数据信息生成应用程序接口信息;采用网络抓包工具捕获应用程序接口信息。
在一个实施例中,处理器执行抽取应用程序接口信息中的请求参数时,具体执行以下操作:加载预先配置的正则过滤器;将应用程序接口信息中包含的数据逐一输入正则过滤器中,识别应用程序接口信息中包含的请求参数;输出请求参数;其中,按照以下步骤生成预先配置的正则过滤器,包括:收集软件编程领域所使用的请求参数生成数据字典;初始化正则过滤器;将数据字典与初始化后的正则过滤器进行关联,生成预先配置的正则过滤器。
在一个实施例中,处理器执行识别并输出请求参数所属类型时,具体执行以下操作:加载参数分析器和预先训练的参数类型识别模型;将请求参数输入参数分析器中,输出分析结果;当分析结果中存在请求参数对应的所属类型时,输出请求参数对应的所属类型;或者,当分析结果中不存在请求参数对应的所属类型时,将请求参数输入预先训练的参数类型识别模型;输出请求参数对应的所属类型。
在一个实施例中,处理器执行将请求参数输入预先训练的参数类型识别模型时,具体执行以下操作:表示层提取请求参数的字向量,生成字向量集合;BiLSTM层将字向量集合中每个字向量进行标签向量化,生成每个字向量对应的标签向量;CRF层计算每个字向量对应的标签向量的类别值矩阵;根据每个字向量对应的标签向量的类别值矩阵确定请求参数的所属类型。
在一个实施例中,处理器按照以下方法生成预先训练的参数类型识别模型,具体执行以下操作:采用BiLSTM-CRF算法创建参数类型识别模型;获取软件编程领域所使用的请求参数生成第一训练样本;针对第一训练样本进行预处理与扩展生成第二训练样本;接收针对第一训练样本的统计分析指令,并基于统计分析指令生成多种约束规则;将第一训练样本与第二训练样本输入参数类型识别模型中进行训练,输出模型的损失值;当模型的损失值和训练次数到达预先设定的值时,生成训练后的参数类型识别模型;将多种约束规则加入训练后的参数类型识别模型中的CRF层内,生成预先训练的参数类型识别模型。
在本申请实施例中,基于参数自动识别的接口测试装置当检测到针对待测系统中功能节点的触发指令时,首先捕获触发功能节点后生成的应用程序接口信息,并抽取应用程序接口信息中的请求参数,然后识别并输出请求参数所属类型,请求参数所属类型是根据参数分析器和预先训练的参数类型识别模型进行识别,预先训练的参数类型识别模型是基于第一训练样本与第二训练样本训练生成,再根据请求参数所属类型进行参数化生成参数化方法,并将参数化方法与请求数据进行拼接后生成已参数化的接口程序,最后执行该接口程序后得到测试用例,并将测试用例与请求参数绑定后生成待测接口,以及执行待测接口生成测试结果。由于本申请通过采用正则过滤器与预先训练的参数类型识别模型识别应用程序接口信息所包含的请求参数所属类型,使得应用程序接口信息所包含的请求参数可以自动完成参数化,从而降低了系统测试周期,降低了软件测试的测试效率。与此同时,由于第一训练样本与第二训练样本之间建立了相关性,使得训练出的参数类型识别模型的识别精度更加准确,从而提升了系统测试的准确性。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性介质,或随机存储记忆体(RandomAccess Memory,RAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
- 上一篇:石墨接头机器人自动装卡簧、装栓机
- 下一篇:测试方法、装置、设备、存储介质及程序产品