CN117743190A - 接口数据流量回放的验证方法、装置、计算机设备 - Google Patents
接口数据流量回放的验证方法、装置、计算机设备 Download PDFInfo
- Publication number
- CN117743190A CN117743190A CN202410003616.8A CN202410003616A CN117743190A CN 117743190 A CN117743190 A CN 117743190A CN 202410003616 A CN202410003616 A CN 202410003616A CN 117743190 A CN117743190 A CN 117743190A
- Authority
- CN
- China
- Prior art keywords
- data
- query
- test
- interface
- request
- 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
- 238000012795 verification Methods 0.000 title claims abstract description 50
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000012360 testing method Methods 0.000 claims abstract description 157
- 238000013515 script Methods 0.000 claims abstract description 22
- 238000004590 computer program Methods 0.000 claims abstract description 18
- 238000004519 manufacturing process Methods 0.000 claims abstract description 13
- 238000012216 screening Methods 0.000 claims description 22
- 230000002159 abnormal effect Effects 0.000 claims description 12
- 238000011161 development Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 6
- 230000006399 behavior Effects 0.000 description 4
- 238000001914 filtration Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000012937 correction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种接口数据流量回放的验证方法、装置、计算机设备、存储介质和计算机程序产品。所述方法包括:获取接口请求的历史记录,并对所述历史记录的参数信息进行提取并存储,得到请求参数文件;将各个参数对应的脚本发送到生产环境以及测试环境,得到查询数据以及测试数据;对所述查询数据以及所述测试数据中的多级数据进行逐层展开,得到分级后的查询数据以及测试数据;对所述分级后的查询数据与测试数据进行对比,得到所述分级后的查询结果与测试结果中不同数据的数量;利用预设的对比规则,对所述不同数据的数量进行分析,得到所述查询数据的验证结果。提高了数据接口验证的速度以及准确性。
Description
技术领域
本申请涉及大数据技术领域,特别是涉及一种接口数据流量回放的验证方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
随着大数据技术的发展,出现了数据接口查询数据技术,通过数据接口查询数据可以实时获取最新的数据,且支持参数化查询,根据查询条件,灵活获取所需的数据,然而,数据接口返回查询数据结果,可能会因为异常数据的结构变化、接口缺陷等影响查询结果的正确性。所以在接口公开使用前,需要验证公开前的接口功能是否正常、查询数据类型和数据是否一致。但是线上数据接口数量庞大,覆盖场景有限,标准化难度高,难以人工验证。
发明内容
基于此,有必要针对上述技术问题,提供一种能够接口数据流量回放的验证方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种接口数据流量回放的验证方法。所述方法包括:
获取接口请求的历史记录,并对所述历史记录的参数信息进行提取并存储,得到请求参数文件;
编写数据接口的请求脚本,利用所述请求脚本依次读取请求参数文件的参数,并将各个参数对应的脚本发送到生产环境以及测试环境,得到查询数据以及测试数据;
对所述查询数据以及所述测试数据中的多级数据进行逐层展开,得到分级后的查询数据以及测试数据;
对所述分级后的查询数据与测试数据进行对比,得到所述分级后的查询结果与测试结果中不同数据的数量;
利用预设的对比规则,对所述不同数据的数量进行分析,得到所述查询数据的验证结果。
在其中一个实施例中,所述对所述查询数据以及所述测试数据中的多级数据进行逐层展开,得到分级后的查询数据以及测试数据,包括:
对所述查询数据以及所述测试数据中的多级数据进行检测并逐级展开;
在检测到数据与其他数据存在关联的情况下,跳过关联数据的展开;其中,所述关联数据包括一个数据为另一个数据的标识符;
对展开的数据的标识符进行调整,得到所述分级后的查询数据以及测试数据。
在其中一个实施例中,所述对所述分级后的查询数据与测试数据进行对比,得到所述分级后的查询结果与测试结果中不同数据的数量,包括:
依次提取所述查询数据中的数据,并在测试数据中查询是否存在相应的数据;
在测试数据中存在所述数据的情况下,将一致的数据从查询数据以及测试数据中删除;
在查询数据中的数据全部提取完成的情况下,将所述查询数据以及测试数据中剩余的数据数量相加,得到不同数据的数量。
在其中一个实施例中,所述依次提取所述查询数据中的数据,并在测试数据中查询是否存在相应的数据,包括:
依次提取所述查询数据中与其他数据未存在关联的数据,并在测试数据中查询是否存在相应的数据;
依次提取所述查询数据中与其他数据存在关联的数据,根据所述存在关联的数据的标识符在测试数据中查询是否存在相应的数据;
在所述查询数据中的标识符对应的所有数据都与测试数据中的数据一致的情况下,确定所述测试数据中包含所述标识符对应的数据。
在其中一个实施例中,所述获取接口请求的历史记录,并对所述历史记录的参数信息进行提取并存储,得到请求参数文件,包括:
编写筛选条件,并根据所述筛选条件,选择得到对应的日志文件;其中,所述日志文件包括历史接口请求的信息文件;
根据预设的信息规则,对所述日志文件进行提取参数,得到历史接口请求参数信息;
对所述历史接口请求参数信息中的异常参数信息进行筛选修正,并将修正后的参数信息和非异常参数信息存储到文件中,得到请求参数文件。
在其中一个实施例中,所述请求参数文件,还包括:
基于用户的数据接口请求,定期对所述请求参数文件进行更新调整。
在其中一个实施例中,所述对比规则的获取方式,包括:
对查询数据和测试数据的数量进行分段,并分别为每段数据设置不同数据的数量阈值和对应的验证结果,得到目标对比规则。
第二方面,本申请还提供了一种接口数据流量回放的验证装置。所述装置包括:
文件获取模块,用于获取接口请求的历史记录,并对所述历史记录的参数信息进行提取并存储,得到请求参数文件;
数据获取模块,用于编写数据接口的请求脚本,利用所述请求脚本依次读取请求参数文件的参数,并将各个参数对应的脚本发送到生产环境以及测试环境,得到查询数据以及测试数据;
数据分级模块,用于对所述查询数据以及所述测试数据中的多级数据进行逐层展开,得到分级后的查询数据以及测试数据;
数据对比模块,用于对所述分级后的查询数据与测试数据进行对比,得到所述分级后的查询结果与测试结果中不同数据的数量;
目标验证模块,用于利用预设的对比规则,对所述不同数据的数量进行分析,得到所述查询数据的验证结果。
在其中一个实施例中,所述数据分级模块,包括:
数据分层子模块,用于对所述查询数据以及所述测试数据中的多级数据进行检测并逐级展开;
所述数据分层子模块,还用于在检测到数据与其他数据存在关联的情况下,跳过关联数据的展开;其中,所述关联数据包括一个数据为另一个数据的标识符;
所述数据分层子模块,还用于对展开的数据的标识符进行调整,得到所述分级后的查询数据以及测试数据。
在其中一个实施例中,所述数据对比模块,包括:
数据查询子模块,用于依次提取所述查询数据中的数据,并在测试数据中查询是否存在相应的数据;
所述数据查询子模块,还用于在测试数据中存在所述数据的情况下,将一致的数据从查询数据以及测试数据中删除;
所述数据查询子模块,还用于在查询数据中的数据全部提取完成的情况下,将所述查询数据以及测试数据中剩余的数据数量相加,得到不同数据的数量。
在其中一个实施例中,所述数据查询子模块,包括:
查询单元,用于依次提取所述查询数据中与其他数据未存在关联的数据,并在测试数据中查询是否存在相应的数据;
所述查询单元,还用于依次提取所述查询数据中与其他数据存在关联的数据,根据所述存在关联的数据的标识符在测试数据中查询是否存在相应的数据;
所述查询单元,还用于在所述查询数据中的标识符对应的所有数据都与测试数据中的数据一致的情况下,确定所述测试数据中包含所述标识符对应的数据。
在其中一个实施例中,所述文件获取模块,包括:
文件筛选子模块,用于编写筛选条件,并根据所述筛选条件,选择得到对应的日志文件;其中,所述日志文件包括历史接口请求的信息文件;
参数获取子模块,用于根据预设的信息规则,对所述日志文件进行提取参数,得到历史接口请求参数信息;
参数修正子模块,用于对所述历史接口请求参数信息中的异常参数信息进行筛选修正,并将修正后的参数信息和非异常参数信息存储到文件中,得到请求参数文件。
在其中一个实施例中,所述文件获取模块,包括:
更新子模块,用于基于用户的数据接口请求,定期对所述请求参数文件进行更新调整。
在其中一个实施例中,所述目标验证模块,包括:
规则获取子模块,用于对查询数据和测试数据的数量进行分段,并分别为每段数据设置不同数据的数量阈值和对应的验证结果,得到目标对比规则。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如本公开实施例任一项所述的接口数据流量回放的验证方法。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如本公开实施例任一项所述的接口数据流量回放的验证方法。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如本公开实施例任一项所述的接口数据流量回放的验证方法。
上述接口数据流量回放的验证方法、装置、计算机设备、存储介质和计算机程序产品,通过接口请求的历史记录,对历史记录的参数信息进行提取存储得到请求参数文件,并对请求参数文件中的请求参数依次发送到生产环境和测试环境,得到查询数据以及测试数据,并将数据逐层展开并将查询数据与测试数据进行对比得到,查询接口的验证结果。利用接口请求的历史记录,来对向上用户场景做业务回归,提高了根据用户数据查询接口请求的准确性,并通过查询数据与测试数据的对比,提高了对接口验证结果的准确性,同时通过将查询数据以及测试数据进行逐层展开,为查询数据与测试数据的对比提供了便利,同时也进一步提高了接口验证结果的准确性。
附图说明
图1为一个实施例中接口数据流量回放的验证方法的流程示意图;
图2为一个实施例中数据分级的流程示意图;
图3为一个实施例中查询数据与测试数据对比的第一流程示意图;
图4为一个实施例中查询数据与测试数据对比的第二流程示意图;
图5为一个实施例中请求参数文件的获取的流程示意图;
图6为一个实施例中接口数据流量回放的验证方法实施的流程示意图;
图7为一个实施例中接口数据流量回放的验证装置的结构框图;
图8为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种接口数据流量回放的验证方法,包括以下步骤:
步骤S100,获取接口请求的历史记录,并对所述历史记录的参数信息进行提取并存储,得到请求参数文件。
在一种示例性实施例中,可以利用阿里云日志来记录生产环境中的所有接口请求,通过阿里云日志进行接口请求的历史记录查询。
在一种示例性实施例中,可以通过编写筛选条件来过滤得到所需的日志,并通过日志来获取接口请求的历史记录,其中,筛选条件可以包括日志时间属于用户访问高峰期时间段,查询项目属于数据接口项目,去除接口白名单的接口,去除属于公司内部人员的流量操作人,根据业务需要制定返回条数等。
在一种示例性实施例中,所述历史记录的参数信息可包括请求的接口的名称、输入参数、请求方法等;其中,数据接口一般提供查询功能,http请求中查询类的请求方法method属于get或post,get请求的请求参数放于query中,post请求的请求参数放于body中,并根据请求方式获取不同的字段,并对参数中的脏数据进行筛选,对参数中的特殊字符和多余字符进行修正。
在一种示例性实施例中,所述请求参数文件可以包括基于用户群体以及其查询行为的变化,使得验证的参数信息不断更新,以覆盖用户行为,并对请求参数文件进行更新。
步骤S200,编写数据接口的请求脚本,利用所述请求脚本依次读取请求参数文件的参数,并将各个参数对应的脚本发送到生产环境以及测试环境,得到查询数据以及测试数据。
在一种示例性实施例中,编写数据接口的请求脚本可以包括请求协议、请求方法、请求头、接口名、接口环境、请求参数等。在另一种示例性实施例中,可以使用Python中的requests库来发送GET请求,并根据相应的状态码来处理返回的数据。
步骤S300,对所述查询数据以及所述测试数据中的多级数据进行逐层展开,得到分级后的查询数据以及测试数据。
在一种示例性实施例中,所述查询数据和测试数据可以包括多个数据类型,例如,简单数据类型:字符型(string),整型(int),浮点型(float),布尔型(Boolean);复杂数据类型:列表、元组、json、集合。
在一种示例性实施例中,所述多级数据可以包括多级json嵌套的数据,通过编写递归函数进行递归处理先去第一层json的key集合,在第二层以及为json类型时,调用递归函数再次处理,按照层级依次取到不为json的数据,并对key的值进行修改,拼接本层的key与上一层的key。例如,主体={"属性1":{"属性2":"XX","属性3":"XX"},"属性4":"XX"},将此数据进行逐层展开后得到,主体.属性1.属性2=XX,主体.属性1.属性3=XX,主体.属性4=XX。
步骤S400,对所述分级后的查询数据与测试数据进行对比,得到所述分级后的查询结果与测试结果中不同数据的数量。
在一种示例性实施例中,对查询数据与测试数据进行对比可以包括依次遍历查询数据中的数据,并在测试数据中查询,若查询到查询数据与测试数据均存在该数据,则将该数据从查询数据和测试数据中删除,在将查询数据便利完成后,统计查询数据和测试数据中遗留的数据,即为不同数据的数量。
步骤S500,利用预设的对比规则,对所述不同数据的数量进行分析,得到所述接口的验证结果。
在一种示例性实施例中,所述预设的对比规则包括对查询数据和测试数据的数量进行分段,并分别为每段数据设置不同数据的数量阈值和对应的验证结果。例如,在查询数据和测试数据的数量大于10000时,不同数据的数量的阈值设置为100;在查询数据和测试数据的数量大于100小于10000时,不同数据的数量的阈值设置为10;在查询数据和测试数据的数量大于10小于100时,不同数据的数量的阈值设置为0;在超过阈值范围时,确定验证失败,并发出警告。
上述接口数据流量回放的验证方法中,通过接口请求的历史记录,对历史记录的参数信息进行提取存储得到请求参数文件,并对请求参数文件中的请求参数依次发送到生产环境和测试环境,得到查询数据以及测试数据,并将数据逐层展开并将查询数据与测试数据进行对比得到,查询接口的验证结果。利用接口请求的历史记录,来对向上用户场景做业务回归,提高了根据用户数据查询接口请求的准确性,并通过查询数据与测试数据的对比,提高了对接口验证结果的准确性,同时通过将查询数据以及测试数据进行逐层展开,为查询数据与测试数据的对比提供了便利,同时也进一步提高了接口验证结果的准确性。
在一个实施例中,如图2所示,步骤S300包括:
步骤S301,对所述查询数据以及所述测试数据中的多级数据进行检测并逐级展开。
步骤S302,在检测到数据与其他数据存在关联的情况下,跳过关联数据的展开;其中,所述关联数据包括一个数据为另一个数据的标识符。
步骤S303,对展开的数据的标识符进行调整,得到所述分级后的查询数据以及测试数据。
在一种示例性实施例中,存在管理的数据可以包括:一个数据为其他数据的标识符,例如,班级={"同学":{"学号":"XX","姓名":"XX","成绩":"XX"},"同学":{"学号":"XX","姓名":"XX","成绩":"XX"},该数据中,同学的学号、姓名与成绩为关联关系,学号为姓名和成绩的唯一标识符,此时关联数据不可以被分层。
在一种示例性实施例中,所述对数据进行分层可以包括多级json嵌套的数据,通过编写递归函数进行递归处理先去第一层json的key集合,在第二层以及为json类型时,调用递归函数再次处理,按照层级依次取到不为json的数据,并对key的值进行修改,拼接本层的key与上一层的key。例如,主体={"属性1":{"属性2":"XX","属性3":"XX"},"属性4":"XX"},将此数据进行逐层展开后得到,主体.属性1.属性2=XX,主体.属性1.属性3=XX,主体.属性4=XX。
本实施例中,通过对查询数据以及测试数据进行分层,跳过关联数据的展开,并对展开数据的标识符进行调整,得到分级后的查询数据和测试数据,能够达到对查询数据与测试数据进行分级,为后续查询数据与测试数据的对比提供了便利,并通过跳过关联数据的展开以及展开数据的标识符调整,保证了分级后数据的准确性以及唯一性,为接口的验证提供了基础以及便利。
在一个实施例中,如图3所示,步骤S400包括:
步骤S401,依次提取所述查询数据中的数据,并在测试数据中查询是否存在相应的数据。
步骤S402,在测试数据中存在所述数据的情况下,将一致的数据从查询数据以及测试数据中删除。
步骤S403,在查询数据中的数据全部提取完成的情况下,将所述查询数据以及测试数据中剩余的数据数量相加,得到不同数据的数量。
在一种示例性实施例中,所述不同数据的数量可以包括仅存在于测试数据或查询数据中的数据,以及测试数据与查询数据存在偏差的数据,在另一种示例性实施例中,分别查询存在于测试数据或查询数据中的数据,与测试数据与查询数据存在偏差的数据,以保证数据验证的准确性。
在一种示例性实施例中,可以编写函数判断查询数据和测试数据中包含的元素是否一致,遍历查询数据依次取出元素,若存在于测试数据,则将该数据从查询数据和测试数据中删除,直到将查询数据全部遍历,最终查询数据与测试数据中剩余的数据数量相加,得到不同数据的数量,其中,在遍历查询数据中存在与测试数据相同标识符但数据不同的数据可以单独计算并删除,记作错误数据。
本实施例中,通过对查询数据进行遍历并查找测试数据中是否存在该数据并删除,得到不同数据的数量,能够达到对接口请求的不同环境下的数据进行对比,得到不同环境下的不同数据的数量,提高了不同环境下数据的对比结果的准确性,同时,进一步提高了接口验证结果的准确性。
在一个实施例中,如图4所示,步骤S401包括:
步骤S411,依次提取所述查询数据中与其他数据未存在关联的数据,并在测试数据中查询是否存在相应的数据。
步骤S412,依次提取所述查询数据中与其他数据存在关联的数据,根据所述存在关联的数据的标识符在测试数据中查询是否存在相应的数据。
步骤S413在所述查询数据中的标识符对应的所有数据都与测试数据中的数据一致的情况下,确定所述测试数据中包含所述标识符对应的数据。
在一种示例性实施例中,所述与其他数据未存在关联的数据可以包括通过标识符可以确定为唯一的数据,例如,学校.年级.班级.学生.总成绩=100,通过学校、年级、班级、学生、总成绩等标识符,确定该数据为唯一的数据,并不存在与之有关联的数据。
在一种示例性实施例中,所述与其他数据存在关联关系的数据可以包括数据为其他相关联的数据的标识符的数据,例如,成绩={{"班级":"XX","成绩":"XX","人数"="XX"},{"班级":"XX","成绩":"XX","人数"="XX"}},此数据中,由于查询数据中班级之间的顺序是存在混乱的,无法确定查询数据与测试数据中的班级顺序是一致的,所以此时成绩以及人数的标识符为班级,此时确定班级、成绩、人数为有关联关系的数据,在查询数据和测试数据中班级、成绩、人数全部一致的情况下,确定测试数据中包含标识符对应的数据。例如,所述数据的位移标识符可以包括公司名、案号等。
本实施例中,通过分别对与其他数据存在关联的数据以及与其他数据未存在关联关系的数据进行对比,能够达到更加准确地得到查询数据与测试数据的对比结果,进而为查询数据的验证提供了更加准确的基础,保证了数据接口的验证结果的准确性。
在一个实施例中,如图5所示,步骤S100包括:
步骤S101,编写筛选条件,并根据所述筛选条件,选择得到对应的日志文件;其中,所述日志文件包括历史接口请求的信息文件。
步骤S102,根据预设的信息规则,对所述日志文件进行提取参数,得到历史接口请求参数信息。
步骤S103,对所述历史接口请求参数信息中的异常参数信息进行筛选修正,并将修正后的参数信息和非异常参数信息存储到文件中,得到请求参数文件。
在一种示例性实施例中,编写筛选条件可以包括日志时间属于用户访问高峰期时间段,查询项目属于数据接口项目,去除接口白名单的接口、去除属于公司内部人员的流量操作人,根据业务需要指定返回条数。
在一种示例性实施例中,编写筛选条件可以包括指定所需的返回字段例如,可以包括请求的接口名称、输入参数、请求方法。在一种示例性实施例中,数据接口一般只提供查询功能,http请求中查询类的请求方法method一般属于get或post,而get请求的请求参数放在query中,post请求的请求参数放在body中,需要根据请求方式获取不同的字段,然后需要对流量中的脏数据进行筛选、对参数中的特殊字符和多余字段进行修正,处理后存储入请求参数文件。
本实施例中,通过编写筛选条件,根据筛选条件得到日志文件,并提取得到接口请求的参数信息,同时对异常参数信息进行筛选修正得到请求参数文件,能够更加准确地得到需要验证的接口的日志文件,进而得到需要验证的接口请求的参数信息,通过对异常参数信息进行筛选修正,使得参数信息更加准确,为后续查询数据与测试数据的验证提供了基础,保证了接口请求的准确性。
在一个实施例中,步骤S100包括:
基于用户的数据接口请求,定期对所述请求参数文件进行更新调整。
在一种示例性实施例中,可以基于用户群体以及其查询行为的不断变化,对请求参数文件进行更新调整。
该实施例中,通过用户的数据接口请求,定期对请求参数文件进行更新,能够达到覆盖用户行为,使得请求参数文件更加全面和准确,进而使得验证的接口更加全面且准确。
在一个实施例中,步骤S500包括:
对查询数据和测试数据的数量进行分段,并分别为每段数据设置不同数据的数量阈值和对应的验证结果,得到目标对比规则。
在一种示例性实施例中,对查询数据和测试数据的数量进行分段处理,设置不同数据的数量阈值以及验证结果。例如,在查询数据和测试数据的数量大于10000时,不同数据的数量的阈值设置为100;在查询数据和测试数据的数量大于100小于10000时,不同数据的数量的阈值设置为10;在查询数据和测试数据的数量大于10小于100时,不同数据的数量的阈值设置为0;在超过阈值范围时,确定验证失败,并发出警告。
该实施例中,通过对查询数据以及测试数据的数量进行分段,并为每段数据设置不同的数量阈值以及验证结果,能够保证数据接口验证结果的透明性和准确性。
在一种示例性实施例中,一种接口数据流量回放的验证方法的实施例可以如图6所示,包括:
对线上日志进行筛选,获取用户访问高峰期所在的时间段的请求日志,指定所需字段,包括请求的接口名称、输入参数、请求方法,标准化处理后存储至请求参数文件;
从请求参数文件读取请求信息,编写数据接口请求的脚本,分别发送至生产环境和测试环境,获取两个环境的查询结果;
将两个环境的查询结果出入对比模型进行比较,进行一系列的降噪策略处理后进行一致性对比;
对于生产环境和测试环境中降噪策略处理后的结果进行一致性判断,存在不一致的结果进行统计,包括接口请求信息、生产环境查询结果、测试环境查询结果、双环境的不一致字段,推送开发人员排查。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的接口数据流量回放的验证方法的接口数据流量回放的验证装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个接口数据流量回放的验证装置实施例中的具体限定可以参见上文中对于接口数据流量回放的验证方法的限定,在此不再赘述。
在一个实施例中,如图7所示,提供了一种接口数据流量回放的验证装置100,包括:文件获取模块101、数据获取模块102、数据分级模块103、数据对比模块104、目标验证模块105,其中:
文件获取模块,用于获取接口请求的历史记录,并对所述历史记录的参数信息进行提取并存储,得到请求参数文件;
数据获取模块,用于编写数据接口的请求脚本,利用所述请求脚本依次读取请求参数文件的参数,并将各个参数对应的脚本发送到生产环境以及测试环境,得到查询数据以及测试数据;
数据分级模块,用于对所述查询数据以及所述测试数据中的多级数据进行逐层展开,得到分级后的查询数据以及测试数据;
数据对比模块,用于对所述分级后的查询数据与测试数据进行对比,得到所述分级后的查询结果与测试结果中不同数据的数量;
目标验证模块,用于利用预设的对比规则,对所述不同数据的数量进行分析,得到所述查询数据的验证结果。
在一个实施例中,所述数据分级模块,包括:数据分层子模块,其中:
数据分层子模块,用于对所述查询数据以及所述测试数据中的多级数据进行检测并逐级展开;
所述数据分层子模块,还用于在检测到数据与其他数据存在关联的情况下,跳过关联数据的展开;其中,所述关联数据包括一个数据为另一个数据的标识符;
所述数据分层子模块,还用于对展开的数据的标识符进行调整,得到所述分级后的查询数据以及测试数据。
在一个实施例中,所述数据对比模块,包括:数据查询子模块,其中:
数据查询子模块,用于依次提取所述查询数据中的数据,并在测试数据中查询是否存在相应的数据;
所述数据查询子模块,还用于在测试数据中存在所述数据的情况下,将一致的数据从查询数据以及测试数据中删除;
所述数据查询子模块,还用于在查询数据中的数据全部提取完成的情况下,将所述查询数据以及测试数据中剩余的数据数量相加,得到不同数据的数量。
在一个实施例中,所述数据查询子模块,包括:查询单元,其中:
查询单元,用于依次提取所述查询数据中与其他数据未存在关联的数据,并在测试数据中查询是否存在相应的数据;
所述查询单元,还用于依次提取所述查询数据中与其他数据存在关联的数据,根据所述存在关联的数据的标识符在测试数据中查询是否存在相应的数据;
所述查询单元,还用于在所述查询数据中的标识符对应的所有数据都与测试数据中的数据一致的情况下,确定所述测试数据中包含所述标识符对应的数据。
在一个实施例中,所述文件获取模块,包括:文件筛选子模块、参数获取子模块、参数修正子模块,其中:
文件筛选子模块,用于编写筛选条件,并根据所述筛选条件,选择得到对应的日志文件;其中,所述日志文件包括历史接口请求的信息文件;
参数获取子模块,用于根据预设的信息规则,对所述日志文件进行提取参数,得到历史接口请求参数信息;
参数修正子模块,用于对所述历史接口请求参数信息中的异常参数信息进行筛选修正,并将修正后的参数信息和非异常参数信息存储到文件中,得到请求参数文件。
在一个实施例中,所述文件获取模块,包括:更新子模块,其中:
更新子模块,用于基于用户的数据接口请求,定期对所述请求参数文件进行更新调整。
在一个实施例中,所述目标验证模块,包括:规则获取子模块,其中:
规则获取子模块,用于对查询数据和测试数据的数量进行分段,并分别为每段数据设置不同数据的数量阈值和对应的验证结果,得到目标对比规则。
上述接口数据流量回放的验证装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储接口数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种接口数据流量回放的验证方法。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种接口数据流量回放的验证方法,其特征在于,所述方法包括:
获取接口请求的历史记录,并对所述历史记录的参数信息进行提取并存储,得到请求参数文件;
编写数据接口的请求脚本,利用所述请求脚本依次读取请求参数文件的参数,并将各个参数对应的脚本发送到生产环境以及测试环境,得到查询数据以及测试数据;
对所述查询数据以及所述测试数据中的多级数据进行逐层展开,得到分级后的查询数据以及测试数据;
对所述分级后的查询数据与测试数据进行对比,得到所述分级后的查询结果与测试结果中不同数据的数量;
利用预设的对比规则,对所述不同数据的数量进行分析,得到所述查询数据的验证结果。
2.根据权利要求1所述的方法,其特征在于,所述对所述查询数据以及所述测试数据中的多级数据进行逐层展开,得到分级后的查询数据以及测试数据,包括:
对所述查询数据以及所述测试数据中的多级数据进行检测并逐级展开;
在检测到数据与其他数据存在关联的情况下,跳过关联数据的展开;其中,所述关联数据包括一个数据为另一个数据的标识符;
对展开的数据的标识符进行调整,得到所述分级后的查询数据以及测试数据。
3.根据权利要求1所述的方法,其特征在于,所述对所述分级后的查询数据与测试数据进行对比,得到所述分级后的查询结果与测试结果中不同数据的数量,包括:
依次提取所述查询数据中的数据,并在测试数据中查询是否存在相应的数据;
在测试数据中存在所述数据的情况下,将一致的数据从查询数据以及测试数据中删除;
在查询数据中的数据全部提取完成的情况下,将所述查询数据以及测试数据中剩余的数据数量相加,得到不同数据的数量。
4.根据权利要求3所述的方法,其特征在于,所述依次提取所述查询数据中的数据,并在测试数据中查询是否存在相应的数据,包括:
依次提取所述查询数据中与其他数据未存在关联的数据,并在测试数据中查询是否存在相应的数据;
依次提取所述查询数据中与其他数据存在关联的数据,根据所述存在关联的数据的标识符在测试数据中查询是否存在相应的数据;
在所述查询数据中的标识符对应的所有数据都与测试数据中的数据一致的情况下,确定所述测试数据中包含所述标识符对应的数据。
5.根据权利要求1所述的方法,其特征在于,所述获取接口请求的历史记录,并对所述历史记录的参数信息进行提取并存储,得到请求参数文件,包括:
编写筛选条件,并根据所述筛选条件,选择得到对应的日志文件;其中,所述日志文件包括历史接口请求的信息文件;
根据预设的信息规则,对所述日志文件进行提取参数,得到历史接口请求参数信息;
对所述历史接口请求参数信息中的异常参数信息进行筛选修正,并将修正后的参数信息和非异常参数信息存储到文件中,得到请求参数文件。
6.根据权利要求1所述的方法,其特征在于,所述请求参数文件,还包括:
基于用户的数据接口请求,定期对所述请求参数文件进行更新调整。
7.根据权利要求1所述的方法,其特征在于,所述对比规则的获取方式,包括:
对查询数据和测试数据的数量进行分段,并分别为每段数据设置不同数据的数量阈值和对应的验证结果,得到目标对比规则。
8.一种接口数据流量回放的验证装置,其特征在于,所述装置包括:
文件获取模块,用于获取接口请求的历史记录,并对所述历史记录的参数信息进行提取并存储,得到请求参数文件;
数据获取模块,用于编写数据接口的请求脚本,利用所述请求脚本依次读取请求参数文件的参数,并将各个参数对应的脚本发送到生产环境以及测试环境,得到查询数据以及测试数据;
数据分级模块,用于对所述查询数据以及所述测试数据中的多级数据进行逐层展开,得到分级后的查询数据以及测试数据;
数据对比模块,用于对所述分级后的查询数据与测试数据进行对比,得到所述分级后的查询结果与测试结果中不同数据的数量;
目标验证模块,用于利用预设的对比规则,对所述不同数据的数量进行分析,得到所述查询数据的验证结果。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410003616.8A CN117743190A (zh) | 2024-01-02 | 2024-01-02 | 接口数据流量回放的验证方法、装置、计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410003616.8A CN117743190A (zh) | 2024-01-02 | 2024-01-02 | 接口数据流量回放的验证方法、装置、计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117743190A true CN117743190A (zh) | 2024-03-22 |
Family
ID=90281381
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410003616.8A Pending CN117743190A (zh) | 2024-01-02 | 2024-01-02 | 接口数据流量回放的验证方法、装置、计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117743190A (zh) |
-
2024
- 2024-01-02 CN CN202410003616.8A patent/CN117743190A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20150080533A (ko) | 데이터 저장 시스템에서 데이터 소스 특성화 | |
CN106648859A (zh) | 一种任务调度方法和装置 | |
CN116415206B (zh) | 运营商多数据融合方法、系统、电子设备及计算机存储介质 | |
US11875234B2 (en) | Systems and/or methods for machine-learning based data correction and completion in sparse datasets | |
CN116719799A (zh) | 环保数据治理方法、装置、计算机设备和存储介质 | |
CN116166849A (zh) | 一种数据管理方法、装置、设备及存储介质 | |
CN115329011A (zh) | 数据模型的构建方法、数据查询的方法、装置及存储介质 | |
CN110232063B (zh) | 层级数据查询方法、装置、计算机设备和存储介质 | |
CN107451002A (zh) | 针对修改区块体数据的区块链的主动验证方法及系统 | |
CN117236304A (zh) | 一种基于模板配置的Excel通用导入的实现方法 | |
CN117743190A (zh) | 接口数据流量回放的验证方法、装置、计算机设备 | |
CN107451179B (zh) | 针对增加区块的整体勘误的区块链的查询方法及系统 | |
CN113268477B (zh) | 数据表清理方法、装置及服务器 | |
CN113760863A (zh) | 数据库的配置方法、装置、计算机设备和可读存储介质 | |
CN116910769B (zh) | 资产漏洞分析方法、装置和可读存储介质 | |
Gür et al. | Multidimensional Enrichment of Spatial RDF Data for SOLAP--Full Version | |
CN117527785B (zh) | 支持航天工程文件数据上传与全链路管理的方法及系统 | |
CN117149313A (zh) | 程序执行计划同步方法、装置、计算机设备和存储介质 | |
CN117093875A (zh) | 筛选项的搜索质量验证方法、装置和计算机设备 | |
CN117708151A (zh) | 数据的处理方法、装置、计算机设备 | |
CN117951002A (zh) | 增量代码单元测试方法、装置、计算机设备和存储介质 | |
CN117593125A (zh) | 业务数据处理方法、装置、计算机设备和存储介质 | |
CN117370160A (zh) | 代码审核方法、装置、计算机设备、存储介质和程序产品 | |
CN116881164A (zh) | 金融信息系统中测试数据的校验修正方法、装置和设备 | |
CN118170775A (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 |