CN111737140A - 接口自动化测试方法、装置、设备及计算机可读存储介质 - Google Patents
接口自动化测试方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111737140A CN111737140A CN202010597341.7A CN202010597341A CN111737140A CN 111737140 A CN111737140 A CN 111737140A CN 202010597341 A CN202010597341 A CN 202010597341A CN 111737140 A CN111737140 A CN 111737140A
- Authority
- CN
- China
- Prior art keywords
- test
- engine
- protocol
- target
- mock
- 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
- 238000010998 test method Methods 0.000 title claims abstract description 27
- 238000012360 testing method Methods 0.000 claims abstract description 644
- 238000000034 method Methods 0.000 claims abstract description 38
- 238000011144 upstream manufacturing Methods 0.000 claims description 30
- 230000008859 change Effects 0.000 claims description 13
- 230000008569 process Effects 0.000 claims description 11
- 238000012545 processing Methods 0.000 claims description 10
- 230000002159 abnormal effect Effects 0.000 claims description 8
- 238000005516 engineering process Methods 0.000 abstract description 5
- 239000000047 product Substances 0.000 description 34
- 238000007726 management method Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 230000001960 triggered effect Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 239000000284 extract Substances 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000001502 supplementing effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000012550 audit Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 235000016709 nutrition Nutrition 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 235000015097 nutrients Nutrition 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000013049 sediment Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- KDYFGRWQOYBRFD-UHFFFAOYSA-N succinic acid Chemical compound OC(=O)CCC(O)=O KDYFGRWQOYBRFD-UHFFFAOYSA-N 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及金融科技(Fintech)技术领域,本发明公开了一种接口自动化测试方法、装置、设备和计算机可读存储介质,该方法包括:在接收到接口协议测试请求时,获取所述接口协议测试请求对应待测试的目标版本协议;若存在与所述目标版本协议关联的基线版本协议,则比对所述目标版本协议与所述基线版本协议,获得协议更新信息;获取所述基线版本协议对应的基线测试引擎,根据所述协议更新信息更新所述基线测试引擎,获得目标测试引擎;根据所述目标测试引擎生成目标测试用例,运行所述目标测试用例获得所述目标版本协议的目标测试结果。本发明通过协议版本比对测试,不需要测试人员审核测试结果,提高了回归测试的效率。
Description
技术领域
本发明涉及金融科技(Fintech)技术领域,尤其涉及接口自动化测试方法、装置、设备及计算机可读存储介质。
背景技术
随着互联网技术,尤其是互联网金融科技(Fintech)的飞速发展,越来越多的技术(大数据、分布式、区块链Blockchain、人工智能等)应用在金融领域,金融业务平台的功能越来越多。
金融业务平台通常设置大量的数据接口,实现金融业务数据交互,在金融业务平台接口开发完成时,需要进行接口测试,由于数据接口较多则用于接口测试的测试用例也较多,当前测试用例主要通过手动编写较为麻烦,测试用例生成时间较长,接口测试效率较低,基于此部分开发者对提出了测试用例自动化生成方案,自动化生成测试用例缩短了测试用例的编写时间,一定程度上提高了接口测试效率,然而,针对频繁的回归测试,由于每次自动化生成的测试用例各不相同,每次得到到测试结果各不相同,每次都需要进行测试结果分析,测试结果中的错误发现效率低,回归测试的时间长。
发明内容
本发明的主要目的在于提出一种接口自动化测试方法、装置、设备及计算机可读存储介质,旨在解决当前接口回归测试方法,使用不同的测试用例每次得到到测试结果各不相同,每次都需要单独测试结果分析,测试结果中的错误发现效率低,回归测试的时间长的技术问题。
为实现上述目的,本发明提供一种接口自动化测试方法,所述接口自动化测试方法包括如下步骤:
在接收到接口协议测试请求时,获取所述接口协议测试请求对应待测试的目标版本协议;
若存在与所述目标版本协议关联的基线版本协议,则比对所述目标版本协议与所述基线版本协议,获得协议更新信息;
获取所述基线版本协议对应的基线测试引擎,根据所述协议更新信息更新所述基线测试引擎,获得目标测试引擎;
根据所述目标测试引擎生成目标测试用例,运行所述目标测试用例获得所述目标版本协议的目标测试结果。
可选地,所述在接收到接口协议测试请求时,获取所述接口协议测试请求对应待测试的目标版本协议的步骤之后,所述方法包括:
判断是否存在与所述目标版本协议关联的基线版本协议;
若不存在与所述目标版本协议关联的所述基线版本协议,则分析所述目标版本协议生成目标测试引擎,其中,所述目标测试引擎包括业务规则引擎、基础字段引擎和MOCK测试引擎;
根据所述目标测试引擎生成目标测试用例,运行所述目标测试用例获得所述目标版本协议的目标测试结果。
可选地,所述若不存在与所述目标版本协议关联的所述基线版本协议,则分析所述目标版本协议生成目标测试引擎的步骤,包括:
若不存在与所述目标版本协议关联的所述基线版本协议,则分析所述目标版本协议,获取所述目标版本协议的业务场景标识;
查询预设养数平台,获取所述业务场景标识对应的业务测试规则,汇总所述业务测试规则生成业务规则引擎;
遍历所述目标版本协议的协议属性,根据预先配置的发散规则和所述协议属性中的字段类型、字段长度和字段枚举进行发散生成基础字段引擎;
从预设协议管理平台拉取所述目标版本协议的协议内容信息和协议上下游关系,根据所述协议内容信息和所述协议上下游关系生成MOCK测试引擎;
将所述业务规则引擎、所述基础字段引擎和所述MOCK测试引擎组合生成目标测试引擎。
可选地,所述从预设协议管理平台拉取所述目标版本协议的协议内容信息和协议上下游关系,根据所述协议内容信息和所述协议上下游关系生成MOCK测试引擎的步骤,包括:
从预设协议管理平台拉取所述目标版本协议的协议内容信息和协议上下游关系,根据所述协议上下游关系,获取所述目标版本协议下游待MOCK的各目标下游协议;
获取所述目标下游协议中预设配置的进行笛卡尔发散的目标字段,将所述目标下游协议根据所述目标字段做笛卡尔积,生成成功MOCK集合和失败MOCK集合;
将所述成功MOCK集合之间做笛卡尔积,获得成功类MOCK规则,将所述失败MOCK集合与所述成功MOCK集合中一个元素做笛卡尔积,获得失败类MOCK规则;
将所述成功类MOCK规则和所述失败类MOCK规则汇总生成所述MOCK测试引擎。
可选地,所述获取所述基线版本协议对应的基线测试引擎,根据所述协议更新信息更新所述基线测试引擎,获得目标测试引擎的步骤,包括:
获取所述基线版本协议对应的基线测试引擎,其中,所述基线测试引擎包括:业务规则引擎、基础字段引擎和/或MOCK测试引擎;
查询预设养数平台,从所述预设养数平台中获取所述协议更新信息中的更新场景标识,及所述更新场景标识对应的更新测试规则,将所述更新测试规则添加到所述业务规则引擎,获得更新的业务规则引擎;
遍历所述协议更新信息的新增属性,根据所述新增属性中的变化类型、变化长度和新增枚举对所述基础字段引擎进行更新,获得更新的基础字段引擎;
将所述协议更新信息与所述MOCK测试引擎中的MOCK规则做笛卡尔积对所述MOCK测试引擎进行更新,获得更新的MOCK测试引擎;
将所述更新的业务规则引擎、所述更新的基础字段引擎和所述更新的MOCK测试引擎组合获得目标测试引擎。
可选地,所述根据所述目标测试引擎生成目标测试用例,运行所述目标测试用例获得所述目标版本协议的目标测试结果的步骤,包括:
获取所述目标测试引擎中的业务规则引擎、基础字段引擎和MOCK测试引擎;
从所述业务规则引擎中抽取业务引擎规则、从所述基础字段引擎中抽取字段引擎规则,和从所述MOCK测试引擎中抽取MOCK引擎规则;
根据所述业务引擎规则、所述字段引擎规则和所述MOCK引擎规则生成目标测试用例,运行所述目标测试用例获得所述目标版本协议的目标测试结果。
可选地,所述根据所述业务引擎规则、所述字段引擎规则和所述MOCK引擎规则生成目标测试用例,运行所述目标测试用例获得所述目标版本协议的目标测试结果的步骤,包括:
获取所述业务引擎规则的基础案例,调用预设自动化测试平台处理所述基础案例生成业务报文,拦截所述业务报文生成业务类型测试用例;
获取所述字段引擎规则,调用预设自动化测试平台处理必过的业务引擎规则生成基础报文,拦截所述基础报文,按照所述字段引擎规则修改所述基础报文,生成字段类型测试用例;
获取所述MOCK引擎规则,调用预设自动化测试平台处理必过的业务引擎规则生成基础报文,拦截所述基础报文,按照所述MOCK引擎规则处理所述基础报文,生成MOCK类型测试用例;
将所述业务类型测试用例、所述字段类型测试用例和所述MOCK类型测试用例做笛卡尔积生成目标测试用例,运行所述目标测试用例获得所述目标版本协议的目标测试结果。
可选地,所述根据所述目标测试引擎生成目标测试用例,运行所述目标测试用例获得所述目标版本协议的目标测试结果的步骤之后,所述方法包括:
获取所述目标测试用例对应的预设业务流水号,将所述目标版本协议的目标测试结果与所述预设业务流水号关联保存;
在接收到测试结果比对请求时,以所述预设业务流水号为主键,获取所述目标版本协议对应的目标测试结果,和所述基线版本协议对应的基线测试结果;
比对所述目标测试结果和所述基线测试结果去除冗余数据,输出比对异常信息。
此外,为实现上述目的,本发明还提供一种接口自动化测试装置,所述接口自动化测试装置包括:
请求接收模块,用于在接收到接口协议测试请求时,获取所述接口协议测试请求对应待测试的目标版本协议;
协议比对模块,用于若存在与所述目标版本协议关联的基线版本协议,则比对所述目标版本协议与所述基线版本协议,获得协议更新信息;
引擎更新模块,用于获取所述基线版本协议对应的基线测试引擎,根据所述协议更新信息更新所述基线测试引擎,获得目标测试引擎;
运行测试模块,用于根据所述目标测试引擎生成目标测试用例,运行所述目标测试用例获得所述目标版本协议的目标测试结果。
此外,为实现上述目的,本发明还提供一种接口自动化测试设备,所述接口自动化测试设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的接口自动化测试程序,所述接口自动化测试程序被所述处理器执行时实现如上所述的接口自动化测试方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有接口自动化测试程序,所述接口自动化测试程序被处理器执行时实现如上所述的接口自动化测试方法的步骤。
本发明提供一种接口自动化测试方法、装置、设备及计算机可读存储介质。本发明实施例中在接收到接口协议测试请求时,获取所述接口协议测试请求对应待测试的目标版本协议;判断是否存在与所述目标版本协议关联的基线版本协议,若存在与所述目标版本协议关联的基线版本协议,则判定为回归测试,比对所述目标版本协议与所述基线版本协议,获得协议更新信息;获取所述基线版本协议对应的基线测试引擎,根据所述协议更新信息更新所述基线测试引擎,获得目标测试引擎;根据所述目标测试引擎生成目标测试用例,运行所述目标测试用例获得所述目标版本协议的目标测试结果,即,本实施例中通过更新测试引擎,并利用更新的测试引擎更新测试用例,与当前接口回归测试相比,当前的接口回归测试每次都是创建测试用例,由于每次的测试用例是一个新的用例,那么基于该测试用例获得的测试结果也是新的测试结果,每次都需要进测试结果分析,测试结果中错误发现的效率低;而本申请的测试用例是根据目标协议版本进行更新,目标协议版本获得的测试结果,与基线版本协议获得的测试结果相近,可以将同一个更新前后测试用例的测试结果进行比对,可以快速定位问题,提高了测试结果中错误发现的效率,不需要人工审核减少了测试人员人工审核的工作量,提高了接口自动化测试的效率。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图;
图2为本发明接口自动化测试方法第一实施例的流程示意图;
图3为本发明接口自动化测试方法第一实施例中MOCK测试引擎创建的具体场景示意图;
图4为本发明接口自动化测试方法第二实施例中的流程示意图;
图5为本发明接口自动化测试方法第二实施例中业务规则引擎更新的场景示意图;
图6为本发明接口自动化测试方法第二实施例中基础字段引擎更新的场景示意图;
图7为本发明接口自动化测试方法第二实施例中MOCK测试引擎更新的流程示意图;
图8为本发明接口自动化测试方法第四实施例中结果比对的场景示意图;
图9为本发明接口自动化测试装置一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
现有的接口测试方案持续集成CI测试平台(Continuous Integration TestingPlatform:又叫自动化测试平台,制定好测试用例输入和预期校验点,可以手动或者自动触发执行的测试测试用例)该平台的测试方案提供自动化用例以及自动化计划的生成,需要手工构建树形式自动化用例,提供断言机制,支持内置函数和表达式计算断言结果,支持数据库查询预期与实际比较。
CI测试平台关联协议报文发送工具,协议发报工具需要手工组装接口报文执行,并需要手工检查运行结果和后台之间的交互是否正常,并自行输出测试报告作为后续测试记录沉淀。CI测试平台关联挡板平台该平台用于模拟上下游***返回报文,也叫挡板***,第一次使用挡板***需要人工部署到使用上游***中,并在上游***所在的页面中设置MOCK挡板规则,通过启用或关闭规则来触发模拟挡板的生效。
这样的接口测试方案测试测试用例编写成本高:现有CI测试场景覆盖不足,现存大量存量测试用例补充困难。现在有挡板平台每种场景都需要单独做配置,测试中大量异常场景构造挡板耗时耗力。测试测试用例断言编写复杂、易遗漏;测试测试用例的频繁回归测试,测试比对结果需要人工介入审核,大量的测试用例让人处于疲劳性分析的状态,不利于回归测试的高效进行,基于现有技术接口测试方案的不足,提出了本发明接口自动化测试方法、装置、设备及计算机可读存储介质。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图。
本发明实施例接口自动化测试设备可以是PC机或服务器。
如图1所示,该接口自动化测试设备可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的设备结构并不构成对设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作***、网络通信模块、用户接口模块以及接口自动化测试程序。
在图1所示的设备中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的接口自动化测试程序,并执行下述接口自动化测试方法中的操作。
基于上述硬件结构,提出本发明接口自动化测试方法实施例。
参照图2,图2为本发明接口自动化测试方法第一实施例的流程示意图,所述方法包括:
步骤S10,在接收到接口协议测试请求时,获取所述接口协议测试请求对应待测试的目标版本协议;
本实施例中接口自动化测试方法应用于接口自动化测试设备,接口自动化测试设备是接口自动化测试计算机程序的硬件载体,本实施例中的自动化测试设备可以设置在不同金融机构。
接口自动化测试设备接收接口测试请求,其中,接口测试请求的触发方式不作具体限定,即,接口测试请求可以是用户主动触发的,例如,用户点击接口自动化测试设备显示界面中的:“接口测试”虚拟按键手动触发接口测试请求;此外,接口测试请求还可以是接口自动化测试设备自动触发的,例如,测试人员预先在接口测试设备中设置:在检测到接口版本更新时,自动触发接口测试请求,接口自动化测试设备实时地监测接口的状态,在接口自动化测试设备检测到发布新的接口协议版本时,接口自动化测试设备自动触发接口测试请求。
接口自动化测试设备在接收到接口协议测试请求时,接口自动化测试设备获取接口协议测试请求对应待测试的目标版本协议,其中,目标版本协议内容不做具体限定,即,目标版本协议可以是第一个版本的接口协议,还可以是第二个版本的接口协议及其以后更新版本的接口协议。
步骤S20,判断是否存在与所述目标版本协议关联的基线版本协议;
接口自动化测试设备在获取到待测试的目标版本协议之后,接口自动化测试设备获取目标版本协议的版本标识,接口自动化测试设备根据版本标识确定目标版本协议是否为第一个协议版本,在目标版本协议是第一个协议版本时,接口自动化测试设备判定不存在与目标版本协议关联的基线版本协议,接口自动化测试设备需要根据目标版本协议直接创建测试用例;在目标版本协议不是第一个协议版本时,接口自动化测试设备判定存在与目标版本协议关联的基线版本协议,接口自动化测试设备可以对基线版本协议的测试用例进行更新,生成目标版本协议对应的测试用例,其中,基线版本协议是项目储存库中每个工件版本在特定时期的一个“快照”,它提供一个正式标准,随后的工作基于此标准,并且只有经过授权后才能变更这个标准,建立一个初始基线后,以后每次对其进行的变更都将记录为一个差值,直到建成下一个基线版本协议。
本实施例中的技术方案是为了减少测试人员审核测试结果的操作,因此,接口自动化测试设备判断是否存在目标版本协议关联的基线版本协议,若存在与目标版本协议关联的基线版本协议,则根据基线版本协议进行测试用例更新,利用通过更新后的测试用例进行测试,获得测试结果,这样可以直接比对测试结果不需要进行人工审核。
为了方便理解,本实施例中先对不存在与目标版本协议关联的基线版本协议的接口测试进行说明,即本实施例中首先说明在目标版本协议是初始版本协议时,接口自动化测试设备对初始版本协议进行接口自动化测试的步骤,具体地:
步骤S30,若不存在与所述目标版本协议关联的所述基线版本协议,则分析所述目标版本协议生成目标测试引擎,其中,所述目标测试引擎包括业务规则引擎、基础字段引擎和MOCK测试引擎;
若不存在与目标版本协议关联的基线版本协议,接口自动化测试设备则分析目标版本协议生成目标测试引擎,其中,目标测试引擎包括业务规则引擎、基础字段引擎和MOCK测试引擎,业务规则引擎(Business Rule Engine):根据部分特例的业务需求提供配置机制,并按照预设的配置生成测试用例池。基础字段引擎(Interface Field Rule Engine):根据接口的全量字段的属长度、必填性、枚举等属性自动生成基础字段校验测试用例池。MOCK引擎(Mock Rule Engine):MOCK服务是一个针对网络、代码、RMB的服务而提出的挡板工具,MOCK引擎是基于MOCK服务提出的一套异常场景测试用例自动化生成的方案;具体地,包括:
步骤a1,若不存在与所述目标版本协议关联的所述基线版本协议,则分析所述目标版本协议,获取所述目标版本协议的业务场景标识;
步骤a2,查询预设养数平台,获取所述业务场景标识对应的业务测试规则,汇总所述业务测试规则生成业务规则引擎;
步骤a3,遍历所述目标版本协议的协议属性,根据预先配置的发散规则和所述协议属性中的字段类型、字段长度和字段枚举进行发散生成基础字段引擎;
步骤a4,从预设协议管理平台拉取所述目标版本协议的协议内容信息和协议上下游关系,根据所述协议内容信息和所述协议上下游关系生成MOCK测试引擎;
步骤a5,将所述业务规则引擎、所述基础字段引擎和所述MOCK测试引擎组合生成目标测试引擎。
若不存在与目标版本协议关联的基线版本协议,接口自动化测试设备则分析目标版本协议,获取目标版本协议的业务场景标识,本实施例中步骤a2接口自动化测试设备根据业务场景标识生成业务规则引擎,包括:接口自动化测试设备查询预设养数平台(预设养数平台是指预先设置的业务数据管理平台,预设养数平台中包含有各个接口对应的业务场景标识,业务场景标识相关的业务场景信息,和各个业务场景信息对应的业务测试规则,预设养数平台具体用于在批次执行完成,验证测试用例后,下个批次日切和日切同步时自动触发调用规则,实时抓取该批次符合要求形态的数据,并对数据进行管理的平台),获取业务场景标识对应的业务测试规则,汇总业务测试规则生成业务规则引擎。
即,接口自动化测试设备在自动化测试平台人工配置一条自动化测试基础案例,用来维护动作排程及动作间的参数传递,业务规则引擎通过自动化测试平台中的基础案例和养数平台场景集合批量生成业务规则引擎池(1*n),待测协议养数平台场景更新后,业务引擎同步自动更新,补充到业务引擎池中,生成业务规则引擎。
例如,业务规则引擎根据养数平台场景自动生成引擎数据储存到引擎池;养数平台场景变更触发自动更新引擎,支持人工维护,规则分为必过、成功、失败三类,其中必过规则用于生成字段类型测试用例和MOCK类型测试用例使用。业务引擎池包括引擎规则标识、养数平台在的场景标识、自动化测试平台基础规则标识、规则摘要、状态等字段。例如,规则摘要取自养数平台场景,如,养数平台场景“931”,摘要“按单结清-单笔,0T借款,停留在0T+1日”。
本实施例中步骤a3接口自动化测试设备生成基础字段引擎,包括:接口自动化测试设备遍历目标版本协议的协议属性,根据预先配置的发散规则和协议属性中的字段类型、字段长度和字段枚举进行发散生成基础字段引擎。
例如,1、若字段为STRING类型:若有默认值,发散出等于默认值、不等于默认值、为空字符串、为NULL几种情况;若有枚举值,发散出等于各个枚举值、非枚举值、为空字符串、为NULL几种情况;若无默认值和枚举值,发散出空字符串、NULL、等长、超长几种情况;2、若字段为DECIMAL类型:发散出空字符串、NULL值;发散出负数且maxLength(最大精度长度)等长delLength(最小数长度)等长随机数;0;0.0;0.00;maxLength等长delLength等长随机数;maxLength等长delLength超长随机数;maxLength超长delLength等长随机数;3、若字段为TIME类型:根据***时间发散YYYYMMddHHmmss和一些非法情况量;4、若字段为NUMBER类型:空;负数且maxLength等长随机数;0;maxLength等长随机数;maxLength超长随机数;maxLength等长字母+随机数;5、若字段为MsgFieldArray类型:发散出空;一组数据;两组数据;将发散出的规则存入字段引擎池。
本实施例中步骤a4接口自动化测试设备生成MOCK测试引擎,MOCK引擎是根据协议上下游关系及属性值自动生成保存引擎规则的引擎池;MOCK引擎池包括引擎规则ID、MOCK报文头、MOCK报文体、规则摘要、状态等字段。摘要为下游服务id及要mock的服务状态,如,MOCK报文头“{"02100040":"response.errCode='0000';response.retStatus='S';response.retList=”;","02300298":"response.errCode='9999';response.retStatus='F';response.retList=”;"”,MOCK报文体“{"02100040":{"retCode":"30790000","retMsg":"MOCKSUCC"},"02300298":{"retCode":"30790002","retMsg":"MOCKFAIL"}}”,摘要{"02100040":"succ","02300298":"fail"},代表02100040协议返回成功,02300298服务返回失败。MOCK测试引擎生成的步骤,包括:
步骤a41,从预设协议管理平台拉取所述目标版本协议的协议内容信息和协议上下游关系,根据所述协议上下游关系,获取所述目标版本协议下游待MOCK的各目标下游协议;
步骤a42,获取所述目标下游协议中预设配置的进行笛卡尔发散的目标字段,将所述目标下游协议根据所述目标字段做笛卡尔积,生成成功MOCK集合和失败MOCK集合;
步骤a43,将所述成功MOCK集合之间做笛卡尔积,获得成功类MOCK规则,将所述失败MOCK集合与所述成功MOCK集合中一个元素做笛卡尔积,获得失败类MOCK规则;
步骤a44,将所述成功类MOCK规则和所述失败类MOCK规则汇总生成所述MOCK测试引擎。
例如,1、接口自动化测试设备预先配置下游协议中哪些字段需要笛卡尔发散,各个属性成功枚举集合、失败枚举集合。如图3所示,协议1含属性A和B,其中A:{0},B:{a}为成功枚举值集合,A:{1},B:{b,c}为失败枚举值集合;2、接口自动化测试设备根据待测协议上下游关系(1:n),获取到下游需MOCK的协议;3、接口自动化测试设备每个下游协议根据发散字段配置做笛卡儿积生成各自成功、失败MOCK集合,如图3所示,接口1成功集合间做笛卡尔积{0}*{a}={0,a},失败集合间做笛卡尔积{1}*{b,c}={1,b},{1,c};4、各下游协议间成功类型集合做笛卡儿积生成成功类MOCK规则,写入引擎池;如图3接口1和接口2的成功MOCK集合进行笛卡尔积生成{0,a,d},{0,a,e};4、各下游协议失败类集合只需与其他所有协议第一个通过数据集进行组合,写入引擎池。如图3接口1失败MOCK集合和接口2第一个通过的成功MOCK集合进行笛卡尔积生成{1,b,d},{1,c,d},将成功类MOCK规则和失败类MOCK规则汇总生成MOCK测试引擎;接口自动化测试设备将业务规则引擎、基础字段引擎和MOCK测试引擎组合生成目标测试引擎。
接口自动化测试设备通过驱动目标测试引擎生成测试用例进行接口自动化测试,具体地:
步骤S40,根据所述目标测试引擎生成目标测试用例,运行所述目标测试用例获得所述目标版本协议的目标测试结果。
接口自动化测试设备中业务规则引擎驱动业务类型测试用例自动生成;基础字段引擎驱动协议字段类型测试用例自动生成;MOCK引擎驱动MOCK类型测试用例自动生成;目标测试引擎选择三大引擎数据进行笛卡尔积生成目标测试用例,即,接口自动化测试设备从目标测试引擎对应的引擎池中抽取业务类型测试用例、字段类型测试用例和MOCK类型测试用例,并将业务类型测试用例、字段类型测试用例和MOCK类型测试用例进行拼接,形成目标测试用例,接口自动化测试设备运行目标测试用例获得所述目标版本协议的目标测试结果。本实施例中接口自动化测试设备在目标协议版本是初始协议版本时创建测试用例,使得接口自动化测试更加高效。
进一步地,参照图4,图4为本发明接口自动化测试方法第二实施例的流程示意图。
基于本发明接口自动化测试方法第一实施例,提出本发明接口自动化测试方法第二实施例;本实施例是第一实施例中步骤S20之后的步骤,本实施例与上述实施的区别在于:
步骤S50,若存在与所述目标版本协议关联的基线版本协议,则比对所述目标版本协议与所述基线版本协议,获得协议更新信息。
若存在与目标版本协议关联的基线版本协议,接口自动化测试设备则比对目标版本协议与基线版本协议,获得协议更新信息,接口自动化测试设备根据协议更新信息进行测试引擎更新,具体地:
步骤S60,获取所述基线版本协议对应的基线测试引擎,根据所述协议更新信息更新所述基线测试引擎,获得目标测试引擎。
接口自动化测试设备获取基线版本协议对应的基线测试引擎,接口自动化测试设备根据协议更新信息更新基线测试引擎,获得目标测试引擎,具体地,包括:
步骤b1,获取所述基线版本协议对应的基线测试引擎,其中,所述基线测试引擎包括:业务规则引擎、基础字段引擎和/或MOCK测试引擎;
步骤b2,查询预设养数平台,从所述预设养数平台中获取所述协议更新信息中的更新场景标识,及所述更新场景标识对应的更新测试规则,将所述更新测试规则添加到所述业务规则引擎,获得更新的业务规则引擎;
步骤b3,遍历所述协议更新信息的新增属性,根据所述新增属性中的变化类型、变化长度和新增枚举对所述基础字段引擎进行更新,获得更新的基础字段引擎;
步骤b4,将所述协议更新信息与所述MOCK测试引擎中的MOCK规则做笛卡尔积对所述MOCK测试引擎进行更新,获得更新的MOCK测试引擎;
步骤b5,将所述更新的业务规则引擎、所述更新的基础字段引擎和所述更新的MOCK测试引擎组合获得目标测试引擎。
即,接口自动化测试设备获取基线版本协议对应的基线测试引擎,基线测试引擎包括:业务规则引擎、基础字段引擎和/或MOCK测试引擎,接口自动化测试设备分别更新业务规则引擎、基础字段引擎和/或MOCK测试引擎,参照图5,图5为本发明接口自动化测试方法第二实施例中业务规则引擎更新的场景示意图;本实施例中更新业务规则引擎的步骤b1包括:接口自动化测试设备查询预设养数平台,从预设养数平台中获取协议更新信息中的更新场景标识,及更新场景标识对应的更新测试规则,接口自动化测试设备将更新测试规则添加到业务规则引擎,获得更新的业务规则引擎。
参照图6,图6为本发明接口自动化测试方法第二实施例中基础字段引擎更新的场景示意图,本实施例中接口自动化测试设备更新基础字段引擎的步骤包括:1、同步协议管理平台(协议管理模块采用定时轮询机制实时拉取协议管理平台的最新版本协议以及上下游关系,自动同步到协议接口管理模块中,并提供个性化协议配置功能。后续引擎生成、更新依赖协议属性的定义及协议上下游关系,协议管理模块包括接口配置管理和上下游接口管理)新版本协议。2、比对目标版本协议和基线版本协议这两个新旧版本协议,获取到新增属性、属性新增枚举、类型变化、长度变化;3、根据新增属性、新增枚举、类型变更等信息依据后台定义规则自动发散新增引擎规则,补充添加到引擎池中,获得更新的业务规则引擎。
参照图7,图7为本发明接口自动化测试方法第二实施例中MOCK测试引擎更新的流程示意图;本实施例中接口自动化测试设备更新MOCK测试引擎的步骤包括:1、对比新老下游协议,识别并存储更新后的变化:新增枚举、新增字段、新增上下游结果口,删减无需处理;例如,a.如果新增枚举:用原有笛卡尔积数据集合与新增枚举重新笛卡尔积,补充到引擎池中。如图3接口1的A字段新增成功枚举2,成功MOCK集合增加枚举2与B字段成功MOCK集合做笛卡尔积生成{2,a}。新增的MOCK集合执行MOCK引擎生成逻辑生成引擎规则。b.如果新增字段:用原有笛卡尔积数据集合与新增字段的各枚举值重新笛卡尔积,补充到引擎池中。如图3接口1新增C字段,原成功或失败MOCK集合与C字段成功或失败枚举进行笛卡尔积,重组后的笛卡尔积组合更新原MOCK集合中的元素,比如:{0,a}为{0,a,w}等,同时新增剩余的规则补充到MOCK集合中。更新后的MOCK集合笛卡尔积后更新原MOCK引擎中的规则,并新增规则补充到引擎中。c.如果新增协议:判断上下游协议是否参与MOCK,若参与,重走MOCK引擎生成逻辑,获得更新的MOCK测试引擎。
接口自动化测试设备将更新的业务规则引擎、更新的基础字段引擎和更新的MOCK测试引擎组合获得目标测试引擎,以通过目标测试引擎进行接口自动化测试,具体地:
步骤S70,根据所述目标测试引擎生成目标测试用例,运行所述目标测试用例获得所述目标版本协议的目标测试结果。
接口自动化测试设备中业务规则引擎驱动业务类型测试用例自动生成;基础字段引擎驱动协议字段类型测试用例自动生成;MOCK引擎驱动MOCK类型测试用例自动生成;目标测试引擎选择三大引擎数据进行笛卡尔积生成目标测试用例,即,接口自动化测试设备从目标测试引擎对应的引擎池中抽取业务类型测试用例、字段类型测试用例和MOCK类型测试用例,并将业务类型测试用例、字段类型测试用例和MOCK类型测试用例进行拼接,形成目标测试用例,接口自动化测试设备运行目标测试用例获得目标版本协议的目标测试结果。
本发明实施例中在接收到接口协议测试请求时,获取所述接口协议测试请求对应待测试的目标版本协议;判断是否存在与所述目标版本协议关联的基线版本协议,若存在与所述目标版本协议关联的基线版本协议,则判定为回归测试,比对所述目标版本协议与所述基线版本协议,获得协议更新信息;获取所述基线版本协议对应的基线测试引擎,根据所述协议更新信息更新所述基线测试引擎,获得目标测试引擎;根据所述目标测试引擎生成目标测试用例,运行所述目标测试用例获得所述目标版本协议的目标测试结果,即,本实施例中通过更新测试引擎,并利用更新的测试引擎更新测试用例,与当前接口回归测试相比,当前的接口回归测试每次都是创建测试用例,由于每次的测试用例是一个新的用例,那么基于该测试用例获得的测试结果也是新的测试结果,而本发明实施例的测试用例是根据目标协议版本进行更新,目标协议版本获得的测试结果,与基线版本协议获得的测试结果相近,可以将同一个更新前后测试用例的测试结果进行比对,可以快速定位问题,提高了错误发现的效率,不需要人工审核减少了测试人员人工审核的工作量,提高了接口自动化测试的效率。
进一步地,基于本发明接口自动化测试方法上述实施例,提出本发明接口自动化测试方法第三实施例。
本实施例是第一实施例中步骤S40和/或第二实施例中步骤S70的细化,本实施例中给出了根据所述目标测试引擎生成目标测试用例,运行所述目标测试用例获得所述目标版本协议的目标测试结果的具体实现方式,包括:
获取所述目标测试引擎中的业务规则引擎、基础字段引擎和MOCK测试引擎;
从所述业务规则引擎中抽取业务引擎规则、从所述基础字段引擎中抽取字段引擎规则,和从所述MOCK测试引擎中抽取MOCK引擎规则;
根据所述业务引擎规则、所述字段引擎规则和所述MOCK引擎规则生成目标测试用例,运行所述目标测试用例获得所述目标版本协议的目标测试结果。
接口自动化设备获取目标测试引擎中的业务规则引擎、基础字段引擎和MOCK测试引擎;接口自动化设备从业务规则引擎中抽取业务引擎规则、从基础字段引擎中抽取字段引擎规则,和从MOCK测试引擎中抽取MOCK引擎规则;接口自动化设备根据业务引擎规则、字段引擎规则和MOCK引擎规则生成目标测试用例,运行所述目标测试用例获得所述目标版本协议的目标测试结果,具体地,包括:
获取所述业务引擎规则的基础案例,调用预设自动化测试平台处理所述基础案例生成业务报文,拦截所述业务报文生成业务类型测试用例;
获取所述字段引擎规则,调用预设自动化测试平台处理必过的业务引擎规则生成基础报文,拦截所述基础报文,按照所述字段引擎规则修改所述基础报文,生成字段类型测试用例;
获取所述MOCK引擎规则,调用预设自动化测试平台处理必过的业务引擎规则生成基础报文,拦截所述基础报文,按照所述MOCK引擎规则处理所述基础报文,生成MOCK类型测试用例;
将所述业务类型测试用例、所述字段类型测试用例和所述MOCK类型测试用例做笛卡尔积生成目标测试用例,运行所述目标测试用例获得所述目标版本协议的目标测试结果。
即,接口自动化测试设备生成获取业务引擎规则的基础案例,调用预设自动化测试平台处理所述基础案例生成业务报文,拦截业务报文生成业务类型测试用例,包括:1、获取业务引擎规则的自动化测试平台基础案例、养数平台场景标识,调用自动化测试平台,拦截自动化测试平台生成的报文落入测试用例池,生成业务类型测试用例。
接口自动化测试设备基础字段类型测试用例生成过程:1、获取字段引擎规则。2、获取必过业务引擎规则。调用CI平台,拦截CI平台生成的报文;3、根据字段引擎规则,篡改报文A,得到用例报文A',落入用例池,生成基础字段类型测试用例。例如,测试用例id、名称为必过业务引擎和对应字段引擎id、摘要分别拼接。如,用例id“B0000000001_F15759718157471”,用例名称“按单结清-单笔,0T借款,停留在0T+1日,APP_TYPE枚举值范围内”。
接口自动化测试设备MOCK类型测试用例生成过程:1、获取MOCK引擎规则;2、获取必过业务引擎规则。调用CI平台,拦截CI平台生成的报文。落入用例池。3、全部mock用例生成之后,以用例“预设业务流水号”作为if条件拼接MOCK引擎中各个mock报文,生成MOCK配置。将MOCK配置推送到mockserver平台。接口自动化测试设备将业务类型测试用例、字段类型测试用例和MOCK类型测试用例做笛卡尔积生成目标测试用例,运行目标测试用例获得所述目标版本协议的目标测试结果。本实施例中根据目标测试引擎生成目标测试用例,不需要测试人员手动编写目标测试用例,提高了接口自动化测试的效率。
进一步地,基于本发明接口自动化测试方法上述实施例,提出了本发明接口自动化测试方法第四实施例。
本实施例是第一实施例中步骤S40和第二实施例中步骤S70的之后的步骤,本实施例中上述实施例的区别在于:
获取所述目标测试用例对应的预设业务流水号,将所述目标版本协议的目标测试结果与所述预设业务流水号关联保存;
在接收到测试结果比对请求时,以所述预设业务流水号为主键,获取所述目标版本协议对应的目标测试结果,和所述基线版本协议对应的基线测试结果;
比对所述目标测试结果和所述基线测试结果去除冗余数据,输出比对异常信息。
接口自动化测试设备获取目标测试用例对应的预设业务流水号,接口自动化测试设备将目标版本协议的目标测试结果与所述预设业务流水号关联保存;在接收到测试结果比对请求时,以所述预设业务流水号为主键,获取所述目标版本协议对应的目标测试结果,和所述基线版本协议对应的基线测试结果;比对所述目标测试结果和所述基线测试结果去除冗余数据,输出比对异常信息。
具体地,参照图8,图8为本发明接口自动化测试方法第四实施例中结果比对的场景示意图;接口自动化测试设备获取目标版本协议的目标报文和目标DB;接口自动化测试设备获取基线版本协议的基线报文和基线目标DB,结果比对分为报文比对和DB比对,报文、DB比对是用例级比对,根据报文、DB对比结果回溯用例执行结果,报文比对仅对用例返回报文进行一致性比对即可,配置用例“预设业务流水号”和各个表主键关联关系。以全量库表主键作为DB比对SQL中的查询条件,生成子***维度场景无关的全量库表查询语句,各个用例DB结果以“预设业务流水号”作为入参获取全量库表结果用例级备份,执行的测试计划与基线版本的返回报文做一致性校验,得到一致记录、不一致记录,以及基线版本缺失比对记录。不一致的差异记录可能为噪声,如时间戳等字段。提供噪生统计分析功能,方便人工维护噪声字段列表;本实施例中预设业务流水号为主键,进行测试结果比对,输出测试接口结果的异常信息,不需要测试人员进行人工审核,提高了回归测试效率。
参照图9,图9本发明接口自动化测试装置一实施例的功能模块示意图,在本发明接口自动化测试装置的实施例中,所述接口自动化测试装置包括:
请求接收模块,用于在接收到接口协议测试请求时,获取所述接口协议测试请求对应待测试的目标版本协议;
协议比对模块,用于若存在与所述目标版本协议关联的基线版本协议,则比对所述目标版本协议与所述基线版本协议,获得协议更新信息;
引擎更新模块,用于获取所述基线版本协议对应的基线测试引擎,根据所述协议更新信息更新所述基线测试引擎,获得目标测试引擎;
运行测试模块,用于根据所述目标测试引擎生成目标测试用例,运行所述目标测试用例获得所述目标版本协议的目标测试结果。
在一实施例中,所述接口自动化测试装置,包括:
协议判断模块,用于判断是否存在与所述目标版本协议关联的基线版本协议;
引擎生成模块,用于若不存在与所述目标版本协议关联的所述基线版本协议,则分析所述目标版本协议生成目标测试引擎,其中,所述目标测试引擎包括业务规则引擎、基础字段引擎和MOCK测试引擎;
运行测试模块,用于根据所述目标测试引擎生成目标测试用例,运行所述目标测试用例获得所述目标版本协议的目标测试结果。
在一实施例中,所述引擎生成模块,包括:
分析获取单元,用于若不存在与所述目标版本协议关联的所述基线版本协议,则分析所述目标版本协议,获取所述目标版本协议的业务场景标识;
第一生成单元,用于查询预设养数平台,获取所述业务场景标识对应的业务测试规则,汇总所述业务测试规则生成业务规则引擎;
第二生成单元,用于遍历所述目标版本协议的协议属性,根据预先配置的发散规则和所述协议属性中的字段类型、字段长度和字段枚举进行发散生成基础字段引擎;
第三生成单元,用于从预设协议管理平台拉取所述目标版本协议的协议内容信息和协议上下游关系,根据所述协议内容信息和所述协议上下游关系生成MOCK测试引擎;
第四生成单元,用于将所述业务规则引擎、所述基础字段引擎和所述MOCK测试引擎组合生成目标测试引擎。
在一实施例中,所述第三生成单元,还用于:
从预设协议管理平台拉取所述目标版本协议的协议内容信息和协议上下游关系,根据所述协议上下游关系,获取所述目标版本协议下游待MOCK的各目标下游协议;
获取所述目标下游协议中预设配置的进行笛卡尔发散的目标字段,将所述目标下游协议根据所述目标字段做笛卡尔积,生成成功MOCK集合和失败MOCK集合;
将所述成功MOCK集合之间做笛卡尔积,获得成功类MOCK规则,将所述失败MOCK集合与所述成功MOCK集合中一个元素做笛卡尔积,获得失败类MOCK规则;
将所述成功类MOCK规则和所述失败类MOCK规则汇总生成所述MOCK测试引擎。
在一实施例中,所述引擎更新模块,包括:
引擎获取单元,用于获取所述基线版本协议对应的基线测试引擎,其中,所述基线测试引擎包括:业务规则引擎、基础字段引擎和/或MOCK测试引擎;
第一更新单元,用于查询预设养数平台,从所述预设养数平台中获取所述协议更新信息中的更新场景标识,及所述更新场景标识对应的更新测试规则,将所述更新测试规则添加到所述业务规则引擎,获得更新的业务规则引擎;
第二更新单元,用于遍历所述协议更新信息的新增属性,根据所述新增属性中的变化类型、变化长度和新增枚举对所述基础字段引擎进行更新,获得更新的基础字段引擎;
第三更新单元,用于将所述协议更新信息与所述MOCK测试引擎中的MOCK规则做笛卡尔积对所述MOCK测试引擎进行更新,获得更新的MOCK测试引擎;
引擎组合单元,用于将所述更新的业务规则引擎、所述更新的基础字段引擎和所述更新的MOCK测试引擎组合获得目标测试引擎。
在一实施例中,所述运行测试模块,包括:
引擎获取单元,用于获取所述目标测试引擎中的业务规则引擎、基础字段引擎和MOCK测试引擎;
规则抽取单元,用于从所述业务规则引擎中抽取业务引擎规则、从所述基础字段引擎中抽取字段引擎规则,和从所述MOCK测试引擎中抽取MOCK引擎规则;
用例生成单元,用于根据所述业务引擎规则、所述字段引擎规则和所述MOCK引擎规则生成目标测试用例,运行所述目标测试用例获得所述目标版本协议的目标测试结果。
在一实施例中,所述用例生成单元,还用于:
获取所述业务引擎规则的基础案例,调用预设自动化测试平台处理所述基础案例生成业务报文,拦截所述业务报文生成业务类型测试用例;
获取所述字段引擎规则,调用预设自动化测试平台处理必过的业务引擎规则生成基础报文,拦截所述基础报文,按照所述字段引擎规则修改所述基础报文,生成字段类型测试用例;
获取所述MOCK引擎规则,调用预设自动化测试平台处理必过的业务引擎规则生成基础报文,拦截所述基础报文,按照所述MOCK引擎规则处理所述基础报文,生成MOCK类型测试用例;
将所述业务类型测试用例、所述字段类型测试用例和所述MOCK类型测试用例做笛卡尔积生成目标测试用例,运行所述目标测试用例获得所述目标版本协议的目标测试结果。
在一实施例中,所述接口自动化测试装置,包括:
获取保存模块,用于获取所述目标测试用例对应的预设业务流水号,将所述目标版本协议的目标测试结果与所述预设业务流水号关联保存;
结果获取模块,用于在接收到测试结果比对请求时,以所述预设业务流水号为主键,获取所述目标版本协议对应的目标测试结果,和所述基线版本协议对应的基线测试结果;
结果比对模块,用于比对所述目标测试结果和所述基线测试结果去除冗余数据,输出比对异常信息。
本发明实施例中在接收到接口协议测试请求时,获取所述接口协议测试请求对应待测试的目标版本协议;判断是否存在与所述目标版本协议关联的基线版本协议,若存在与所述目标版本协议关联的基线版本协议,则判定为回归测试,比对所述目标版本协议与所述基线版本协议,获得协议更新信息;获取所述基线版本协议对应的基线测试引擎,根据所述协议更新信息更新所述基线测试引擎,获得目标测试引擎;根据所述目标测试引擎生成目标测试用例,运行所述目标测试用例获得所述目标版本协议的目标测试结果,即,本实施例中通过更新测试引擎,并利用更新的测试引擎更新测试用例,与当前接口回归测试相比,当前的接口回归测试每次都是创建测试用例,由于每次的测试用例是一个新的用例,那么基于该测试用例获得的测试结果也是新的测试结果,而本申请的测试用例是根据目标协议版本进行更新,目标协议版本获得的测试结果,与基线版本协议获得的测试结果相近,这样测试人员可以快速定位问题,减少了测试人员人工审核的工作量,进一步地提高了接口自动化测试的效率。
上述各程序模块所执行的方法可参照本发明接口自动化测试方法各个实施例,此处不再赘述。
本发明还提供一种计算机可读存储介质。
本发明计算机可读存储介质上存储有接口自动化测试程序,所述接口自动化测试程序被处理器执行时实现如上所述的接口自动化测试方法的步骤。
其中,在所述处理器上运行的接口自动化测试程序被执行时所实现的方法可参照本发明接口自动化测试方法各个实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者***不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者***所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者***中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (11)
1.一种接口自动化测试方法,其特征在于,所述接口自动化测试方法包括如下步骤:
在接收到接口协议测试请求时,获取所述接口协议测试请求对应待测试的目标版本协议;
若存在与所述目标版本协议关联的基线版本协议,则比对所述目标版本协议与所述基线版本协议,获得协议更新信息;
获取所述基线版本协议对应的基线测试引擎,根据所述协议更新信息更新所述基线测试引擎,获得目标测试引擎;
根据所述目标测试引擎生成目标测试用例,运行所述目标测试用例获得所述目标版本协议的目标测试结果。
2.如权利要求1所述的接口自动化测试方法,其特征在于,所述在接收到接口协议测试请求时,获取所述接口协议测试请求对应待测试的目标版本协议的步骤之后,所述方法包括:
判断是否存在与所述目标版本协议关联的基线版本协议;
若不存在与所述目标版本协议关联的所述基线版本协议,则分析所述目标版本协议生成目标测试引擎,其中,所述目标测试引擎包括业务规则引擎、基础字段引擎和MOCK测试引擎;
根据所述目标测试引擎生成目标测试用例,运行所述目标测试用例获得所述目标版本协议的目标测试结果。
3.如权利要求2所述的接口自动化测试方法,其特征在于,所述若不存在与所述目标版本协议关联的所述基线版本协议,则分析所述目标版本协议生成目标测试引擎的步骤,包括:
若不存在与所述目标版本协议关联的所述基线版本协议,则分析所述目标版本协议,获取所述目标版本协议的业务场景标识;
查询预设养数平台,获取所述业务场景标识对应的业务测试规则,汇总所述业务测试规则生成业务规则引擎;
遍历所述目标版本协议的协议属性,根据预先配置的发散规则和所述协议属性中的字段类型、字段长度和字段枚举进行发散生成基础字段引擎;
从预设协议管理平台拉取所述目标版本协议的协议内容信息和协议上下游关系,根据所述协议内容信息和所述协议上下游关系生成MOCK测试引擎;
将所述业务规则引擎、所述基础字段引擎和所述MOCK测试引擎组合生成目标测试引擎。
4.如权利要求3所述的接口自动化测试方法,其特征在于,所述从预设协议管理平台拉取所述目标版本协议的协议内容信息和协议上下游关系,根据所述协议内容信息和所述协议上下游关系生成MOCK测试引擎的步骤,包括:
从预设协议管理平台拉取所述目标版本协议的协议内容信息和协议上下游关系,根据所述协议上下游关系,获取所述目标版本协议下游待MOCK的各目标下游协议;
获取所述目标下游协议中预设配置的进行笛卡尔发散的目标字段,将所述目标下游协议根据所述目标字段做笛卡尔积,生成成功MOCK集合和失败MOCK集合;
将所述成功MOCK集合之间做笛卡尔积,获得成功类MOCK规则,将所述失败MOCK集合与所述成功MOCK集合中一个元素做笛卡尔积,获得失败类MOCK规则;
将所述成功类MOCK规则和所述失败类MOCK规则汇总生成所述MOCK测试引擎。
5.如权利要求1所述的接口自动化测试方法,其特征在于,所述获取所述基线版本协议对应的基线测试引擎,根据所述协议更新信息更新所述基线测试引擎,获得目标测试引擎的步骤,包括:
获取所述基线版本协议对应的基线测试引擎,其中,所述基线测试引擎包括:业务规则引擎、基础字段引擎和/或MOCK测试引擎;
查询预设养数平台,从所述预设养数平台中获取所述协议更新信息中的更新场景标识,及所述更新场景标识对应的更新测试规则,将所述更新测试规则添加到所述业务规则引擎,获得更新的业务规则引擎;
遍历所述协议更新信息的新增属性,根据所述新增属性中的变化类型、变化长度和新增枚举对所述基础字段引擎进行更新,获得更新的基础字段引擎;
将所述协议更新信息与所述MOCK测试引擎中的MOCK规则做笛卡尔积对所述MOCK测试引擎进行更新,获得更新的MOCK测试引擎;
将所述更新的业务规则引擎、所述更新的基础字段引擎和所述更新的MOCK测试引擎组合获得目标测试引擎。
6.如权利要求1或2所述的接口自动化测试方法,其特征在于,所述根据所述目标测试引擎生成目标测试用例,运行所述目标测试用例获得所述目标版本协议的目标测试结果的步骤,包括:
获取所述目标测试引擎中的业务规则引擎、基础字段引擎和MOCK测试引擎;
从所述业务规则引擎中抽取业务引擎规则、从所述基础字段引擎中抽取字段引擎规则,和从所述MOCK测试引擎中抽取MOCK引擎规则;
根据所述业务引擎规则、所述字段引擎规则和所述MOCK引擎规则生成目标测试用例,运行所述目标测试用例获得所述目标版本协议的目标测试结果。
7.如权利要求6所述的接口自动化测试方法,其特征在于,所述根据所述业务引擎规则、所述字段引擎规则和所述MOCK引擎规则生成目标测试用例,运行所述目标测试用例获得所述目标版本协议的目标测试结果的步骤,包括:
获取所述业务引擎规则的基础案例,调用预设自动化测试平台处理所述基础案例生成业务报文,拦截所述业务报文生成业务类型测试用例;
获取所述字段引擎规则,调用预设自动化测试平台处理必过的业务引擎规则生成基础报文,拦截所述基础报文,按照所述字段引擎规则修改所述基础报文,生成字段类型测试用例;
获取所述MOCK引擎规则,调用预设自动化测试平台处理必过的业务引擎规则生成基础报文,拦截所述基础报文,按照所述MOCK引擎规则处理所述基础报文,生成MOCK类型测试用例;
将所述业务类型测试用例、所述字段类型测试用例和所述MOCK类型测试用例做笛卡尔积生成目标测试用例,运行所述目标测试用例获得所述目标版本协议的目标测试结果。
8.如权利要求1-7任意一项所述的接口自动化测试方法,其特征在于,所述根据所述目标测试引擎生成目标测试用例,运行所述目标测试用例获得所述目标版本协议的目标测试结果的步骤之后,所述方法包括:
获取所述目标测试用例对应的预设业务流水号,将所述目标版本协议的目标测试结果与所述预设业务流水号关联保存;
在接收到测试结果比对请求时,以所述预设业务流水号为主键,获取所述目标版本协议对应的目标测试结果,和所述基线版本协议对应的基线测试结果;
比对所述目标测试结果和所述基线测试结果去除冗余数据,输出比对异常信息。
9.一种接口自动化测试装置,其特征在于,所述接口自动化测试装置包括:
请求接收模块,用于在接收到接口协议测试请求时,获取所述接口协议测试请求对应待测试的目标版本协议;
协议比对模块,用于若存在与所述目标版本协议关联的基线版本协议,则比对所述目标版本协议与所述基线版本协议,获得协议更新信息;
引擎更新模块,用于获取所述基线版本协议对应的基线测试引擎,根据所述协议更新信息更新所述基线测试引擎,获得目标测试引擎;
运行测试模块,用于根据所述目标测试引擎生成目标测试用例,运行所述目标测试用例获得所述目标版本协议的目标测试结果。
10.一种接口自动化测试设备,其特征在于,所述接口自动化测试设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的接口自动化测试程序,所述接口自动化测试程序被所述处理器执行时实现如权利要求1至8中任一项所述的接口自动化测试方法的步骤。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有接口自动化测试程序,所述接口自动化测试程序被处理器执行时实现如权利要求1至8中任一项所述的接口自动化测试方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010597341.7A CN111737140A (zh) | 2020-06-28 | 2020-06-28 | 接口自动化测试方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010597341.7A CN111737140A (zh) | 2020-06-28 | 2020-06-28 | 接口自动化测试方法、装置、设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111737140A true CN111737140A (zh) | 2020-10-02 |
Family
ID=72651364
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010597341.7A Pending CN111737140A (zh) | 2020-06-28 | 2020-06-28 | 接口自动化测试方法、装置、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111737140A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112468358A (zh) * | 2020-11-05 | 2021-03-09 | 苏州浪潮智能科技有限公司 | 一种协议检测方法、***、设备及计算机可读存储介质 |
CN112818307A (zh) * | 2021-02-25 | 2021-05-18 | 深信服科技股份有限公司 | 用户操作处理方法、***、设备及计算机可读存储介质 |
CN113342695A (zh) * | 2021-07-13 | 2021-09-03 | 中国工商银行股份有限公司 | 软件版本测试方法及装置 |
CN115061916A (zh) * | 2022-06-21 | 2022-09-16 | 中国平安财产保险股份有限公司 | 自动化生成接口测试用例的方法及其相关设备 |
CN115134397A (zh) * | 2022-06-28 | 2022-09-30 | 中国银行股份有限公司 | 一种自适应的交易挡板平台的实现方法、装置及设备 |
CN115687161A (zh) * | 2022-12-30 | 2023-02-03 | 云筑信息科技(成都)有限公司 | 基于扫描maven仓库自动生成接口测试用例的方法 |
CN113342695B (zh) * | 2021-07-13 | 2024-07-09 | 中国工商银行股份有限公司 | 软件版本测试方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140245264A1 (en) * | 2013-02-28 | 2014-08-28 | International Business Machines Corporation | Identifying Test Cases Based on Changed Test Code |
CN105302710A (zh) * | 2014-07-03 | 2016-02-03 | 腾讯科技(深圳)有限公司 | 一种确定需要回归测试的测试用例的方法和装置 |
CN108694104A (zh) * | 2017-04-12 | 2018-10-23 | 北京京东尚科信息技术有限公司 | 一种接口功能对比测试方法、装置、电子设备和储存介质 |
CN109446068A (zh) * | 2018-09-26 | 2019-03-08 | 平安健康保险股份有限公司 | 接口测试方法、装置、计算机设备和存储介质 |
-
2020
- 2020-06-28 CN CN202010597341.7A patent/CN111737140A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140245264A1 (en) * | 2013-02-28 | 2014-08-28 | International Business Machines Corporation | Identifying Test Cases Based on Changed Test Code |
CN105302710A (zh) * | 2014-07-03 | 2016-02-03 | 腾讯科技(深圳)有限公司 | 一种确定需要回归测试的测试用例的方法和装置 |
CN108694104A (zh) * | 2017-04-12 | 2018-10-23 | 北京京东尚科信息技术有限公司 | 一种接口功能对比测试方法、装置、电子设备和储存介质 |
CN109446068A (zh) * | 2018-09-26 | 2019-03-08 | 平安健康保险股份有限公司 | 接口测试方法、装置、计算机设备和存储介质 |
Non-Patent Citations (2)
Title |
---|
KANG, SS (KANG, SEONG-SEOK) ET AL.: "SITAT: Simulation-based Interface Testing Automation Tool for Robot Software Component", INTERNATIONAL CONFERENCE ON CONTROL, AUTOMATION AND SYSTEMS (ICCAS 2010), 30 October 2010 (2010-10-30), pages 1781 - 1784, XP031836914 * |
范典华;杨奇民;代蕊;: "在线计费接口自动化测试***及应用", 电脑与电信, no. 12, 10 December 2015 (2015-12-10) * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112468358A (zh) * | 2020-11-05 | 2021-03-09 | 苏州浪潮智能科技有限公司 | 一种协议检测方法、***、设备及计算机可读存储介质 |
CN112468358B (zh) * | 2020-11-05 | 2022-07-22 | 苏州浪潮智能科技有限公司 | 一种协议检测方法、***、设备及计算机可读存储介质 |
CN112818307A (zh) * | 2021-02-25 | 2021-05-18 | 深信服科技股份有限公司 | 用户操作处理方法、***、设备及计算机可读存储介质 |
CN112818307B (zh) * | 2021-02-25 | 2024-05-28 | 深信服科技股份有限公司 | 用户操作处理方法、***、设备及计算机可读存储介质 |
CN113342695A (zh) * | 2021-07-13 | 2021-09-03 | 中国工商银行股份有限公司 | 软件版本测试方法及装置 |
CN113342695B (zh) * | 2021-07-13 | 2024-07-09 | 中国工商银行股份有限公司 | 软件版本测试方法及装置 |
CN115061916A (zh) * | 2022-06-21 | 2022-09-16 | 中国平安财产保险股份有限公司 | 自动化生成接口测试用例的方法及其相关设备 |
CN115134397A (zh) * | 2022-06-28 | 2022-09-30 | 中国银行股份有限公司 | 一种自适应的交易挡板平台的实现方法、装置及设备 |
CN115687161A (zh) * | 2022-12-30 | 2023-02-03 | 云筑信息科技(成都)有限公司 | 基于扫描maven仓库自动生成接口测试用例的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11789715B2 (en) | Systems and methods for transformation of reporting schema | |
CN111737140A (zh) | 接口自动化测试方法、装置、设备及计算机可读存储介质 | |
US11429365B2 (en) | Systems and methods for automated retrofitting of customized code objects | |
US8005803B2 (en) | Best practices analyzer | |
US10509719B2 (en) | Automatic regression identification | |
CN104679500B (zh) | 实体类自动生成实现方法及装置 | |
US20230259358A1 (en) | Documentation enforcement during compilation | |
CN111737334A (zh) | 数据上报方法、装置、设备及存储介质 | |
US10459698B2 (en) | Framework for generating adapters in an integrated development environment | |
CN116627849B (zh) | ***测试方法、装置、设备及存储介质 | |
CN116881145B (zh) | 基于流量回放的接口测试方法、装置、设备以及存储介质 | |
CN110968569B (zh) | 数据库的管理方法、数据库的管理装置及存储介质 | |
CN116467188A (zh) | 一种多环境场景下的通用本地复现***和方法 | |
CN114003293B (zh) | 接口管理方法、装置、电子设备以及可读存储介质 | |
CN114840429A (zh) | 识别版本冲突的方法、装置、设备、介质和程序产品 | |
KR100962656B1 (ko) | 테스트케이스의 재활용을 효율적으로 개선한 시스템 유지및 보수를 위한 테스트 수행 방법 및 시스템 | |
CN112667491A (zh) | 虚拟机的功能测试方法及装置 | |
WO2024098746A1 (zh) | 测试方法、装置及相关设备 | |
CN116594918B (zh) | 一种测试用例变更影响分析方法、装置、设备及存储介质 | |
US11989123B1 (en) | Systems, methods, and media for updating, managing, and maintaining a reference template for web service API testing | |
CN117668327A (zh) | 组件识别方法、装置、终端设备以及存储介质 | |
CN113419738A (zh) | 接口文档的生成方法、装置及接口管理设备 | |
CN117763026A (zh) | 接口对接方法及装置、电子设备、存储介质 | |
CN117420988A (zh) | 基于电网主站的前置服务***的搭建方法及装置 | |
CN115221064A (zh) | Locust性能测试方法、装置、电子设备及存储介质 |
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 |