基于配置文件的RESTfulAPI对比方法、系统、设备及存储介质与流程


基于配置文件的restfulapi对比方法、系统、设备及存储介质
技术领域
1.本发明属于自动化测试技术领域,具体涉及基于配置文件的restfulapi对比方法、系统、设备及存储介质。


背景技术:



2.在软件平台开发过程中,由于迭代原因,软件平台往往有很多需要重构的项目,项目重构后需要进行相应新、老项目的对比测试。此类项目测试通常由人工完成,需要消耗大量的人力和时间,而且人为测试对比出错率较高。而目前市面还没有能够自动测试此类项目的有效技术手段。


技术实现要素:



3.本发明的目的是提供基于配置文件的restfulapi对比方法、系统、设备及存储介质,用以解决现有技术中存在的上述问题。
4.为了实现上述目的,本发明采用以下技术方案:第一方面,提供基于配置文件的restfulapi对比方法,包括:获取配置文件,所述配置文件包含若干组restfulapi,每组restfulapi均包含新项目http请求和老项目http请求;读取并解析配置文件,得到各组restfulapi的新项目http请求和老项目http请求;向目标服务器发送同组restfulapi的新项目http请求和老项目http请求,并接收目标服务器的响应结果,所述响应结果包含新项目的响应结果和老项目的响应结果;采用设定的signaldiff算法对新项目的响应结果与老项目的响应结果进行比较,得到比较结果,所述比较结果中包含第一颜字符串、第二颜字符串和第三颜字符串,所述第一颜字符串为新项目响应结果与老项目响应结果中对应相同的部分,所述第二颜字符串和第三颜字符串分别为新项目响应结果和老项目响应结果中对应互不相同的部分;根据比较结果生成对比文件进行存储和输出展示。
5.在一个可能的设计中,所述新项目的响应结果包含restfulapi新项目http请求对应的请求头reqheadermap、请求参数reqparamsmap、响应头respheadermap和响应体respbodymap,所述老项目的响应结果包含restfulapi老项目http请求对应的请求头reqheadermap、请求参数reqparamsmap、响应头respheadermap和响应体respbodymap。
6.在一个可能的设计中,所述采用设定的signaldiff算法对新项目的响应结果与老项目的响应结果进行比较,得到比较结果,包括:创建新项目的reqheadermap字典容器、reqparamsmap字典容器、respheadermap字典容器和respbodymap字典容器来分别存储新项目http请求对应的请求头reqheadermap、请求参数reqparamsmap、响应头respheadermap和响应体respbodymap,创建老项目的
reqheadermap字典容器、reqparamsmap字典容器、respheadermap字典容器和respbodymap字典容器来分别存储老项目http请求对应的请求头reqheadermap、请求参数reqparamsmap、响应头respheadermap和响应体respbodymap;将新项目reqheadermap字典容器、reqparamsmap字典容器、respheadermap字典容器和respbodymap字典容器的存储内容按照字典序排序,然后采用md5编码算法分别进行编码计算,得到第一编码结果、第二编码结果、第三编码结果和第三编码结果,将老项目reqheadermap字典容器、reqparamsmap字典容器、respheadermap字典容器和respbodymap字典容器的存储内容按照字典序排序,然后采用md5编码算法分别进行编码计算,得到第五编码结果、第六编码结果、第七编码结果和第八编码结果;将第一编码结果与第五编码结果进行比较,如果相同,则将新项目reqheadermap字典容器和老项目reqheadermap字典容器的存储内容序列化为字符串,并渲染为第一颜后提取到比较结果中;将第二编码结果与第六编码结果进行比较,如果相同,则将新项目reqparamsmap字典容器和老项目reqparamsmap字典容器的存储内容序列化为字符串,并渲染为第一颜后提取到比较结果中;将第三编码结果与第七编码结果进行比较,如果相同,则将新项目respheadermap字典容器和老项目respheadermap字典容器的存储内容序列化为字符串,并渲染为第一颜后提取到比较结果中;将第四编码结果与第八编码结果进行比较,如果相同,则将新项目respbodymap字典容器和老项目respbodymap字典容器的存储内容序列化为字符串,并渲染为第一颜后提取到比较结果中。
7.在一个可能的设计中,所述方法还包括:在第一编码结果与第五编码结果不相同时,从新项目reqheadermap字典容器和老项目reqheadermap字典容器的存储内容中遍历查各相应的键值对进行比较,在新项目reqheadermap字典容器的键值对与老项目reqheadermap字典容器的键值对存在键相同但值不同的情况时,将新项目reqheadermap字典容器对应的键值对渲染为第二颜,将老项目reqheadermap字典容器对应的键值对渲染为第三颜,将渲染后的两键值对组合在一起并采用分隔符分隔后提取到比较结果中;在第二编码结果与第六编码结果不相同时,从新项目reqparamsmap字典容器和老项目reqparamsmap字典容器的存储内容中遍历查各相应的键值对进行比较,在新项目reqparamsmap字典容器的键值对与老项目reqparamsmap字典容器的键值对存在键相同但值不同的情况时,将新项目reqparamsmap字典容器对应的键值对渲染为第二颜,将老项目reqparamsmap字典容器对应的键值对渲染为第三颜,将渲染后的两键值对组合在一起并采用分隔符分隔后提取到比较结果中;在第三编码结果与第七编码结果不相同时,从新项目respheadermap字典容器和老项目respheadermap字典容器的存储内容中遍历查各相应的键值对进行比较,在新项目respheadermap字典容器的键值对与老项目respheadermap字典容器的键值对存在键相同但值不同的情况时,将新项目respheadermap字典容器对应的键值对渲染为第二颜,将老项目respheadermap字典容器对应的键值对渲染为第三颜,将渲染后的两键值对组合在一起并采用分隔符分隔后提取到比较结果中;在第四编码结果与第八编码结果不相同时,从新项目respbodymap字典容器和老项目respbodymap字典容器的存储内容中遍历查各相应的键值对进行比较,在新项目
respbodymap字典容器的键值对与老项目respbodymap字典容器的键值对存在键相同但值不同的情况时,将新项目respbodymap字典容器对应的键值对渲染为第二颜,将老项目respbodymap字典容器对应的键值对渲染为第三颜,将渲染后的两键值对组合在一起并采用分隔符分隔后提取到比较结果中。
8.在一个可能的设计中,所述方法还包括:在比较完新项目和老项目各字典容器的键值对后,若新项目的相应字典容器中还存在键值对时,提取相应新项目字典容器的键值对来添加第一标识符,然后渲染为第二颜汇总到比较结果中,若老项目的相应字典容器中还存在键值对时,提取相应老项目字典容器的键值对来添加第二标识符,然后渲染为第三颜汇总到比较结果中。
9.在一个可能的设计中,所述方法还包括:在得到比较结果后,将比较结果存入缓存器中;在根据比较结果生成对比文件时,提取缓存器中的比较结果来生成html格式的对比文件。
10.在一个可能的设计中,所述读取并解析配置文件,包括:使用yaml库读取并解析配置文件,并验证配置文件的正确性。
11.第二方面,提供基于配置文件的restfulapi对比系统,包括获取单元、解析单元、收发单元、比较单元和生成单元,其中:获取单元,用于获取配置文件,所述配置文件包含若干组restfulapi,每组restfulapi均包含新项目http请求和老项目http请求;解析单元,用于读取并解析配置文件,得到各组restfulapi的新项目http请求和老项目http请求;收发单元,用于向目标服务器发送同组restfulapi的新项目http请求和老项目http请求,并接收目标服务器的响应结果,所述响应结果包含新项目的响应结果和老项目的响应结果;比较单元,用于采用设定的signaldiff算法对新项目的响应结果与老项目的响应结果进行比较,得到比较结果,所述比较结果中包含第一颜字符串、第二颜字符串和第三颜字符串,所述第一颜字符串为新项目响应结果与老项目响应结果中对应相同的部分,所述第二颜字符串和第三颜字符串分别为新项目响应结果和老项目响应结果中对应互不相同的部分;生成单元,用于根据比较结果生成对比文件进行存储和输出展示。
12.第三方面,提供基于配置文件的restfulapi对比设备,包括:存储器,用于存储指令;处理器,用于读取所述存储器中存储的指令,并根据指令执行上述第一方面中任意一种所述的方法。
13.第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,使得所述计算机执行第一方面中任意一种所述的方法。同时,还提供一种包含指令的计算机程序产品,当所述指令在计算机上运行时,使所述计算机执行第一方面中任意一种所述的方法。
14.有益效果:本发明通过获取配置文件来解析得到restfulapi的新项目http请求和老项目http请求,然后向目标服务器发送restfulapi的新项目http请求和老项目http请
求,获得新项目的响应结果和老项目的响应结果,再利用设定的signaldiff算法对新项目的响应结果与老项目的响应结果进行比较,得到包含第一颜字符串、第二颜字符串和第三颜字符串的比较结果,最后根据比较结果生成相应的对比文件,就可以实现老项目和重构新项目restfulapi请求和响应的自动化测试。本发明可以替代传统人工测试方式,实现老项目和新项目restfulapi的自动化测试比对,提高测试比对的效率和精准度,节省人力成本和时间。
附图说明
15.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
16.图1为本发明实施例中方法的步骤示意图;图2为本发明实施例中系统的构成示意图;图3为本发明实施例中设备的构成示意图。
具体实施方式
17.在此需要说明的是,对于这些实施例方式的说明用于帮助理解本发明,但并不构成对本发明的限定。本文公开的特定结构和功能细节仅用于描述本发明的示例实施例。然而,可用很多备选的形式来体现本发明,并且不应当理解为本发明限制在本文阐述的实施例中。
18.应当理解,除非另有明确的规定和限定,术语“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在实施例中的具体含义。
19.在下面的描述中提供了特定的细节,以便于对示例实施例的完全理解。然而,本领域普通技术人员应当理解可以在没有这些特定细节的情况下实现示例实施例。例如可以在框图中示出系统,以避免用不必要的细节来使得示例不清楚。在其他实施例中,可以不以非必要的细节来示出众所周知的过程、结构和技术,以避免使得实施例不清楚。
20.实施例1:本实施例提供基于配置文件的restfulapi对比方法,如图1所示,方法包括以下步骤:s1.获取配置文件,所述配置文件包含若干组restfulapi,每组restfulapi均包含新项目http请求和老项目http请求。
21.具体实施时,先获取用户编写好的配置文件,所述配置文件为yml格式配置文件,配置文件包含多组restfulapi,每组restfulapi中包含新项目和老项目http请求(request1和request2),请求参数params和响应结果response。
22.s2.读取并解析配置文件,得到各组restfulapi的新项目http请求和老项目http请求。
23.具体实施时,在获取到配置文件后,使用yaml库读取并解析配置文件,并验证配置文件的正确性,验证正确则得到各组restfulapi的新项目http请求和老项目http请求,验证错误则向用户返回相应的错误提示信息。yml文件格式是yaml(yaml aint markup language)编写的文件格式,yaml是一种直观的能够被电脑识别的数据序列化格式,并且容易被人类阅读,容易和脚本语言交互,可以被支持yaml库的不同的编程语言程序导入。
24.s3.向目标服务器发送同组restfulapi的新项目http请求和老项目http请求,并接收目标服务器的响应结果,所述响应结果包含新项目的响应结果和老项目的响应结果。
25.具体实施时,为了测试对比老项目和重构后的新项目,需要向目标服务器发送同组restfulapi的新项目http请求和老项目http请求(request1和request2),然后接收目标服务器的响应结果,所述响应结果包含新项目的响应结果和老项目的响应结果。所述新项目的响应结果包含restfulapi新项目http请求对应的请求头reqheadermap、请求参数reqparamsmap、响应头respheadermap和响应体respbodymap,所述老项目的响应结果包含restfulapi老项目http请求对应的请求头reqheadermap、请求参数reqparamsmap、响应头respheadermap和响应体respbodymap。restfulapi一般使用http协议,http协议一般分为请求头、请求参数、响应头和响应体,所以,本实施例主要基于以上4个方面展开对比。
26.s4.采用设定的signaldiff算法对新项目的响应结果与老项目的响应结果进行比较,得到比较结果,所述比较结果中包含第一颜字符串、第二颜字符串和第三颜字符串,所述第一颜字符串为新项目响应结果与老项目响应结果中对应相同的部分,所述第二颜字符串和第三颜字符串分别为新项目响应结果和老项目响应结果中对应互不相同的部分。
27.具体实施时,在获得新项目的响应结果和老项目的响应结果后,再采用设定的signaldiff算法对新项目的响应结果与老项目的响应结果进行整体比较、详细内容比较和残差处理,具体过程包括:一、创建新项目的reqheadermap字典容器、reqparamsmap字典容器、respheadermap字典容器和respbodymap字典容器来分别存储新项目http请求对应的请求头reqheadermap、请求参数reqparamsmap、响应头respheadermap和响应体respbodymap,创建老项目的reqheadermap字典容器、reqparamsmap字典容器、respheadermap字典容器和respbodymap字典容器来分别存储老项目http请求对应的请求头reqheadermap、请求参数reqparamsmap、响应头respheadermap和响应体respbodymap。本方法主要比较restfulapi的请求头、请求参数、响应头和响应体,由于以上四项比较项都是基于键值对,所以会为每一个请求创建4个字典容器,分别存储用于比较请求头的reqheadermap、请求参数的reqparamsmap、响应头的respheadermap和响应体的respbodymap。
28.二、整体比较。将新项目reqheadermap字典容器、reqparamsmap字典容器、respheadermap字典容器和respbodymap字典容器的存储内容按照字典序排序,然后采用md5编码算法分别进行编码计算,得到第一编码结果、第二编码结果、第三编码结果和第三编码结果,将老项目reqheadermap字典容器、reqparamsmap字典容器、respheadermap字典容器和respbodymap字典容器的存储内容按照字典序排序,然后采用md5编码算法分别进行编码计算,得到第五编码结果、第六编码结果、第七编码结果和第八编码结果;将第一编码结果与第五编码结果进行比较,如果相同,则将新项目reqheadermap
字典容器和老项目reqheadermap字典容器的存储内容序列化为字符串,并渲染为第一颜后提取到比较结果中;将第二编码结果与第六编码结果进行比较,如果相同,则将新项目reqparamsmap字典容器和老项目reqparamsmap字典容器的存储内容序列化为字符串,并渲染为第一颜后提取到比较结果中;将第三编码结果与第七编码结果进行比较,如果相同,则将新项目respheadermap字典容器和老项目respheadermap字典容器的存储内容序列化为字符串,并渲染为第一颜后提取到比较结果中;将第四编码结果与第八编码结果进行比较,如果相同,则将新项目respbodymap字典容器和老项目respbodymap字典容器的存储内容序列化为字符串,并渲染为第一颜后提取到比较结果中。第一颜可选用灰。
29.三、详细内容比较。在第一编码结果与第五编码结果不相同时,从新项目reqheadermap字典容器和老项目reqheadermap字典容器的存储内容中遍历查各相应的键值对进行比较,在新项目reqheadermap字典容器的键值对与老项目reqheadermap字典容器的键值对存在键相同但值不同的情况时,将新项目reqheadermap字典容器对应的键值对渲染为第二颜,将老项目reqheadermap字典容器对应的键值对渲染为第三颜,将渲染后的两键值对组合在一起并采用分隔符分隔后提取到比较结果中;在第二编码结果与第六编码结果不相同时,从新项目reqparamsmap字典容器和老项目reqparamsmap字典容器的存储内容中遍历查各相应的键值对进行比较,在新项目reqparamsmap字典容器的键值对与老项目reqparamsmap字典容器的键值对存在键相同但值不同的情况时,将新项目reqparamsmap字典容器对应的键值对渲染为第二颜,将老项目reqparamsmap字典容器对应的键值对渲染为第三颜,将渲染后的两键值对组合在一起并采用分隔符分隔后提取到比较结果中;在第三编码结果与第七编码结果不相同时,从新项目respheadermap字典容器和老项目respheadermap字典容器的存储内容中遍历查各相应的键值对进行比较,在新项目respheadermap字典容器的键值对与老项目respheadermap字典容器的键值对存在键相同但值不同的情况时,将新项目respheadermap字典容器对应的键值对渲染为第二颜,将老项目respheadermap字典容器对应的键值对渲染为第三颜,将渲染后的两键值对组合在一起并采用分隔符分隔后提取到比较结果中;在第四编码结果与第八编码结果不相同时,从新项目respbodymap字典容器和老项目respbodymap字典容器的存储内容中遍历查各相应的键值对进行比较,在新项目respbodymap字典容器的键值对与老项目respbodymap字典容器的键值对存在键相同但值不同的情况时,将新项目respbodymap字典容器对应的键值对渲染为第二颜,将老项目respbodymap字典容器对应的键值对渲染为第三颜,将渲染后的两键值对组合在一起并采用分隔符分隔后提取到比较结果中。
30.在新项目对应字典容器的键值与老项目对应字典容器的键值相同时,将新项目对应字典容器的键值与老项目对应字典容器的键值都渲染为第一颜,然后将渲染后的两键值对组合在一起并采用分隔符分隔后提取到比较结果中。第一颜可选用灰,第二颜可选用蓝,第三颜可选用红。示例性地,如老项目对应键值对为age:12,新项目对应键值对为age:13,则组合后使用 age:12/13 表示,“/”作为分隔符。
31.四、残差处理。在比较完新项目和老项目各字典容器的键值对后,若新项目的相应字典容器中还存在键值对时,表明新项目的相应字典容器中还存在新项目新增键值对的情
况,此时,提取相应新项目字典容器的键值对来添加第一标识符,然后渲染为第二颜汇总到比较结果中。若老项目的相应字典容器中还存在键值对时,表明老项目的相应字典容器中还存在老项目被删除键值对的情况,此时,提取相应老项目字典容器的键值对来添加第二标识符,然后渲染为第三颜汇总到比较结果中。第一标识符可采用符号“++”,第二标识符可采用符号
“‑‑”
,示例性地,相应键值对添加第一标识符后如“++key2:val2”,相应键值对添加第二标识符后如
“‑‑
key1:val1”。
32.在新项目和老项目四个字典容器的对比完成之后,为了防止数据丢失,需要即时将比较结果存入缓存器(buffer)中。
33.s5.根据比较结果生成对比文件进行存储和输出展示。
34.具体实施时,在比较完成得到最终的比较结果后,提取缓存器中的比较结果来生成html格式的对比文件进行存储和输出展示。由于要支持有颜的文本,所以本实施例采用html格式的对比文件进行存储和输出展示,使自动测试对比生成的结果直观清晰,用户一目了然。
35.实施例2:本实施例提供基于配置文件的restfulapi对比系统,如图2所示,包括获取单元、解析单元、收发单元、比较单元和生成单元,其中:获取单元,用于获取配置文件,所述配置文件包含若干组restfulapi,每组restfulapi均包含新项目http请求和老项目http请求;解析单元,用于读取并解析配置文件,得到各组restfulapi的新项目http请求和老项目http请求;收发单元,用于向目标服务器发送同组restfulapi的新项目http请求和老项目http请求,并接收目标服务器的响应结果,所述响应结果包含新项目的响应结果和老项目的响应结果;比较单元,用于采用设定的signaldiff算法对新项目的响应结果与老项目的响应结果进行比较,得到比较结果,所述比较结果中包含第一颜字符串、第二颜字符串和第三颜字符串,所述第一颜字符串为新项目响应结果与老项目响应结果中对应相同的部分,所述第二颜字符串和第三颜字符串分别为新项目响应结果和老项目响应结果中对应互不相同的部分;生成单元,用于根据比较结果生成对比文件进行存储和输出展示。
36.实施例3:本实施例提供基于配置文件的restfulapi对比设备,如图3所示,在硬件层面,包括:数据接口,用于建立处理器与数据采集组件的数据对接,以获取配置文件;存储器,用于存储指令;处理器,用于读取所述存储器中存储的指令,并根据指令执行实施例1中的基于配置文件的restfulapi对比方法。
37.可选地,该设备还包括内部总线。处理器与存储器和数据接口可以通过内部总线相互连接,该内部总线可以是isa(industry standard architecture,工业标准体系结构)总线、pci(peripheral component interconnect,外设部件互连标准)总线或eisa
(extended industry standardarchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。
38.所述存储器可以但不限于包括随机存取存储器(random access memory,ram)、只读存储器(read only memory,rom)、闪存(flash memory)、先进先出存储器(first input firstoutput,fifo)和/或先进后出存储器(first in last out,filo)等。所述处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
39.实施例4:本实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,使得所述计算机执行实施例1中的基于配置文件的restfulapi对比方法。其中,所述计算机可读存储介质是指存储数据的载体,可以但不限于包括软盘、光盘、硬盘、闪存、优盘和/或记忆棒(memory stick)等,所述计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程系统。
40.本实施例还提供一种包含指令的计算机程序产品,当所述指令在计算机上运行时,使所述计算机执行实施例1中的基于配置文件的restfulapi对比方法。其中,所述计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程系统。
41.最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

技术特征:


1.基于配置文件的restfulapi对比方法,其特征在于,包括:获取配置文件,所述配置文件包含若干组restfulapi,每组restfulapi均包含新项目http请求和老项目http请求;读取并解析配置文件,得到各组restfulapi的新项目http请求和老项目http请求;向目标服务器发送同组restfulapi的新项目http请求和老项目http请求,并接收目标服务器的响应结果,所述响应结果包含新项目的响应结果和老项目的响应结果;采用设定的signaldiff算法对新项目的响应结果与老项目的响应结果进行比较,得到比较结果,所述比较结果中包含第一颜字符串、第二颜字符串和第三颜字符串,所述第一颜字符串为新项目响应结果与老项目响应结果中对应相同的部分,所述第二颜字符串和第三颜字符串分别为新项目响应结果和老项目响应结果中对应互不相同的部分;根据比较结果生成对比文件进行存储和输出展示。2.根据权利要求1所述的基于配置文件的restfulapi对比方法,其特征在于,所述新项目的响应结果包含restfulapi新项目http请求对应的请求头reqheadermap、请求参数reqparamsmap、响应头respheadermap和响应体respbodymap,所述老项目的响应结果包含restfulapi老项目http请求对应的请求头reqheadermap、请求参数reqparamsmap、响应头respheadermap和响应体respbodymap。3.根据权利要求2所述的基于配置文件的restfulapi对比方法,其特征在于,所述采用设定的signaldiff算法对新项目的响应结果与老项目的响应结果进行比较,得到比较结果,包括:创建新项目的reqheadermap字典容器、reqparamsmap字典容器、respheadermap字典容器和respbodymap字典容器来分别存储新项目http请求对应的请求头reqheadermap、请求参数reqparamsmap、响应头respheadermap和响应体respbodymap,创建老项目的reqheadermap字典容器、reqparamsmap字典容器、respheadermap字典容器和respbodymap字典容器来分别存储老项目http请求对应的请求头reqheadermap、请求参数reqparamsmap、响应头respheadermap和响应体respbodymap;将新项目reqheadermap字典容器、reqparamsmap字典容器、respheadermap字典容器和respbodymap字典容器的存储内容按照字典序排序,然后采用md5编码算法分别进行编码计算,得到第一编码结果、第二编码结果、第三编码结果和第三编码结果,将老项目reqheadermap字典容器、reqparamsmap字典容器、respheadermap字典容器和respbodymap字典容器的存储内容按照字典序排序,然后采用md5编码算法分别进行编码计算,得到第五编码结果、第六编码结果、第七编码结果和第八编码结果;将第一编码结果与第五编码结果进行比较,如果相同,则将新项目reqheadermap字典容器和老项目reqheadermap字典容器的存储内容序列化为字符串,并渲染为第一颜后提取到比较结果中;将第二编码结果与第六编码结果进行比较,如果相同,则将新项目reqparamsmap字典容器和老项目reqparamsmap字典容器的存储内容序列化为字符串,并渲染为第一颜后提取到比较结果中;将第三编码结果与第七编码结果进行比较,如果相同,则将新项目respheadermap字典容器和老项目respheadermap字典容器的存储内容序列化为字符串,并渲染为第一颜后提取到比较结果中;将第四编码结果与第八编码结果进行比较,如果相同,则将新项目respbodymap字典容器和老项目respbodymap字典容器的存储
内容序列化为字符串,并渲染为第一颜后提取到比较结果中。4.根据权利要求3所述的基于配置文件的restfulapi对比方法,其特征在于,所述方法还包括:在第一编码结果与第五编码结果不相同时,从新项目reqheadermap字典容器和老项目reqheadermap字典容器的存储内容中遍历查各相应的键值对进行比较,在新项目reqheadermap字典容器的键值对与老项目reqheadermap字典容器的键值对存在键相同但值不同的情况时,将新项目reqheadermap字典容器对应的键值对渲染为第二颜,将老项目reqheadermap字典容器对应的键值对渲染为第三颜,将渲染后的两键值对组合在一起并采用分隔符分隔后提取到比较结果中;在第二编码结果与第六编码结果不相同时,从新项目reqparamsmap字典容器和老项目reqparamsmap字典容器的存储内容中遍历查各相应的键值对进行比较,在新项目reqparamsmap字典容器的键值对与老项目reqparamsmap字典容器的键值对存在键相同但值不同的情况时,将新项目reqparamsmap字典容器对应的键值对渲染为第二颜,将老项目reqparamsmap字典容器对应的键值对渲染为第三颜,将渲染后的两键值对组合在一起并采用分隔符分隔后提取到比较结果中;在第三编码结果与第七编码结果不相同时,从新项目respheadermap字典容器和老项目respheadermap字典容器的存储内容中遍历查各相应的键值对进行比较,在新项目respheadermap字典容器的键值对与老项目respheadermap字典容器的键值对存在键相同但值不同的情况时,将新项目respheadermap字典容器对应的键值对渲染为第二颜,将老项目respheadermap字典容器对应的键值对渲染为第三颜,将渲染后的两键值对组合在一起并采用分隔符分隔后提取到比较结果中;在第四编码结果与第八编码结果不相同时,从新项目respbodymap字典容器和老项目respbodymap字典容器的存储内容中遍历查各相应的键值对进行比较,在新项目respbodymap字典容器的键值对与老项目respbodymap字典容器的键值对存在键相同但值不同的情况时,将新项目respbodymap字典容器对应的键值对渲染为第二颜,将老项目respbodymap字典容器对应的键值对渲染为第三颜,将渲染后的两键值对组合在一起并采用分隔符分隔后提取到比较结果中。5.根据权利要求4所述的基于配置文件的restfulapi对比方法,其特征在于,所述方法还包括:在比较完新项目和老项目各字典容器的键值对后,若新项目的相应字典容器中还存在键值对时,提取相应新项目字典容器的键值对来添加第一标识符,然后渲染为第二颜汇总到比较结果中,若老项目的相应字典容器中还存在键值对时,提取相应老项目字典容器的键值对来添加第二标识符,然后渲染为第三颜汇总到比较结果中。6.根据权利要求1所述的基于配置文件的restfulapi对比方法,其特征在于,所述方法还包括:在得到比较结果后,将比较结果存入缓存器中;在根据比较结果生成对比文件时,提取缓存器中的比较结果来生成html格式的对比文件。7.根据权利要求1所述的基于配置文件的restfulapi对比方法,其特征在于,所述读取并解析配置文件,包括:使用yaml库读取并解析配置文件,并验证配置文件的正确性。8.基于配置文件的restfulapi对比系统,其特征在于,包括获取单元、解析单元、收发
单元、比较单元和生成单元,其中:获取单元,用于获取配置文件,所述配置文件包含若干组restfulapi,每组restfulapi均包含新项目http请求和老项目http请求;解析单元,用于读取并解析配置文件,得到各组restfulapi的新项目http请求和老项目http请求;收发单元,用于向目标服务器发送同组restfulapi的新项目http请求和老项目http请求,并接收目标服务器的响应结果,所述响应结果包含新项目的响应结果和老项目的响应结果;比较单元,用于采用设定的signaldiff算法对新项目的响应结果与老项目的响应结果进行比较,得到比较结果,所述比较结果中包含第一颜字符串、第二颜字符串和第三颜字符串,所述第一颜字符串为新项目响应结果与老项目响应结果中对应相同的部分,所述第二颜字符串和第三颜字符串分别为新项目响应结果和老项目响应结果中对应互不相同的部分;生成单元,用于根据比较结果生成对比文件进行存储和输出展示。9.基于配置文件的restfulapi对比设备,其特征在于,包括:存储器,用于存储指令;处理器,用于读取所述存储器中存储的指令,并根据指令执行权利要求1-7任意一项所述的方法。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,使得所述计算机执行权利要求1-7任意一项所述的方法。

技术总结


本发明公开了基于配置文件的RESTfulAPI对比方法、系统、设备及存储介质,通过获取配置文件来解析得到RESTfulAPI的新项目HTTP请求和老项目HTTP请求,然后向目标服务器发送RESTfulAPI的新项目HTTP请求和老项目HTTP请求,获得新项目的响应结果和老项目的响应结果,再利用设定的signaldiff算法对新项目的响应结果与老项目的响应结果进行比较,得到包含第一颜字符串、第二颜字符串和第三颜字符串的比较结果,最后根据比较结果生成相应的对比文件,就可以实现老项目和重构新项目RESTfulAPI请求和响应的自动化测试。本发明可以替代传统人工测试方式,实现老项目和新项目RESTfulAPI的自动化测试比对,提高测试比对的效率和精准度,节省人力和时间。节省人力和时间。节省人力和时间。


技术研发人员:

程斌 曾舒煜 陈爱民

受保护的技术使用者:

成都萌想科技有限责任公司

技术研发日:

2023.02.10

技术公布日:

2023/3/10

本文发布于:2024-09-25 15:26:02,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/71038.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:字典   容器   项目   新项目
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议