动态字段数据返回接口的测试系统、方法、电子设备和可读存储介质技术方案

技术编号:19176986 阅读:35 留言:0更新日期:2018-10-17 00:18
本发明专利技术提供一种动态字段数据返回接口的测试系统和方法,所述动态字段数据返回接口返回的待测数据包含字段集,每个字段是键‑值对并根据对应的预定义期望字段数据来校验,根据一个字段的键能够确定对应的期望字段数据。本发明专利技术的方法包括:接收返回的待测数据,根据设定的遍历次序对该待测数据的字段集执行遍历,并且对每个当前字段执行如下步骤:取得该当前字段的键和值;根据所述键确定与该当前字段对应的期望字段数据;提取该期望字段数据中包含校验信息;根据提取的校验信息执行对该当前字段的校验,并且当校验失败时记录该当前字段的键和相关的失败信息。

Dynamic field data return interface test system, method, electronic device and readable storage medium

The present invention provides a testing system and method for a dynamic field data return interface. The data returned by the dynamic field data return interface contains a set of fields, each of which is a key value pair and is checked according to the corresponding predefined expected field data, and the number of corresponding expected fields can be determined according to the key of one field. According to it. The method of the invention includes: receiving the returned test data, traversing the field set of the test data according to the set traversal order, and performing the following steps for each current field: obtaining the key and value of the current field; determining the expected field data corresponding to the current field according to the key; and extracting the expectation. The field data contains check information; the current field is checked according to the extracted check information, and the key and related failure information of the current field are recorded when the check fails.

【技术实现步骤摘要】
动态字段数据返回接口的测试系统、方法、电子设备和可读存储介质
本专利技术涉及动态字段数据返回接口的测试系统、方法、电子设备和可读存储介质。
技术介绍
一个电商网站需要展示不同种类的商品信息,供消费者查看并选择购买,而这些商品信息在电商网站的后台系统通常以接口服务的形式提供给前台页面做展示。不同种类的商品,商品信息的内容和组织也不同。不同的商品信息字段名称不同,字段数量不同,字段间的结构关系不同。这就导致了动态结构字段数据返回接口服务的诞生。例如,一个电商平台有数千种商品类目,前台的商品详细页面会向商品服务接口发出请求,请求商品的详细信息数据。这种服务接口被称为为动态字段数据返回接口服务。在现有技术中,动态字段数据返回接口返回的数据是对象(object),如利用Json串表示。对于这种复杂的数据结构,测试处理的实现是比较困难的。目前,用于处理java接口服务的主流自动化测试框架是junit和testng。testng自动化测试框架对被调用接口返回的object类型处理,主要有如下2种方法:(1)assertEquals(Stringmessage,Objectunexpected,Objectactual)断言接口返回object是否跟预期object相同,若不同,校验失败,并且返回message信息;(2)assertNotEquals(Stringmessage,Objectunexpected,Objectactual)断言接口返回object是否跟预期object不同,若相同,校验失败,并且返回message信息。testng的处理方法是将接口返回待测Json和期望Json当成对象(object)来比较。为了不对接口返回object和预期object进行地址比较,需要重写object的equals方法,进而对每个字段进行比较。junit对接口返回为object类型的处理与testng是相同的。现有技术有如下缺点:(1)对于动态字段数据返回接口服务返回的较复杂的Json格式,重写object的equal方法对各字段做比较,这要求自动化代码书写人员有很强的编码能力;(2)自动化代码对业务依赖度高,要求自动化代码编写人员必须详细了解各种业务,造成开发周期长,成本高,相应地对于业务变更等,维护成本,维护周期也会较长;(3)代码复用程度低,每分出一种业务,就需要维护相应的自动化测试代码;(4)对于一些无需校验的字段,比如数据库流水ID号等字段,不做断言处理的需求,难以实现;(5)对于现有断言,无法准确给出精确到具体字段的失败信息,导致当测试用例执行失败时,排查问题困难。
技术实现思路
为了解决上述问题,提出本专利技术。根据本专利技术的一个方面,提供一种动态字段数据返回接口的测试系统,所述动态字段数据返回接口返回待测数据,所述待测数据包含字段集,每个字段是键-值对,每个字段根据对应的预定义期望字段数据来校验,根据一个字段的键能够确定对应的期望字段数据,所述系统包括:期望数据存储模块,用于存储所述期望字段数据;测试模块,用于接收动态字段数据返回接口返回的待测数据,根据设定的遍历顺序对该待测数据的字段集执行遍历,并且在遍历中对每个当前字段执行如下步骤:取得该当前字段的键和值;根据所述键确定与该当前字段对应的期望字段数据;提取该期望字段数据中包含的校验信息;根据提取的校验信息执行对该当前字段的校验,并且当校验失败时记录该当前字段的键和相关的失败信息,以及测试结果输出模块,用于输出所述测试模块记录的校验失败的字段的键和相关的失败信息。根据本专利技术的另一方面,提供一种动态字段数据返回接口的测试方法,所述动态字段数据返回接口返回待测数据,所述待测数据包含字段集,每个字段是键-值对,每个字段根据对应的预定义期望字段数据来校验,根据一个字段的键能够确定对应的期望字段数据,所述方法包括:接收动态字段数据返回接口返回的待测数据,根据设定的遍历次序对该待测数据的字段集执行遍历,并且在遍历中对每个当前字段执行如下步骤:取得该当前字段的键和值;根据所述键确定与该当前字段对应的期望字段数据;提取该期望字段数据中包含的校验信息;根据提取的校验信息执行对该当前字段的校验,并且当校验失败时记录该当前字段的键和相关的失败信息。根据本专利技术的又一方面,提供一种电子设备,其特征在于,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行上述的方法。根据本专利技术的又一方面,提供一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行上述的方法。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:图1是根据本专利技术实施例的动态字段数据返回接口的测试系统的框图;图2是根据本专利技术实施例的动态字段数据返回接口的测试方法的流程图。具体实施方式以下结合附图对本专利技术的示范性实施例做出说明,其中包括本专利技术实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本专利技术的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。图1示出根据本专利技术实施例的示意性框图。本专利技术的动态字段数据返回接口的测试系统10包括测试模块101、期望数据存储模块102和测试结果输出模块103。测试模块101与业务系统的动态字段数据返回接口40相连接以接收所述动态字段数据返回接口40返回的待测试数据。待测数据包含待测试的字段集,每个字段具有键-值对的形式。每个字段根据对应的预定义期望字段数据来校验。预定义期望字段数据保存在期望数据存储模块102的存储器中。对于给定的一个字段,根据该字段的键能够在期望数据存储模块102的存储器中定位该字段对应的期望字段数据。期望字段数据中包含相应的校验信息,如字段类型、字段期望值和字段校验规则。测试系统10的测试模块101根据这些信息执行对待测数据的相应数据字段的校验。期望数据存储模块102中保存的期望字段数据采用键-值(<key,value>)结构,其中键(key)存字段名称并且与相应的被测字段相同,值(value)存的是期望值、期望值类型、期望值断言规则。测试模块101接收动态字段数据返回接口40返回的待测数据,按照设定的遍历顺序对该待测数据的字段集执行遍历。并且在遍历中对每个当前字段执行如下步骤:取得该当前字段的键和值,根据所述键确定与该当前字段对应的期望字段数据,提取该期望字段数据中包含的校验信息,根据提取的校验信息执行对该当前字段的校验,并且当校验失败时记录该当前字段的键和相关的失败信息。根据本专利技术的实施例,所述待测数据的格式可以是下述之一:Class,List<class>,Map,Json。根据本专利技术的实施例,在遍历中,对待本文档来自技高网
...

【技术保护点】
1.一种动态字段数据返回接口的测试系统,所述动态字段数据返回接口返回待测数据,所述待测数据包含字段集,每个字段是键‑值对,每个字段根据对应的预定义期望字段数据来校验,根据一个字段的键能够确定对应的期望字段数据,所述系统包括:期望数据存储模块,用于存储所述期望字段数据;测试模块,用于接收动态字段数据返回接口返回的待测数据,根据设定的遍历顺序对该待测数据的字段集执行遍历,并且在遍历中对每个当前字段执行如下步骤:取得该当前字段的键和值;根据所述键确定与该当前字段对应的期望字段数据;提取该期望字段数据中包含的校验信息;根据提取的校验信息执行对该当前字段的校验,并且当校验失败时记录该当前字段的键和相关的失败信息,以及测试结果输出模块,用于输出所述测试模块记录的校验失败的字段的键和相关的失败信息。

【技术特征摘要】
1.一种动态字段数据返回接口的测试系统,所述动态字段数据返回接口返回待测数据,所述待测数据包含字段集,每个字段是键-值对,每个字段根据对应的预定义期望字段数据来校验,根据一个字段的键能够确定对应的期望字段数据,所述系统包括:期望数据存储模块,用于存储所述期望字段数据;测试模块,用于接收动态字段数据返回接口返回的待测数据,根据设定的遍历顺序对该待测数据的字段集执行遍历,并且在遍历中对每个当前字段执行如下步骤:取得该当前字段的键和值;根据所述键确定与该当前字段对应的期望字段数据;提取该期望字段数据中包含的校验信息;根据提取的校验信息执行对该当前字段的校验,并且当校验失败时记录该当前字段的键和相关的失败信息,以及测试结果输出模块,用于输出所述测试模块记录的校验失败的字段的键和相关的失败信息。2.根据权利要求1所述的系统,其中,所述校验信息包括字段类型、字段期望值和字段校验规则。3.根据权利要求1所述的系统,其中,所述待测数据的格式是Json格式。4.根据权利要求3所述的系统,其中,所述遍历包括对数组执行循环遍历和对对象执行递归遍历。5.根据权利要求1所述的系统,其中,对每个动态字段数据返回接口设置相应的遍历规则,使得在遍历过程中略去所述遍历规则中指定的字段而不对其执行校验。6.根据权利要求2所述的系统,其中,所述字段校验规则被设置成使得执行下述数据关系之一的校验:空验证,等于,大于,小于,包含。7.一种动态字段数据返回接口的测试方法,所述动态字段数据返回接口返回待测数据,所述待测数据包含字段集,每个字段是键-值对,每个字段根据对应的预定义期望字段数据来校验,根据一个字段的...

【专利技术属性】
技术研发人员:陈晓丽
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1