一种接口自动化测试方法、装置和计算设备制造方法及图纸

技术编号:13456588 阅读:88 留言:0更新日期:2016-08-03 09:59
本发明专利技术公开了一种接口自动化测试方法,该方法包括:向第一接口和第二接口发送测试请求;接收第一接口和第二接口响应测试请求返回的第一JSON数据和第二JSON数据;将第一JSON数据和第二JSON数据分别转化为第一字典对象和第二字典对象;比对该第一字典对象和第二字典对象。本发明专利技术还公开了一种接口自动化测试装置和相应的计算设备。

【技术实现步骤摘要】

本专利技术涉及计算机
,尤其涉及一种接口自动化测试方法、装置和计算设备
技术介绍
随着互联网技术的发展,开发的软件项目工程也越来越多,在软件项目工程中接口自动化测试是一项非常重要的测试环节。接口自动化测试主要测试这些软件项目工程(或者理解为软件系统)对外部提供的接口,以验证这些接口的正确性和稳定性。接口自动化测试的重点是要检查数据的交换,具体是通过向服务器传递接口的测试参数,再接收服务器返回的返回结果,通过验证该返回结果的正确性,以完成对接口的测试。通常,当软件项目工程进行更新后,需要对更新后的接口进行接口自动化测试,通过比较更新后的接口的返回结果与更新前的接口的返回结果得到两个接口输出的不同,来判断更新后的接口是否与预期的设计符合。由于接口自动化测试中得到的接口返回结果一般为JSON格式字符串,因此现有技术中通常采用传统的字符串比对的方式来对两个接口的返回结果进行比较。而仅仅使用字符串比对的方式,无法精确的定位究竟是哪一个JSON节点出现不一致的情况,并且JSON字符串往往会出现某些节点的顺序随机、内容一致的情况,这种情况是字符串比对的方式无法检测出的。因此,需要一种新型的接口自动化测试方法。
技术实现思路
鉴于此,本专利技术提供了一种新的接口自动化测试方案,以力图解决或至少缓解上面存在的问题。根据本专利技术的一个方面,提供了一种接口自动化测试方法,该方法包括:>向第一接口和第二接口发送测试请求;接收第一接口和第二接口响应测试请求返回的第一JSON数据和第二JSON数据;将第一JSON数据和第二JSON数据分别转化为第一字典对象和第二字典对象;比对第一字典对象和第二字典对象,包括:遍历第一字典对象和第二字典对象中各个节点;根据节点类型选取相应的比对规则;根据比对规则比对第一字典对象和第二字典对象中的对应节点是否相等,若不相等,则记录此节点。可选地,在根据本专利技术的接口自动化测试方法中,向第一接口和第二接口发送测试请求的步骤之后,还包括:接收第一接口和第二接口返回的响应状态码;若响应状态码指示请求发送成功,则存储相应的接口地址和该接口返回的数据;若响应状态码指示请求发送失败,则检测接口重发次数是否达到阈值;若否,则重新发送测试请求,将该接口重发次数加1。可选地,在根据本专利技术的接口自动化测试方法中,其中字典对象为dict类型对象,将第一JSON数据和第二JSON数据分别转化为第一字典对象和第二字典对象的步骤包括:使用simplejson库中的loads方法将JSON数据转化为dict类型对象。可选地,在根据本专利技术的接口自动化测试方法中,通过深度优先方法遍历所述第一字典对象和第二字典对象中各个节点,包括:访问字典对象的出发节点,并将其标记为已访问过;从出发点出发依次搜索出发节点的每个邻接节点;若邻接节点未曾访问过,则以该邻接节点为新的出发节点继续进行深度优先方法进行遍历,直至字典对象中所有和出发节点有路径相通的节点均已被访问为止;若字典对象中仍有未访问的节点,则另选一个尚未访问的节点作为新的出发点重复上述过程,直至字典对象中所有节点均已被访问为止。可选地,在根据本专利技术的接口自动化测试方法中,比对规则包括:比较节点的类型和值;若类型和值均相等,则两个节点相等。可选地,在根据本专利技术的接口自动化测试方法中,比对规则包括:忽略节点的类型;比较节点的值;若值相等,则两个节点相等。可选地,在根据本专利技术的接口自动化测试方法中,比对规则包括:忽略节点的值;比较节点的类型;若类型相等,则两个节点相等。可选地,在根据本专利技术的接口自动化测试方法中,当节点为集合节点且集合节点中元素排列无序时,比对规则包括:计算集合节点的长度;比较长度,若长度一致,则两个节点相等。可选地,在根据本专利技术的接口自动化测试方法中,当节点为集合节点且集合节点中元素个数随机时,比对规则包括:计算集合节点的元素个数;比较元素个数,若元素个数相等,则两个节点相等。可选地,在根据本专利技术的接口自动化测试方法中,比对规则包括:忽略比较特定名称的节点。根据本专利技术的另一个方面,还提供了一种接口自动化测试装置,该装置包括:请求发送模块,适于向第一接口和第二接口发送测试请求;响应接收模块,适于接收第一接口和第二接口响应测试请求返回的第一JSON数据和第二JSON数据;比较模块,适于将第一JSON数据和第二JSON数据分别转化为第一字典对象和第二字典对象;比较模块还适于比对第一字典对象和第二字典对象,包括:适于遍历第一字典对象和第二字典对象中各个节点,根据节点类型选取相应的比对规则,根据比对规则比对第一字典对象和第二字典对象中的对应节点是否相等,若不相等,则记录此节点。可选地,在根据本专利技术的接口自动化测试装置中,响应接收模块还适于接收第一接口和第二接口返回的响应状态码;若响应状态码指示请求发送成功,则存储相应的接口地址和该接口返回的数据;若响应状态码指示请求发送失败,则检测接口重发次数是否达到阈值;若否,则请求发送模块重新发送测试请求,将该接口重发次数加1。可选地,在根据本专利技术的接口自动化测试装置中,其中字典对象为dict类型对象,比较模块还适于使用simplejson库中的loads方法将JSON数据转化为dict类型对象。可选地,在根据本专利技术的接口自动化测试装置中,比较模块还适于通过深度优先方法遍历第一字典对象和第二字典对象中各个节点,包括:适于访问字典对象的出发节点,并将其标记为已访问过,从出发点出发依次搜索出发节点的每个邻接节点,若邻接节点未曾访问过,则以该邻接节点为新的出发节点继续进行深度优先方法进行遍历,直至字典对象中所有和出发节点有路径相通的节点均已被访问为止,若字典对象中仍有未访问的节点,则另选一个尚未访问的节点作为新的出发点重复上述过程,直至字典对象中所有节点均已被访问为止。可选地,在根据本专利技术的接口自动化测试装置中,所述比对规则包括:比较节点的类型和值;若类型和值均相等,则两个节点相等。可选地,在根据本专利技术的接口自动化测试装置中,比对规则包括:忽略节点的类型;比较节点的值;若值相等,则两个节点相等。可选地,在根据本专利技术的接口自动化测试装置中,比对规则包括:忽略节点的值;比较节点的类型;若类型相等,则两个节点相等。可选地,在根据本专利技术的接口自动化测试装置中,当节点为集合节点且集合节点中元素排列无序时,比对规则包括:计算集合节本文档来自技高网...

【技术保护点】
一种接口自动化测试方法,该方法包括:向第一接口和第二接口发送测试请求;接收第一接口和第二接口响应测试请求返回的第一JSON数据和第二JSON数据;将第一JSON数据和第二JSON数据分别转化为第一字典对象和第二字典对象;比对所述第一字典对象和第二字典对象,包括:遍历所述第一字典对象和第二字典对象中各个节点;根据节点类型选取相应的比对规则;根据所述比对规则比对所述第一字典对象和第二字典对象中的对应节点是否相等,若不相等,则记录此节点。

【技术特征摘要】
1.一种接口自动化测试方法,该方法包括:
向第一接口和第二接口发送测试请求;
接收第一接口和第二接口响应测试请求返回的第一JSON数据和第二
JSON数据;
将第一JSON数据和第二JSON数据分别转化为第一字典对象和第二字典
对象;
比对所述第一字典对象和第二字典对象,包括:
遍历所述第一字典对象和第二字典对象中各个节点;
根据节点类型选取相应的比对规则;
根据所述比对规则比对所述第一字典对象和第二字典对象中
的对应节点是否相等,若不相等,则记录此节点。
2.如权利要求1所述的方法,所述向第一接口和第二接口发送测试请求
的步骤之后,还包括:
接收第一接口和第二接口返回的响应状态码;
若响应状态码指示请求发送成功,则存储相应的接口地址和该接口返回
的数据;
若响应状态码指示请求发送失败,则检测接口重发次数是否达到阈值;
若否,则重新发送测试请求,将该接口重发次数加1。
3.如权利要求2所述的方法,其中字典对象为dict类型对象,将第一JSON
数据和第二JSON数据分别转化为第一字典对象和第二字典对象的步骤包括:
使用simplejson库中的loads方法将JSON数据转化为dict类型对象。
4.如权利要求3所述的方法,通过深度优先方法遍历所述第一字典对象
和第二字典对象中各个节点,包括:
访问字典对象的出发节点,并将其标记为已访问过;
从出发点出发依次搜索所述出发节点的每个邻接节点;
若所述邻接节点未曾访问过,则以该邻接节点为新的出发节点继续进行
深度优先方法进行遍历,直至所述字典对象中所有和出发节点有路径相通的
节点均已被访问为止;
若所述字典对象中仍有未访问的节点,则另选一个尚未访问的节点作为
新的出发点重复上述过程,直至所述字典对象中所有节点均已被访问为止。
5.如权利要求4所述的方法,所述比对规则包括:
比较节点的类型和值;
若所述类型和值均相等...

【专利技术属性】
技术研发人员:宋昊
申请(专利权)人:北京齐尔布莱特科技有限公司
类型:发明
国别省市:北京;11

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

1