CN114328180A - 接口自动化测试方法、系统、电子设备及存储介质 - Google Patents

接口自动化测试方法、系统、电子设备及存储介质 Download PDF

Info

Publication number
CN114328180A
CN114328180A CN202111440239.7A CN202111440239A CN114328180A CN 114328180 A CN114328180 A CN 114328180A CN 202111440239 A CN202111440239 A CN 202111440239A CN 114328180 A CN114328180 A CN 114328180A
Authority
CN
China
Prior art keywords
sql statement
interface
return data
playback
recording
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
Application number
CN202111440239.7A
Other languages
English (en)
Inventor
梁伟项
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Vipshop Guangzhou Software Co Ltd
Original Assignee
Vipshop Guangzhou Software Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Vipshop Guangzhou Software Co Ltd filed Critical Vipshop Guangzhou Software Co Ltd
Priority to CN202111440239.7A priority Critical patent/CN114328180A/zh
Publication of CN114328180A publication Critical patent/CN114328180A/zh
Pending legal-status Critical Current

Links

Images

Abstract

本申请提供一种接口自动化测试方法、系统及电子设备,包括:调用接口进行录制时,持久层拦截第一SQL语句,并根据预设的规则转换第一SQL语句生成第二SQL语句;在第一应用数据库中执行第二SQL语句,获取对应的目标返回数据;调用接口进行回放前,将目标返回数据插入第二应用数据库中;调用接口进行回放时,在第二应用数据库执行第一SQL语句,获取对应的回放返回数据,以便后续确定接口自动化测试结果。通过在录制过程中注入代码切片,拦截SQL语句时把SQL语句涉及到的库表里的数据复制后存储到录制平台数据库,且回放时接口不需要子调用Mock,而是在数据库中执行真正的SQL语句,提高了针对关系型数据库的功能覆盖度。

Description

接口自动化测试方法、系统、电子设备及存储介质
技术领域
本发明涉及计算机技术领域,特别涉及一种接口自动化测试方法、系统、电子设备及存储介质。
背景技术
接口自动化测试是目前软件研发过程中质量保证的重要环节,是一种高效率的功能回归测试的手段,而录制回放时当前接口自动化测试的一种常见手段。
现有的录制回放方案中,一些方案是通过录制被测接口的入参以及出参,回放时以同样的参数调用被测接口,并把接口响应和录制到的响应做对比,以实现接口自动化测试,但这类方案由于没有录制到过程以及底层数据,因此具有环境不可移植性,适用性低;还有一些方案是在录制被测接口的入参和出参的同时,注入代码去收集接口过程中涉及到的各个组件的子调用的出参、入参数据,回放时注入代码,把收集到的子调用的响应数据作为桩数据返回,过程不会真正的去访问各个组件,但这类方案通常是在持久层的做低吗拦截以及Mock,并没有在测试过程中真正的执行代码中的SQL语句,因此无法发现SQL语句的在功能或性能上的缺陷,覆盖率有遗漏。
因此,亟需一种可提高覆盖度的接口自动化测试的方法,以解决现有技术的上述技术问题。
发明内容
为了解决现有技术的不足,本发明的主要目的在于提供一种接口自动化测试方法、系统及电子设备,以解决现有技术的上述技术问题。
为了达到上述目的,第一方面本发明提供了一种接口自动化测试方法,所述方法包括:
调用接口进行录制时,持久层拦截第一SQL语句,并根据预设的规则转换所述第一SQL语句生成第二SQL语句;
在第一应用数据库中执行所述第二SQL语句,获取对应的目标返回数据;
调用所述接口进行回放前,将所述目标返回数据插入第二应用数据库中;
调用所述接口进行回放时,在所述第二应用数据库执行所述第一SQL语句,获取对应的回放返回数据,以便后续确定接口自动化测试结果。
在一些实施例中,所述调用接口进行回放前,将所述目标返回数据插入第二应用数据库中之前,包括:
复制所述目标返回数据并将所述目标返回数据存储于录制数据库中;
根据所述第二SQL语句在所述录制数据库中获取所述目标返回数据。
在一些实施例中,所述方法包括:
调用所述接口进行录制时,所述第一应用数据库执行所述第一SQL语句,查询并返回对应的录制返回数据;
对比所述录制返回数据及所述回放返回数据,若所述录制返回数据与所述回放返回数据一致,则判定所述接口自动化测试结果为正确;
若所述录制返回数据与所述回放返回数据不一致,则判定所述接口自动化测试结果为不正确。
在一些实施例中,所述调用接口进行录制时,持久层拦截第一SQL语句,并根据预设的规则转换所述第一SQL语句生成第二SQL语句之前,包括:
向所述持久层注入拦截代码切片、SQL语句转化代码切片。
在一些实施例中,所述调用接口进行录制时,持久层拦截第一SQL语句,并根据预设的规则转换所述第一SQL语句生成第二SQL语句,包括:
所述持久层执行所述拦截代码切片拦截第一SQL语句;
所述持久层执行所述SQL语句转化代码切片,将所述第一SQL语句中的delete和update语句转换为Select语句,根据转换后的所述第一SQL语句确定所述第二SQL语句。
在一些实施例中,所述在第一应用数据库中执行所述第二SQL语句,获取对应的目标返回数据,包括:
所述第二SQL语句用于查找所述第一应用数据库表里的所有字段。
在一些实施例中,所述方法包括:
所述录制返回数据至少包括:第一响应数据、第一消息及第一业务状态码;
所述回放返回数据至少包括:第二响应数据、第二消息及第二业务状态码。
第二方面,本申请提供了一种接口自动化测试系统,所述系统包括:
录制模块,用于在调用接口进行录制时,持久层拦截第一SQL语句,并根据预设的规则转换所述第一SQL语句生成第二SQL语句;
准备模块,用于在第一应用数据库中执行所述第二SQL语句,获取对应的目标返回数据;
所述准备模块,还用于调用所述接口进行回放前,将所述目标返回数据插入第二应用数据库中;
回放模块,用于在调用所述接口进行回放时,在所述第二应用数据库执行所述第一SQL语句查询对应的回放返回数据,以便后续确定接口自动化测试结果。
第三方面,本申请提供了一种电子设备,所述电子设备包括:
一个或多个处理器;
以及与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行权利要求1-7任一所述方法。
第四方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时用于实现权利要求1-7任一项所述的方法。
本申请实现的有益效果为:
本申请提供了一种接口自动化测试方法,包括调用接口进行录制时,持久层拦截第一SQL语句,并根据预设的规则转换所述第一SQL语句生成第二SQL语句;在第一应用数据库中执行所述第二SQL语句,获取对应的目标返回数据;调用所述接口进行回放前,将所述目标返回数据插入第二应用数据库中;调用所述接口进行回放时,在所述第二应用数据库执行所述第一SQL语句,获取对应的回放返回数据,以便后续确定接口自动化测试结果。本申请通过在录制过程中注入代码切片,在拦截到SQL语句的时候先把SQL语句涉及到的库表里的数据复制一份出来存储到录制平台数据库;回放前先把复制到录制平台数据库中的数据直接插入到接口对应的数据库,即先造数,回放时接口不需要把数据库子调用Mock,而是真正的让SQL语句在数据库中执行,能够提高针对关系型数据库的功能覆盖度。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,其中:
图1是本申请现有技术提供的录制流程图;
图2是本申请现有技术提供的回放流程图;
图3是本申请实施例提供的录制方法示意图;
图4是本申请实施例提供的回放方法示意图;
图5是本申请实施例提供的接口自动化测试方法流程图;
图6是本申请实施例提供的接口自动化测试系统示意图;
图7是本申请实施例提供的电子设备架构图;
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如背景技术所述,现有技术中一部分只录制被测接口的入参和出参,由于没有录制到过程和底层数据,所以不具备可移植性,换了一个环境回放就必然失败;另一部分在录制被测接口的入参和出参的同时,注入代码去收集接口过程中涉及到的各个组件的子调用的出、入参数据,把收集到的子调用的响应数据作为桩数据返回,过程不会真正的去访问各个组件,比如外部接口、关系型数据、非关系型数据库以及搜索引擎等。
参阅图1,针对这种现有技术的录制过程进行具体说明:
步骤1、向持久层注入出参和入参收集代码切片,以实现对子调用的出参和入参数据的收集;
步骤2-6、接口获取代码中的SQL语句(Structured Query Language,结构化查询语言),并在应用数据库中执行SQL语句并获取对应的返回数据;
步骤7、持久层中执行收集代码切片,将收集的步骤4的入参数据以及步骤6返回的返回数据存储到录制平台数据库中;
步骤8-10、将返回数据返回到接口上层逻辑处理并返回。
参阅图2,针对这种现有技术的回放过程进行具体说明:
步骤1、向持久层注入Mock代码切片;
步骤2-4、接口获取代码中的SQL语句,并对SQL语句进行处理;
步骤5-6、Mock代码切片根据步骤4的入参从录制平台数据库中寻找匹配的响应作为桩数据返回;
步骤7-9、将桩数据返回到接口上层逻辑处理并返回。
虽然这种现有技术具有可移植性,但是如果接口过程中涉及到关系型数据的子调用,这种现有技术的录制以及回放通常是在持久层做代码拦截以及Mock处理,这样代码中的SQL语言在测试过程中并没有真正的被执行,即时SQL语句的功能或者性能有缺陷也不会被发现,因此这种现有技术的覆盖率有遗漏。
为解决上述技术问题,本申请提供了一种接口自动化测试方法、系统及电子设备,通过在录制过程中注入代码切片,在拦截到SQL语句的时候先把SQL语句涉及到的库表里的数据复制一份出来存储到录制平台数据库;回放前先把复制到录制平台数据库中的数据直接插入到接口对应的数据库,即先造数,回放时接口不需要把数据库子调用Mock,而是真正的让SQL语句在数据库中执行,能够提高针对关系型数据库的功能覆盖度。
实施例一
本申请实施例提供了一种接口自动化测试方法,包括录制过程以及回放过程。
如图3所示,应用本实施例公开的接口自动化测试方法进行录制的过程包括:
S100、向持久层注入拦截代码切片、SQL语句转换代码切片;
其中,持久层用于存储需要持久化的业务数据,可以将数据永久保持的存储到设备中,不像放到内存中那样断电就消失。一般来说,对持久层更为直接的理解就是对数据库的各种操作,如增加、删除、修改、查询、更新等操作。持久层可以把持久的动作封装成一个独立的层,这是为了降低功能代码之间的关联。因此向持久层注入代码切片能够创建一个更清晰的抽象,提高代码的内聚力,降低代码的耦合度,提高可维护性和复用性,同时保证代码能够正确被执行以便后续数据库完成相关的处理操作。
S200、调用接口进行录制时,持久层拦截第一SQL语句,并根据预设的规则转换第一SQL语句生成第二SQL语句;
一般的SQL语句只能用来查找一个表的部分字段,因此本申请对一般的SQL语句进行转换,目的在于将一般的SQL语句转化成能够查找所有字段的SQL语句,具体的上述转化过程包括:
S210、持久层执行拦截代码切片拦截第一SQL语句;
S220、持久层执行SQL语句转化代码切片,将第一SQL语句中的delete和update语句转换为Select语句,根据转换后的第一SQL语句确定第二SQL语句。
举例而言,第一SQL语句的转化过程如下:
Case1:拦截到Select a,b from TableAwher id>10;将被转换为:
Select*from TableAwherid>10;
Case2:拦截到Update TableAset a=10where id>10;将被转化为:
Select*from TableAwher id>10;
Case3:拦截到Delete TableAwhere id>10;将被转化为:
Select*from TableAwher id>10;
Case4:拦截到SelectA.a,B.b from TableAA Inner Join TableB B onA.id=B.idwhereA.c>1将被转换为两条SQL:
Select A.*from TableA A Inner Join TableB B on A.id=B.id where A.c>1
Select B.*from TableA A Inner Join TableB B on A.id=B.id where A.c>1
S300、在第一应用数据库中执行第二SQL语句,获取并复制对应的目标返回数据,并将复制的目标返回数据存储在录制数据库中;
具体的,第二SQL语句用于查找第一应用数据库里的所有字段,以便后续调用接口进行回放时,获取回放返回数据。
S400、第一应用数据库执行第一SQL语句,查询并返回对应的录制返回数据;
其中,录制返回数据至少包括第一响应数据、第一消息及第一业务状态码。
如图4所示,应用本实施例公开的接口自动化测试方法进行回放的过程包括:
S500、在调用接口进行回放前,将目标返回数据插入第二应用数据库中;
S600、调用接口进行回放时,在第二应用数据库执行第一SQL语句获取对应的回放返回数据;
其中,回放返回数据至少包括第二响应数据、第二消息及第二业务状态码。
S700、对比录制返回数据及回放返回数据,确定接口自动化测试接口。
具体的,若所述录制返回数据与所述回放返回数据一致,则判定所述接口自动化测试正确;若所述录制返回数据与所述回放返回数据不一致,则判定所述接口自动化测试不正确。
值得注意的是,上述过程中,步骤S300可以独立于录制过程进行,也以按照上述过程中的顺序在录制过程中进行,本申请不做限定。
基于本申请实施例公开的接口自动化测试方法,在录制过程中注入代码切片,在拦截到SQL语句的时候先把SQL语句涉及到的库表里的数据复制一份出来存储到录制平台数据库;回放前先把复制到录制平台数据库中的数据直接插入到接口对应的数据库,即先造数,回放时接口不需要把数据库子调用Mock,而是真正的让SQL语句在数据库中执行,能够提高针对关系型数据库的功能覆盖度。
实施例二
对应上述实施例,本申请提供了一种接口自动化测试方法,如图5所示,所述方法包括:
5100、调用接口进行录制时,持久层拦截第一SQL语句,并根据预设的规则转换所述第一SQL语句生成第二SQL语句;
优选的,所述调用接口进行录制时,持久层拦截第一SQL语句,并根据预设的规则转换所述第一SQL语句生成第二SQL语句之前,包括:
5110、向所述持久层注入拦截代码切片、SQL语句转化代码切片。
优选的,所述调用接口进行录制时,持久层拦截第一SQL语句,并根据预设的规则转换所述第一SQL语句生成第二SQL语句,包括:
5120、所述持久层执行所述拦截代码切片拦截第一SQL语句;
5130、所述持久层执行所述SQL语句转化代码切片,将所述第一SQL语句中的delete和update语句转换为Select语句,根据转换后的所述第一SQL语句确定所述第二SQL语句。
5200、在第一应用数据库中执行所述第二SQL语句,获取对应的目标返回数据;
优选的,所述在第一应用数据库中执行所述第二SQL语句,获取对应的目标返回数据,包括:
5210、所述第二SQL语句用于查找所述第一应用数据库表里的所有字段。
5300、调用所述接口进行回放前,将所述目标返回数据插入第二应用数据库中;
优选的,所述调用接口进行回放前,将所述目标返回数据插入第二应用数据库中之前,包括:
5310、复制所述目标返回数据并将所述目标返回数据存储于录制数据库中;
5320、根据所述第二SQL语句在所述录制数据库中获取所述目标返回数据。
5400、调用所述接口进行回放时,在所述第二应用数据库执行所述第一SQL语句,获取对应的回放返回数据,以便后续确定接口自动化测试结果。
优选的,所述方法包括:
5410、调用所述接口进行录制时,所述第一应用数据库执行所述第一SQL语句,查询并返回对应的录制返回数据;
5420、对比所述录制返回数据及所述回放返回数据,若所述录制返回数据与所述回放返回数据一致,则判定所述接口自动化测试结果为正确;
5430、若所述录制返回数据与所述回放返回数据不一致,则判定所述接口自动化测试结果为不正确。
优选的,所述方法包括:
5440、所述录制返回数据至少包括:第一响应数据、第一消息及第一业务状态码;
所述回放返回数据至少包括:第二响应数据、第二消息及第二业务状态码。
实施例三
对应上述所有实施例,本申请实施例提供一种接口自动化系统,如图6所示,所述系统包括:
录制模块610,用于在调用接口进行录制时,持久层拦截第一SQL语句,并根据预设的规则转换所述第一SQL语句生成第二SQL语句;
准备模块620,用于在第一应用数据库中执行所述第二SQL语句,获取对应的目标返回数据;
所述准备模块620,还用于调用所述接口进行回放前,将所述目标返回数据插入第二应用数据库中;
回放模块630,用于在调用所述接口进行回放时,在所述第二应用数据库执行所述第一SQL语句查询对应的回放返回数据,以便后续确定接口自动化测试结果。
优选的,所述录制模块610还用于复制所述目标返回数据并将所述目标返回数据存储于录制数据库中;根据所述第二SQL语句在所述录制数据库中获取所述目标返回数据。
优选的,所述系统还包括判断模块640,所述判断模块640用于调用所述接口进行录制时,所述第一应用数据库执行所述第一SQL语句,查询并返回对应的录制返回数据;对比所述录制返回数据及所述回放返回数据,若所述录制返回数据与所述回放返回数据一致,则判定所述接口自动化测试结果为正确;若所述录制返回数据与所述回放返回数据不一致,则判定所述接口自动化测试结果为不正确。
优选的,所述准备模块620还用于向所述持久层注入拦截代码切片、SQL语句转化代码切片。
优选的,所述录制模块610还用于所述持久层执行所述拦截代码切片拦截第一SQL语句;所述持久层执行所述SQL语句转化代码切片,将所述第一SQL语句中的delete和update语句转换为Select语句,根据转换后的所述第一SQL语句确定所述第二SQL语句。
实施例四
对应上述所有实施例,本申请实施例提供一种电子设备,包括:
一个或多个处理器;以及与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行如下操作:
调用接口进行录制时,持久层拦截第一SQL语句,并根据预设的规则转换所述第一SQL语句生成第二SQL语句;
在第一应用数据库中执行所述第二SQL语句,获取对应的目标返回数据;
调用所述接口进行回放前,将所述目标返回数据插入第二应用数据库中;
调用所述接口进行回放时,在所述第二应用数据库执行所述第一SQL语句,获取对应的回放返回数据,以便后续确定接口自动化测试结果。
在一个具体的实施例中,所述调用接口进行回放前,将所述目标返回数据插入第二应用数据库中之前,包括:
复制所述目标返回数据并将所述目标返回数据存储于录制数据库中;
根据所述第二SQL语句在所述录制数据库中获取所述目标返回数据。
在一个具体的实施例中,所述方法包括:
调用所述接口进行录制时,所述第一应用数据库执行所述第一SQL语句,查询并返回对应的录制返回数据;
对比所述录制返回数据及所述回放返回数据,若所述录制返回数据与所述回放返回数据一致,则判定所述接口自动化测试结果为正确;
若所述录制返回数据与所述回放返回数据不一致,则判定所述接口自动化测试结果为不正确。
在一个具体的实施例中,所述调用接口进行录制时,持久层拦截第一SQL语句,并根据预设的规则转换所述第一SQL语句生成第二SQL语句之前,包括:
向所述持久层注入拦截代码切片、SQL语句转化代码切片。
在一个具体的实施例中,所述调用接口进行录制时,持久层拦截第一SQL语句,并根据预设的规则转换所述第一SQL语句生成第二SQL语句,包括:
所述持久层执行所述拦截代码切片拦截第一SQL语句;
所述持久层执行所述SQL语句转化代码切片,将所述第一SQL语句中的delete和update语句转换为Select语句,根据转换后的所述第一SQL语句确定所述第二SQL语句。
在一个具体的实施例中,所述在第一应用数据库中执行所述第二SQL语句,获取对应的目标返回数据,包括:
所述第二SQL语句用于查找所述第一应用数据库表里的所有字段。
在一个具体的实施例中,所述方法包括:
所述录制返回数据至少包括:第一响应数据、第一消息及第一业务状态码;
所述回放返回数据至少包括:第二响应数据、第二消息及第二业务状态码。
其中,图7示例性的展示出了电子设备的架构,具体可以包括处理器710,视频显示适配器711,磁盘驱动器712,输入/输出接口713,网络接口714,以及存储器720。上述处理器710、视频显示适配器711、磁盘驱动器712、输入/输出接口713、网络接口714,与存储器720之间可以通过总线730进行通信连接。
其中,处理器710可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本申请所提供的技术方案。
存储器720可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器720可以存储用于控制电子设备700运行的操作系统721,用于控制电子设备700的低级别操作的基本输入输出系统(BIOS)722。另外,还可以存储网页浏览器723,数据存储管理系统724,以及图标字体处理系统725等等。上述图标字体处理系统725就可以是本申请实施例中具体实现前述各步骤操作的应用程序。总之,在通过软件或者固件来实现本申请所提供的技术方案时,相关的程序代码保存在存储器720中,并由处理器710来调用执行。
输入/输出接口713用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
网络接口714用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线730包括一通路,在设备的各个组件(例如处理器710、视频显示适配器711、磁盘驱动器712、输入/输出接口713、网络接口714,与存储器720)之间传输信息。
另外,该电子设备700还可以从虚拟资源对象领取条件信息数据库中获得具体领取条件的信息,以用于进行条件判断,等等。
需要说明的是,尽管上述设备仅示出了处理器710、视频显示适配器711、磁盘驱动器712、输入/输出接口713、网络接口714,存储器720,总线730等,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本申请方案所必需的组件,而不必包含图中所示的全部组件。
实施例五
对应上述所有实施例,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时用于如下操作:
调用接口进行录制时,持久层拦截第一SQL语句,并根据预设的规则转换所述第一SQL语句生成第二SQL语句;
在第一应用数据库中执行所述第二SQL语句,获取对应的目标返回数据;
调用所述接口进行回放前,将所述目标返回数据插入第二应用数据库中;
调用所述接口进行回放时,在所述第二应用数据库执行所述第一SQL语句,获取对应的回放返回数据,以便后续确定接口自动化测试结果。
具体地,所述计算机在被处理器读取执行时,还可以执行上述实施例一或实施例二中所示方法中的各项步骤或操作,为描述简便,此处不作赘述。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,云服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种接口自动测试方法,其特征在于,所述方法包括:
调用接口进行录制时,持久层拦截第一SQL语句,并根据预设的规则转换所述第一SQL语句生成第二SQL语句;
在第一应用数据库中执行所述第二SQL语句,获取对应的目标返回数据;
调用所述接口进行回放前,将所述目标返回数据插入第二应用数据库中;
调用所述接口进行回放时,在所述第二应用数据库执行所述第一SQL语句,获取对应的回放返回数据,以便后续确定接口自动化测试结果。
2.根据权利要求1所述的方法,其特征在于,所述调用接口进行回放前,将所述目标返回数据插入第二应用数据库中之前,包括:
复制所述目标返回数据并将所述目标返回数据存储于录制数据库中;
根据所述第二SQL语句在所述录制数据库中获取所述目标返回数据。
3.根据权利要求1所述的方法,其特征在于,所述方法包括:
调用所述接口进行录制时,所述第一应用数据库执行所述第一SQL语句,查询并返回对应的录制返回数据;
对比所述录制返回数据及所述回放返回数据,若所述录制返回数据与所述回放返回数据一致,则判定所述接口自动化测试结果为正确;
若所述录制返回数据与所述回放返回数据不一致,则判定所述接口自动化测试结果为不正确。
4.根据权利要求1所述的方法,所述调用接口进行录制时,持久层拦截第一SQL语句,并根据预设的规则转换所述第一SQL语句生成第二SQL语句之前,包括:
向所述持久层注入拦截代码切片、SQL语句转化代码切片。
5.根据权利要求4所述的方法,其特征在于,所述调用接口进行录制时,持久层拦截第一SQL语句,并根据预设的规则转换所述第一SQL语句生成第二SQL语句,包括:
所述持久层执行所述拦截代码切片拦截第一SQL语句;
所述持久层执行所述SQL语句转化代码切片,将所述第一SQL语句中的delete和update语句转换为Select语句,根据转换后的所述第一SQL语句确定所述第二SQL语句。
6.根据权利要求1-5所述的方法,其特征在于,所述在第一应用数据库中执行所述第二SQL语句,获取对应的目标返回数据,包括:
所述第二SQL语句用于查找所述第一应用数据库表里的所有字段。
7.根据权利要求3所述方法,其特征在于,所述方法包括:
所述录制返回数据至少包括:第一响应数据、第一消息及第一业务状态码;
所述回放返回数据至少包括:第二响应数据、第二消息及第二业务状态码。
8.一种接口自动化测试系统,其特征在于,所述系统包括:
录制模块,用于在调用接口进行录制时,持久层拦截第一SQL语句,并根据预设的规则转换所述第一SQL语句生成第二SQL语句;
准备模块,用于在第一应用数据库中执行所述第二SQL语句,获取对应的目标返回数据;
所述准备模块,还用于调用所述接口进行回放前,将所述目标返回数据插入第二应用数据库中;
回放模块,用于在调用所述接口进行回放时,在所述第二应用数据库执行所述第一SQL语句查询对应的回放返回数据,以便后续确定接口自动化测试结果。
9.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
以及与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行权利要求1-7任一所述方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时用于实现权利要求1-7任一项所述的方法。
CN202111440239.7A 2021-11-30 2021-11-30 接口自动化测试方法、系统、电子设备及存储介质 Pending CN114328180A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111440239.7A CN114328180A (zh) 2021-11-30 2021-11-30 接口自动化测试方法、系统、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111440239.7A CN114328180A (zh) 2021-11-30 2021-11-30 接口自动化测试方法、系统、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN114328180A true CN114328180A (zh) 2022-04-12

Family

ID=81048144

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111440239.7A Pending CN114328180A (zh) 2021-11-30 2021-11-30 接口自动化测试方法、系统、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN114328180A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116302365A (zh) * 2023-05-17 2023-06-23 建信金融科技有限责任公司 数据持久层的测试方法、装置、电子设备和存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116302365A (zh) * 2023-05-17 2023-06-23 建信金融科技有限责任公司 数据持久层的测试方法、装置、电子设备和存储介质
CN116302365B (zh) * 2023-05-17 2023-08-15 建信金融科技有限责任公司 数据持久层的测试方法、装置、电子设备和存储介质

Similar Documents

Publication Publication Date Title
CN111026645B (zh) 用户界面自动化测试方法、装置、存储介质及电子设备
CN110013672B (zh) 用于机器运行的游戏的自动化测试的方法、设备、装置以及计算机可读存储介质
JP2001142738A (ja) スクリプタおよびインタープリタ
CN110716853A (zh) 一种测试脚本录制方法、应用程序测试方法和相关装置
WO2019075994A1 (zh) 一种iOS端Mock数据的方法、存储介质、设备及系统
CN115080398A (zh) 一种接口自动化测试系统及方法
CN110837474A (zh) 一种脚本录制方法、装置、终端及存储介质
WO2009076827A1 (zh) 一种自动化测试方法、系统及一种测试设备
CN116204438A (zh) 测试用例生成方法、自动化测试方法和相关装置
CN115658529A (zh) 用户页面的自动化测试方法以及相关设备
CN104320793A (zh) 一种手机短信自动化测试方法及系统
CN111694550A (zh) 一种页面显示控制方法、装置及系统
CN111651232A (zh) 一机多控方法、装置、系统及电子设备
CN114328180A (zh) 接口自动化测试方法、系统、电子设备及存储介质
CN114185791A (zh) 一种数据映射文件的测试方法、装置、设备及存储介质
CN114328250A (zh) 软件系统自动自检方法、介质和装置
CN109684213A (zh) 一种测试方法、装置及存储介质
CN109828920A (zh) 一种日志分析方法、装置及计算机可读存储介质
CN113485909A (zh) 测试方法、装置、计算设备以及介质
US11106571B2 (en) Identification of input object in a graphical user interface
CN112650689A (zh) 测试方法、装置、电子设备及存储介质
CN112069082A (zh) 一种自动化测试方法及系统
CN117235107B (zh) 数据访问处理方法、装置、电子设备及存储介质
CN117130946B (zh) 一种测试场景生成方法、装置、电子设备和可读存储介质
CN113608996B (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