本发明实施例涉及计算机,具体涉及一种数据回归测试方法及装置。
背景技术:
1、数据计算平台在进行组件升级、常规功能迭代等代码更新时,通过会要求数据计算平台上运行的任务进行相关的同步代码更改,如sql语法的变化,引擎jar的变动等。为了保证任务的代码变更不影响业务线上数据的采集和计算,需要在对任务进行代码变更前进行数据回归测试。
2、业界现有方案通常在代码变更后验证任务启动、执行功能是否正常。线下构造少量kafka数据并启动测试任务,或直接在线上验证任务是否可正常启动,通过人工抽样检查各数据转化、数据计算功能是否正常。然而,随着实时智能推荐、实时商业智能(businessintelligence,bi)可视化大屏等实时开发场景的增加,业务对实时数据的准确性要求也越来越高,只保证任务功能可用不再合适,且人工构造数据抽样检查,无法覆盖线上真实场景,漏测率较高。
3、现有实时数据验证技术是在代码变更后对比上游kafka数据和数据计算平台写入数据表中的前一天数据。然而,这种方法由于是对前一天的数据进行验证,发现问题时间较为滞后,在修复后也无法立即验证,拉长了测试周期。
4、可见,现有的数据回归测试存在无法覆盖线上真实场景,漏测率高,发现问题滞后,由于在代码变更后进行回归对生产环境有损的问题。
技术实现思路
1、针对现有技术存在的缺陷,本发明实施例提供一种数据回归测试方法及装置。
2、本发明实施例提供一种数据回归测试方法,包括:从数据计算平台的上游数据源采集线上数据构建测试数据集;复制所述数据计算平台待测试的线上任务,得到基准任务;基于所述基准任务的数据处理逻辑及所述数据计算平台的代码变更信息创建测试任务;针对所述测试数据集,执行所述基准任务,将得到的第一数据处理结果存储入所述线上任务对应的下游数据源的第一数据表;针对所述测试数据集,执行所述测试任务,将得到的第二数据处理结果存储入所述下游数据源的第二数据表;通过比较所述第一数据处理结果和所述第二数据处理结果进行数据回归测试。
3、根据本发明实施例提供的一种数据回归测试方法,所述通过比较所述第一数据处理结果和所述第二数据处理结果进行数据回归测试,包括:通过比较所述第一数据处理结果和所述第二数据处理结果中的预设数据字段的字段内容的一致性进行数据回归测试。
4、根据本发明实施例提供的一种数据回归测试方法,所述通过比较所述第一数据处理结果和所述第二数据处理结果中的预设数据字段的字段内容的一致性进行数据回归测试,包括:分别基于所述第一数据处理结果及所述第二数据处理结果提取所述预设数据字段的字段内容,得到各个所述预设数据字段对应的第一字段数据及第二字段数据;将所述第一字段数据和所述第二字段数据进行格式化处理,统一数据格式;将格式化处理后的所述第一字段数据作为整体计算md5值,得到第一字段数据md5值;将格式化处理后的所述第二字段数据作为整体计算md5值,得到第二字段数据md5值;比较所述第一字段数据md5值和所述第二字段数据md5值;响应于各个所述预设数据字段对应的所述第一字段数据md5值和所述第二字段数据md5值均一致,数据回归测试通过;响应于任一所述预设数据字段对应的所述第一字段数据md5值和所述第二字段数据md5值不一致,数据回归测试不通过。
5、根据本发明实施例提供的一种数据回归测试方法,在所述比较所述第一字段数据md5值和所述第二字段数据md5值之前,所述方法还包括:基于所述第一字段数据md5值、对应的格式化后的所述第一字段数据以及格式化前的所述第一字段数据生成第一数据记录存储入预设数据表;基于所述第二字段数据md5值、对应的格式化后的所述第二字段数据以及格式化前的所述第二字段数据生成第二数据记录存储入所述预设数据表。
6、根据本发明实施例提供的一种数据回归测试方法,所述方法还包括:为所述第一数据记录及所述第二数据记录添加相同索引。
7、根据本发明实施例提供的一种数据回归测试方法,所述方法还包括:响应于所述第一字段数据md5值和所述第二字段数据md5值不一致,将所述第一数据记录和所述第二数据记录存储入测试结果表。
8、根据本发明实施例提供的一种数据回归测试方法,所述方法还包括:根据所述测试数据集的数据量、所述第一数据表的数据量、所述第二数据表的数据量以及所述测试结果表的数据量进行断言,并生成测试报告。
9、根据本发明实施例提供的一种数据回归测试方法,所述从数据计算平台的上游数据源采集线上数据构建测试数据集,包括:响应于接收到所述数据计算平台的所述代码变更信息,执行所述从数据计算平台的上游数据源采集线上数据构建测试数据集;其中,所述代码变更信息是所述数据计算平台在代码变更后自动触发发送的。
10、本发明实施例还提供一种数据回归测试装置,包括:测试数据集构建模块,用于:从数据计算平台的上游数据源采集线上数据构建测试数据集;
11、基准任务构建模块,用于:复制所述数据计算平台待测试的线上任务,得到基准任务;
12、测试任务构建模块,用于:基于所述基准任务的数据处理逻辑及所述数据计算平台的代码变更信息创建测试任务;
13、任务执行模块,用于:针对所述测试数据集,执行所述基准任务,将得到的第一数据处理结果存储入所述线上任务对应的下游数据源的第一数据表;针对所述测试数据集,执行所述测试任务,将得到的第二数据处理结果存储入所述下游数据源的第二数据表;
14、回归测试模块,用于:通过比较所述第一数据处理结果和所述第二数据处理结果进行数据回归测试。
15、本发明实施例还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述数据回归测试方法的步骤。
16、本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述数据回归测试方法的步骤。
17、本发明实施例还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述数据回归测试方法的步骤。
18、本发明实施例提供的数据回归测试方法及装置,通过从数据计算平台的上游数据源采集线上数据构建测试数据集,复制数据计算平台待测试的线上任务,得到基准任务,基于基准任务的数据处理逻辑及数据计算平台的代码变更信息创建测试任务,针对测试数据集,执行基准任务,将得到的第一数据处理结果存储入线上任务对应的下游数据源的第一数据表,针对测试数据集,执行测试任务,将得到的第二数据处理结果存储入下游数据源的第二数据表,通过比较第一数据处理结果和第二数据处理结果进行数据回归测试,在数据回归测试时能够覆盖线上真实场景,且对任务执行进行全面测试,提高问题发现能力,由于在代码变更前执行测试,能够在发现问题后及时修正,不会对生产环境造成损坏。
1.一种数据回归测试方法,其特征在于,包括:
2.根据权利要求1所述的数据回归测试方法,其特征在于,所述通过比较所述第一数据处理结果和所述第二数据处理结果进行数据回归测试,包括:
3.根据权利要求2所述的数据回归测试方法,其特征在于,所述通过比较所述第一数据处理结果和所述第二数据处理结果中的预设数据字段的字段内容的一致性进行数据回归测试,包括:
4.根据权利要求3所述的数据回归测试方法,其特征在于,在所述比较所述第一字段数据md5值和所述第二字段数据md5值之前,所述方法还包括:
5.根据权利要求4所述的数据回归测试方法,其特征在于,所述方法还包括:
6.根据权利要求4所述的数据回归测试方法,其特征在于,所述方法还包括:
7.根据权利要求6所述的数据回归测试方法,其特征在于,所述方法还包括:
8.根据权利要求1所述的数据回归测试方法,其特征在于,所述从数据计算平台的上游数据源采集线上数据构建测试数据集,包括:
9.一种数据回归测试装置,其特征在于,包括:
10.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至8任一项所述数据回归测试方法的步骤。
11.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至8任一项所述数据回归测试方法的步骤。
12.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至8任一项所述数据回归测试方法的步骤。