CN116820949A - 微服务接口测试脚本生成方法、装置、设备及存储介质 - Google Patents
微服务接口测试脚本生成方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN116820949A CN116820949A CN202310744997.0A CN202310744997A CN116820949A CN 116820949 A CN116820949 A CN 116820949A CN 202310744997 A CN202310744997 A CN 202310744997A CN 116820949 A CN116820949 A CN 116820949A
- Authority
- CN
- China
- Prior art keywords
- message
- request
- response
- interface
- assertion
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 101
- 238000000034 method Methods 0.000 title claims abstract description 91
- 230000004044 response Effects 0.000 claims abstract description 148
- 238000004458 analytical method Methods 0.000 claims abstract description 8
- 230000015654 memory Effects 0.000 claims description 29
- 238000004590 computer program Methods 0.000 claims description 18
- 238000004806 packaging method and process Methods 0.000 claims description 8
- 238000003780 insertion Methods 0.000 claims description 7
- 230000037431 insertion Effects 0.000 claims description 7
- 238000013507 mapping Methods 0.000 claims description 7
- 238000004422 calculation algorithm Methods 0.000 claims description 5
- 238000012546 transfer Methods 0.000 description 22
- 238000010586 diagram Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本说明书涉及微服务接口测试技术领域,提供了一种微服务接口测试脚本生成方法、装置、设备及存储介质,该方法包括:解析微服务接口代码和日志,根据解析结果生成接口请求方法、报文请求体、响应断言和数据库断言;根据接口请求方法、报文请求体、响应断言和数据库断言生成微服务接口测试脚本。通过本说明书不仅可以提高微服务测试脚本的生成效率,还可以提高微服务接口测试的测试质量。
Description
技术领域
本说明书涉及微服务接口测试技术领域,尤其是涉及一种微服务接口测试脚本生成方法、装置、设备及存储介质。
背景技术
接口测试是测试系统组件间接口的一种测试。主要用于检测外部系统与系统之间以及各个子系统之间的交互点。测试的重点是要检查接口参数传递的正确性,接口功能实现的正确性,输出结果的正确性,以及对各种异常情况的容错处理的完整性和合理性。
当前接口自动化测试,主要通过抓取日志报文,参考接口测试文档的方法,然后通过人工的方式编写接口测试脚本。然而,由于微服务接口多、业务复杂,这种人工的方式编写微服务接口测试脚本的方式,耗费时间多,生成测试脚本的效率低。
发明内容
本说明书实施例的目的在于提供一种微服务接口测试脚本生成方法、装置、设备及存储介质,以提高微服务测试脚本的生成效率。
为达到上述目的,一方面,本说明书实施例提供了一种微服务接口测试脚本生成方法,包括:
解析目标微服务接口代码,以获得接口关键字、请求报文和响应报文的接口参数结构规则、响应码及响应消息关键字;解析目标日志中的请求报文和响应报文,以获得报文参数;并解析所述目标日志中的数据库插入和更新语句,以获得关键字段;
根据所述接口参数结构规则封装接口请求方法;
根据所述报文参数构造正、反用例请求数据,并将所述正、反用例请求数据组合成报文请求体;
根据所述响应码及所述响应消息关键字生成响应断言,并根据所述关键字段生成数据库断言;
将所述接口关键字及所述响应消息关键字组合成测试用例,并映射所述接口请求方法;并根据所述接口请求方法、所述报文请求体、所述响应断言和所述数据库断言生成微服务接口测试脚本。
本说明书实施例的微服务接口测试脚本生成方法中,所述报文参数包括交易码、参数名称、参数类型、参数取值范围、请求数据结构、返回数据结构、响应码及响应消息关键字。
本说明书实施例的微服务接口测试脚本生成方法中,根据所述报文参数构造正、反用例请求数据,包括:
将响应成功的请求报文对应报文参数的请求数据复用为正用例请求数据;
根据响应成功的请求报文对应报文参数的参数名称、参数类型、参数取值范围生成边界值参数;
根据所述边界值参数构造反用例请求数据。
本说明书实施例的微服务接口测试脚本生成方法中,将所述正、反用例请求数据组合成报文请求体,包括:
基于笛卡尔积算法将所述正、反用例请求数据组合成报文请求体。
本说明书实施例的微服务接口测试脚本生成方法中,根据所述响应码及所述响应消息关键字生成响应断言,包括:
将从响应报文中提取的响应码等预期响应码,作为一个响应断言;以及,
将从响应报文中提取的响应消息关键字等于预期响应消息关键字,作为另一个响应断言。
本说明书实施例的微服务接口测试脚本生成方法中,根据所述关键字段生成数据库断言,包括:
根据所述关键字段构建对应的查询语句;
将根据所述查询语句查询数据库获得的查询结果等于预期查询结果,作为数据库断言。
本说明书实施例的微服务接口测试脚本生成方法中,根据所述接口请求方法、所述报文请求体、所述响应断言和所述数据库断言生成微服务接口测试脚本,包括:
将所述接口请求方法和所述报文请求体组合为业务请求;
将所述业务请求、所述响应断言和所述数据库断言组合为微服务接口测试脚本。
另一方面,本说明书实施例还提供了一种微服务接口测试脚本生成装置,包括:
解析模块,用于解析目标微服务接口代码,以获得接口关键字、请求报文和响应报文的接口参数结构规则、响应码及响应消息关键字;解析目标日志中的请求报文和响应报文,以获得报文参数;并解析所述目标日志中的数据库插入和更新语句,以获得关键字段;
封装模块,用于根据所述接口参数结构规则封装接口请求方法;
数据生成模块,用于根据所述报文参数构造正、反用例请求数据,并将所述正、反用例请求数据组合成报文请求体;
断言生成模块,用于根据所述响应码及所述响应消息关键字生成响应断言,并根据所述关键字段生成数据库断言;
脚本生成模块,用于将所述接口关键字及所述响应消息关键字组合成测试用例,并映射所述接口请求方法;并根据所述接口请求方法、所述报文请求体、所述响应断言和所述数据库断言生成微服务接口测试脚本。
另一方面,本说明书实施例还提供了一种计算机设备,包括存储器、处理器、以及存储在所述存储器上的计算机程序,所述计算机程序被所述处理器运行时,执行上述方法的指令。
另一方面,本说明书实施例还提供了一种计算机存储介质,其上存储有计算机程序,所述计算机程序被计算机设备的处理器运行时,执行上述方法的指令。
另一方面,本说明书实施例还提供了一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被计算机设备的处理器运行时,执行上述方法的指令。
由以上本说明书实施例提供的技术方案可见,本说明书实施例基于解析微服务接口代码和日志获得的解析结果,自动生成了包含响应断言和数据库断言的微服务接口测试脚本,从而不仅大幅提高了微服务测试脚本的生成效率,还在测试中通过执行响应断言和数据库断言提高了微服务接口测试的测试质量。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示出了本说明书一些实施例中微服务接口测试脚本生成系统的示意图;
图2示出了本说明书一些实施例中微服务接口测试脚本生成方法的流程图;
图3示出了本说明书一些实施例的微服务接口测试脚本生成方法中构造正、反用例请求数据的流程图;
图4示出了本说明书一些实施例的微服务接口测试脚本生成方法中生成响应断言的流程图;
图5示出了本说明书一些实施例的微服务接口测试脚本生成方法中生成数据库断言的流程图;
图6示出了本说明书一些实施例的微服务接口测试脚本生成方法中生成自动化测试脚本的流程图;
图7示出了本说明书一些实施例中装置的结构框图;
图8示出了本说明书一些实施例中计算机设备的结构框图。
【附图标记说明】
10、客户端;
20、服务端;
71、解析模块;
72、封装模块;
73、数据生成模块;
74、断言生成模块;
75、脚本生成模块;
802、计算机设备;
804、处理器;
806、存储器;
808、驱动机构;
810、输入/输出接口;
812、输入设备;
814、输出设备;
816、呈现设备;
818、图形用户接口;
820、网络接口;
822、通信链路;
824、通信总线。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
图1中示出了本说明书一些实施例的微服务接口测试脚本生成系统的示意图;该系统可以包括客户端10和服务端20。服务端20可以从客户端10获取微服务接口代码和日志,解析微服务接口代码和日志,根据解析结果生成接口请求方法、报文请求体、响应断言和数据库断言;根据接口请求方法、报文请求体、响应断言和数据库断言生成微服务接口测试脚本。如此,可以提高微服务测试脚本的生成效率,并提高微服务接口测试的测试质量。
在一些实施例中,所述服务端20可以为具有运算和网络交互功能的电子设备;也可以为运行于该电子设备中,为数据处理和网络交互提供业务逻辑的软件。在一些实施例中,所述客户端10可以为自助终端设备、移动终端(即智能手机)、显示器、台式电脑、平板电脑、笔记本电脑、数字助理或智能可穿戴设备等。其中,智能可穿戴设备可以包括智能手环、智能手表、智能眼镜或智能头盔等。当然,所述客户端并不限于上述具有一定实体的电子设备,其还可以为运行于上述电子设备中的软件。
此外,需要说明的是,图1所示的仅仅是本说明书提供的一种应用环境,在实际应用中,所述客户端10可以为多个,所述服务端20也可以为多个,本说明书不做限制。
本说明书实施例提供了一种微服务接口测试脚本生成方法,可以应用于上述的服务端侧,参考图2所示,在一些实施例中,微服务接口测试脚本生成方法可以包括以下步骤:
步骤201、解析目标微服务接口代码,以获得接口关键字、请求报文和响应报文的接口参数结构规则、响应码及响应消息关键字;解析目标日志中的请求报文和响应报文,以获得报文参数;并解析所述目标日志中的数据库插入和更新语句,以获得关键字段;
步骤202、根据所述接口参数结构规则封装接口请求方法;
步骤203、根据所述报文参数构造正、反用例请求数据,并将所述正、反用例请求数据组合成报文请求体;
步骤204、根据所述响应码及所述响应消息关键字生成响应断言,并根据所述关键字段生成数据库断言;
步骤205、将所述接口关键字及所述响应消息关键字组合成测试用例,并映射所述接口请求方法;并根据所述接口请求方法、所述报文请求体、所述响应断言和所述数据库断言生成微服务接口测试脚本。
本说明书实施例中,基于解析微服务接口代码和日志获得的解析结果,自动生成了包含响应断言和数据库断言的微服务接口测试脚本,从而不仅大幅提高了微服务测试脚本的生成效率,还在测试中通过执行响应断言和数据库断言提高了微服务接口测试的测试质量。
在一些实施例中,目标微服务接口代码可以从当前被测试的微服务接口对应的源代码。通过解析目标微服务接口代码,可以获得接口关键字、请求报文和响应报文的接口参数结构规则、响应码及响应消息关键字。其中,接口关键字可用于标识接口;在一些实施例中,接口关键字可以为接口名称。请求报文和响应报文的接口参数结构规则是指:请求报文接口参数结构规则和响应报文接口参数结构规则。请求报文接口参数结构规则中可以包括请求数据结构、url、请求方法等;响应报文接口参数结构规则中可以包括响应数据结构等。响应码用于通过符号表示服务端反馈的响应状态;例如,在一示例性实施例中,响应码200表示响应成功,响应码500表示响应失败等。响应消息关键字用于通过自然语言表示服务端反馈的响应状态;例如,在一示例性实施例中,响应消息关键字可以为“处理成功”或“处理失败”等。
目标日志可以为目标微服务接口对应的日志。通过解析目标日志中的请求报文和响应报文,可以获得报文参数。在一些实施例中,报文参数例如可以包括交易码、参数名称、参数类型、参数取值范围(如大小、长度、枚举等)、请求数据结构、返回数据结构、响应码及响应消息关键字等。
此外,通过解析目标日志中的数据库插入和更新语句,可以获得关键字段。任何响应成功的请求的处理结果,均会被记录在数据库中。在数据库记录处理结果的操作,可以通过数据库的插入语句和更新语句(这里的更新可以理解为修改、替换)实现。插入语句和更新语句中包含有关键字段。例如,在一示例性实施例中,以转账交易请求为例,转入账号、转出账号、转账金额等信息可以为关键字段。
在一些实施例中,可以通过对应的正则表达式或关键字等手段,从目标日志中分别获取请求报文、响应报文以及数据库的插入语句和更新语句。
在一些实施例中,根据接口参数结构规则封装接口请求方法是指:根据请求报文接口参数结构规则封装接口请求方法。例如,以转账请求为例,可以根据转账请求报文接口参数结构规则,生成转账请求接口方法postTransfer(),传入的变量包括接口路径URL:http://x.x.x.x/account/transfer,请求报文结构体{account:81162312345678,amount:10.01}等。
在一些实施例中,结合图3所示,根据所述报文参数构造正、反用例请求数据,可以包括如下步骤:
步骤301、将响应成功的请求报文对应报文参数的请求数据复用为正用例请求数据。
在另一些实施例中,也可以通过正则匹配的方式从日志中截取实际的请求报文,报文直接复用为正用例的请求数据。例如,在一示例性实施例中,通过日志标签,打印信息关键字等匹配日志信息中的请求报文。
通过复用响应成功的请求报文对应报文参数的请求数据,可以快速、准确地生成正用例请求数据。
步骤302、根据响应成功的请求报文对应报文参数的参数名称、参数类型、参数取值范围生成边界值参数。
在一些实施例中,可以以报文参数的参数名称、参数类型、参数取值范围等为参考,基于边界值方法、等价类方法等衍生边界值参数(边界值即是指异常值)。例如,在一示例性实施例中,参数A的类型为字符串,限定最大长度为l,正用例数据为长度为s的字符串(s大于0,小于l),边界值可以取长度为1+1的字符串。
步骤303、根据所述边界值参数构造反用例请求数据。
根据所述边界值参数构造反用例请求数据可以为:将边界值参数作为反用例请求数据。如此,则可以自动衍生出用于构造反用例的反用例请求数据。
正用例请求数据和反用例请求数据均是包含一个或多个特定字段的数据,而非完整的请求数据体。因此,需要将正、反用例请求数据组合成整的报文请求体。
在一些实施例中,将所述正、反用例请求数据组合成报文请求体是指:将正用例请求数据组合成用于进行正用例测试的报文请求体,将反用例请求数据组合成用于进行反用例测试的报文请求体。
在一些实施例中,可以基于笛卡尔积算法(或其他可以进行字段组合的算法)将所述正、反用例请求数据组合成报文请求体。
例如,在一示例性实施例中,一个报文包括三个参数,字段A,类型为字符串,最大长度10;字段B,类型为数字,取值范围0.01至100;字段C,类型为枚举值,候选项为x、y、z。则通过笛卡尔积算法可以得到:{A=a1234567c B=0.01C=x},{A=b123c B=10C=y},{A=aaaaaa B=100C=z}等取值组合。
通过自动构造正反用例请求数据,并进行不同数据的组合,可以构建各种正用例和各种反用例,从而有利于实现对微服务接口的全面测试,提高微服务接口测试的覆盖率。
本说明书实施例中,断言(assertion)是微服务接口测试脚本(程序)中的一个结果为真或假的逻辑判断式,目的是为了验证微服务接口的返回数据以及数据库记录的正确性。在传统的微服务接口测试脚本生成方案中,一般不添加断言;即使添加断言,一般也由人工编写生成,因此生成断言的效率较低。而在本说明书实施例中,可以自动生成断言,从而提高了断言生成效率。
在一些实施例中,结合图4所示,根据响应码及响应消息关键字生成响应断言可以包括如下步骤:
步骤401、将从响应报文中提取的响应码等预期响应码,作为一个响应断言。
例如,在一示例性实施例中,验证响应报文中响应码(code)字段值为200的响应报文断言如下所示:
assert(addTransResult.code==200)
在实际测试过程中,当程序执行到断言的位置(例如收到响应报文)时,上述响应断言可以从响应报文从提取的响应码并将其与预期响应码(200)进行对比;如果断言为真,则继续执行后续测试;若断言不为真,则程序会中止执行,并抛出错误信息。在实际测试过程中,本说明书各实施例中的其他断言的执行,亦是如此(即断言为真,则继续执行后续测试;若断言不为真,则程序会中止执行,并抛出错误信息),以下不再一一赘述。
步骤402、将从响应报文中提取的响应消息关键字等于预期响应消息关键字,作为另一个响应断言。
例如,在一示例性实施例中,验证响应报文中响应消息关键字(msg)字段值为“交易成功”的响应报文断言如下所示:
assert(addTransResult.msg=="新增交易成功")
在一些实施例中,结合图5所示,根据关键字段生成数据库断言,可以包括如下字段:
步骤501、根据所述关键字段构建对应的查询语句。
根据关键字段构建对应的查询语句是指:以关键字段作为查询关键词构建查询语句。
步骤502、将根据所述查询语句查询数据库获得的查询结果等于预期查询结果,作为数据库断言。
预期查询结果可以为正确结果。例如,以转账请求(请求从账户A转账100元到账户B)例,预期查询结果为:成功从账户A转账100元到账户B。
例如,在一示例性实施例中,数据库插入语句为:
INSERT INTO t_trans(id,account_no,amount,pay_result,update_time)VALUES(NULL,811222123456789,20.00,1,NULL);
从上述数据库插入语句可以提取得到关键字段“account_no,amount,pay_result”;
基于上述关键字段“account_no,amount,pay_result”可以生成如下数据库查询语句:
SELECT account_no,amount,pay_result FROM t_trans;
由此,可以根据由上述数据库查询语句查询数据库获得的查询结果,生成如下数据库断言:
assert(account_no==预期account_no,amount==预期trans_amount,pay_result==1)
其中,pay_result等于1表示支付成功的状态值。
在一些实施例中,将所述接口关键字及所述响应消息关键字组合成测试用例是指:将接口关键字和响应消息关键字按序组合成新的关键字,以作为测试用例。
例如,在一示例性实施例中,接口关键字为“新增转账交易”,响应消息关键字为“新增转账成功”,则可以将“新增转账交易”和“新增转账成功”组合为“新增转账交易,新增转账成功”,则“新增转账交易,新增转账成功”即可以作为一个测试用例。
本说明书的实施例中,映射接口请求方法是指:建立测试用例与对应接口请求方法之间的映射关系,以便于后续进行测试用例的自动测试。例如,对于转账接口,其测试用例与转账接口请求方法对应。
在一些实施例中,结合图6所示,根据接口请求方法、报文请求体、响应断言和数据库断言生成微服务接口测试脚本,可以包括如下步骤:
步骤601、将所述接口请求方法和所述报文请求体组合为业务请求。
在一些实施例中,通过将接口请求方法、报文请求体和接口路径进行组合,可以得到完整的业务请求。
例如,在一示例性些实施例中,基于转账接口请求方法(addTransRequest),报文请求体(recvAccount,payAccount,amount,transType)和接口路径,可以组合得到如下所示的转账请求:
function addTransRequest(recvAccount,payAccount,amount,
transType):
payload={
recvAccount:recvAccount,
payAccount:payAccount,
amount:amount,
transType:transType
}
result=request.post(url=http://x.x.x.x/account/transfer,data=payload)
return result
步骤602、将所述业务请求、所述响应断言和所述数据库断言组合为微服务接口测试脚本。
将所述业务请求、所述响应断言和所述数据库断言组合为微服务接口测试脚本是指:在所述业务请求中增加所述响应断言和所述数据库断言。
例如,在一示例性些实施例中,若业务请求为步骤601的示例性实施例中的转账请求;响应断言包括:断言1:assert(addTransResult.code==200);断言2:assert(addTransResult.msg=="新增交易成功");数据库断言包括:断言3:assert(db.trans_info.amount==500.00)
则可以将它们组合为如下所示的微服务接口测试脚本:
function addTransTest():
result=addTransRequest(revAccount="811011232346456456",
payAccount="81101123412341123",amount=500.00,transType="02")
//断言1,响应报文断言,验证响应报文中code字段值为200
assert(addTransResult.code==200)
//断言2,响应报文断言
//验证响应报文中msg字段值为2新增交易成功
assert(addTransResult.msg=="新增交易成功")
//断言3,数据库断言
//验证数据库trans_info表amount字段值为500.00
assert(db.trans_info.amount==500.00)
虽然上文描述的过程流程包括以特定顺序出现的多个操作,但是,应当清楚了解,这些过程可以包括更多或更少的操作,这些操作可以顺序执行或并行执行(例如使用并行处理器或多线程环境)。
与上述的微服务接口测试脚本生成方法对应,本说明书实施例还提供了一种微服务接口测试脚本生成装置,参考图7所示,在一些实施例中,微服务接口测试脚本生成装置可以包括:
解析模块71,用于解析目标微服务接口代码,以获得接口关键字、请求报文和响应报文的接口参数结构规则、响应码及响应消息关键字;解析目标日志中的请求报文和响应报文,以获得报文参数;并解析所述目标日志中的数据库插入和更新语句,以获得关键字段;
封装模块72,用于根据所述接口参数结构规则封装接口请求方法;
数据生成模块73,用于根据所述报文参数构造正、反用例请求数据,并将所述正、反用例请求数据组合成报文请求体;
断言生成模块74,用于根据所述响应码及所述响应消息关键字生成响应断言,并根据所述关键字段生成数据库断言;
脚本生成模块75,用于将所述接口关键字及所述响应消息关键字组合成测试用例,并映射所述接口请求方法;并根据所述接口请求方法、所述报文请求体、所述响应断言和所述数据库断言生成微服务接口测试脚本。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
需要说明的是,本说明书的实施例中,所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权同意且经过各方充分授权的信息和数据。
本说明书的实施例还提供一种计算机设备。如图8所示,在本说明书一些实施例中,所述计算机设备802可以包括一个或多个处理器804,诸如一个或多个中央处理单元(CPU)或图形处理器(GPU),每个处理单元可以实现一个或多个硬件线程。计算机设备802还可以包括任何存储器806,其用于存储诸如代码、设置、数据等之类的任何种类的信息,一具体实施例中,存储器806上并可在处理器804上运行的计算机程序,所述计算机程序被所述处理器804运行时,可以执行上述任一实施例所述的微服务接口测试脚本生成方法的指令。非限制性的,比如,存储器806可以包括以下任一项或多种组合:任何类型的RAM,任何类型的ROM,闪存设备,硬盘,光盘等。更一般地,任何存储器都可以使用任何技术来存储信息。进一步地,任何存储器可以提供信息的易失性或非易失性保留。进一步地,任何存储器可以表示计算机设备802的固定或可移除部件。在一种情况下,当处理器804执行被存储在任何存储器或存储器的组合中的相关联的指令时,计算机设备802可以执行相关联指令的任一操作。计算机设备802还包括用于与任何存储器交互的一个或多个驱动机构808,诸如硬盘驱动机构、光盘驱动机构等。
计算机设备802还可以包括输入/输出接口810(I/O),其用于接收各种输入(经由输入设备812)和用于提供各种输出(经由输出设备814)。一个具体输出机构可以包括呈现设备816和相关联的图形用户接口818(GUI)。在其他实施例中,还可以不包括输入/输出接口810(I/O)、输入设备812以及输出设备814,仅作为网络中的一台计算机设备。计算机设备802还可以包括一个或多个网络接口820,其用于经由一个或多个通信链路822与其他设备交换数据。一个或多个通信总线824将上文所描述的部件耦合在一起。
通信链路822可以以任何方式实现,例如,通过局域网、广域网(例如,因特网)、点对点连接等、或其任何组合。通信链路822可以包括由任何协议或协议组合支配的硬连线链路、无线链路、路由器、网关功能、名称服务端等的任何组合。
本申请是参照本说明书一些实施例的方法、设备(系统)、计算机可读存储介质和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理器的处理器以产生一个机器,使得通过计算机或其他可编程数据处理器的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理器以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理器上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算机设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算机设备访问的信息。按照本说明书中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理器来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
还应理解,在本说明书实施例中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书实施例的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (11)
1.一种微服务接口测试脚本生成方法,其特征在于,包括:
解析目标微服务接口代码,以获得接口关键字、请求报文和响应报文的接口参数结构规则、响应码及响应消息关键字;解析目标日志中的请求报文和响应报文,以获得报文参数;并解析所述目标日志中的数据库插入和更新语句,以获得关键字段;
根据所述接口参数结构规则封装接口请求方法;
根据所述报文参数构造正、反用例请求数据,并将所述正、反用例请求数据组合成报文请求体;
根据所述响应码及所述响应消息关键字生成响应断言,并根据所述关键字段生成数据库断言;
将所述接口关键字及所述响应消息关键字组合成测试用例,并映射所述接口请求方法;并根据所述接口请求方法、所述报文请求体、所述响应断言和所述数据库断言生成微服务接口测试脚本。
2.如权利要求1所述的微服务接口测试脚本生成方法,其特征在于,所述报文参数包括交易码、参数名称、参数类型、参数取值范围、请求数据结构、返回数据结构、响应码及响应消息关键字。
3.如权利要求2所述的微服务接口测试脚本生成方法,其特征在于,根据所述报文参数构造正、反用例请求数据,包括:
将响应成功的请求报文对应报文参数的请求数据复用为正用例请求数据;
根据响应成功的请求报文对应报文参数的参数名称、参数类型、参数取值范围生成边界值参数;
根据所述边界值参数构造反用例请求数据。
4.如权利要求1所述的微服务接口测试脚本生成方法,其特征在于,将所述正、反用例请求数据组合成报文请求体,包括:
基于笛卡尔积算法将所述正、反用例请求数据组合成报文请求体。
5.如权利要求1所述的微服务接口测试脚本生成方法,其特征在于,根据所述响应码及所述响应消息关键字生成响应断言,包括:
将从响应报文中提取的响应码等预期响应码,作为一个响应断言;以及,
将从响应报文中提取的响应消息关键字等于预期响应消息关键字,作为另一个响应断言。
6.如权利要求1所述的微服务接口测试脚本生成方法,其特征在于,根据所述关键字段生成数据库断言,包括:
根据所述关键字段构建对应的查询语句;
将根据所述查询语句查询数据库获得的查询结果等于预期查询结果,作为数据库断言。
7.如权利要求1所述的微服务接口测试脚本生成方法,其特征在于,根据所述接口请求方法、所述报文请求体、所述响应断言和所述数据库断言生成微服务接口测试脚本,包括:
将所述接口请求方法和所述报文请求体组合为业务请求;
将所述业务请求、所述响应断言和所述数据库断言组合为微服务接口测试脚本。
8.一种微服务接口测试脚本生成装置,其特征在于,包括:
解析模块,用于解析目标微服务接口代码,以获得接口关键字、请求报文和响应报文的接口参数结构规则、响应码及响应消息关键字;解析目标日志中的请求报文和响应报文,以获得报文参数;并解析所述目标日志中的数据库插入和更新语句,以获得关键字段;
封装模块,用于根据所述接口参数结构规则封装接口请求方法;
数据生成模块,用于根据所述报文参数构造正、反用例请求数据,并将所述正、反用例请求数据组合成报文请求体;
断言生成模块,用于根据所述响应码及所述响应消息关键字生成响应断言,并根据所述关键字段生成数据库断言;
脚本生成模块,用于将所述接口关键字及所述响应消息关键字组合成测试用例,并映射所述接口请求方法;并根据所述接口请求方法、所述报文请求体、所述响应断言和所述数据库断言生成微服务接口测试脚本。
9.一种计算机设备,包括存储器、处理器、以及存储在所述存储器上的计算机程序,其特征在于,所述计算机程序被所述处理器运行时,执行根据权利要求1-7任意一项所述方法的指令。
10.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被计算机设备的处理器运行时,执行根据权利要求1-7任意一项所述方法的指令。
11.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序被处理器运行时,执行根据权利要求1-7任意一项所述方法的指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310744997.0A CN116820949A (zh) | 2023-06-21 | 2023-06-21 | 微服务接口测试脚本生成方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310744997.0A CN116820949A (zh) | 2023-06-21 | 2023-06-21 | 微服务接口测试脚本生成方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116820949A true CN116820949A (zh) | 2023-09-29 |
Family
ID=88119756
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310744997.0A Pending CN116820949A (zh) | 2023-06-21 | 2023-06-21 | 微服务接口测试脚本生成方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116820949A (zh) |
-
2023
- 2023-06-21 CN CN202310744997.0A patent/CN116820949A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10769228B2 (en) | Systems and methods for web analytics testing and web development | |
US11269859B1 (en) | Correlating different types of data of a distributed ledger system | |
US9483387B1 (en) | Tree comparison functionality for services | |
US11507562B1 (en) | Associating data from different nodes of a distributed ledger system | |
CN110597730B (zh) | 基于场景法的自动化测试用例生成方法及系统 | |
CN110413507B (zh) | 系统测试方法、装置、计算机设备和存储介质 | |
US11281438B2 (en) | Platform for web services development and method therefor | |
EP3640814A1 (en) | User-friendly explanation production using generative adversarial networks | |
CN111399828A (zh) | 一种基于模型驱动的逻辑设备建模方法及终端 | |
CN108460068A (zh) | 报表导入导出的方法、装置、存储介质及终端 | |
CN107357721B (zh) | 测试系统的方法及装置 | |
CN111553652A (zh) | 业务处理方法及装置 | |
US11860858B1 (en) | Decoding distributed ledger transaction records | |
CN113778878A (zh) | 接口测试方法、装置、电子设备及存储介质 | |
CN110858242A (zh) | 页面跳转方法及装置 | |
CN112363939A (zh) | 快速生成模糊测试网络协议模板的方法及系统、设备 | |
CN108710658B (zh) | 一种数据记录的存储方法及装置 | |
CN116820949A (zh) | 微服务接口测试脚本生成方法、装置、设备及存储介质 | |
US20100131929A1 (en) | Efficient invariant inference for program verification | |
CN115934537A (zh) | 接口测试工具生成方法、装置、设备、介质及产品 | |
CN112699042B (zh) | 一种单元测试案例的生成方法及装置 | |
CN115268847A (zh) | 区块链智能合约的生成方法、装置及电子设备 | |
CN114637508A (zh) | 基于vue的标签参数传递方法、装置、设备及存储介质 | |
US11403279B1 (en) | Electronic device and method for building a remake of a transaction-processing system | |
CN114385722A (zh) | 接口属性的一致性校验方法、装置、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |