CN111813652A - 一种数据缺失相关的数据异常值校验的自动化测试方法 - Google Patents
一种数据缺失相关的数据异常值校验的自动化测试方法 Download PDFInfo
- Publication number
- CN111813652A CN111813652A CN202010467323.7A CN202010467323A CN111813652A CN 111813652 A CN111813652 A CN 111813652A CN 202010467323 A CN202010467323 A CN 202010467323A CN 111813652 A CN111813652 A CN 111813652A
- Authority
- CN
- China
- Prior art keywords
- test
- data
- case
- name
- field
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2291—User-Defined Types; Storage management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明公开了一种数据缺失相关的数据异常值校验的自动化测试方法。本发明该方法及工具可以较为高效地完成数据的异常情况测试。具体包括以下步骤:(1)首先,在PostgreSQL数据库创建用例表及测试结果表,用于后续存储测试用例和测试结果;(2)根据数据测试需求,在数据库表中配置测试用例;(3)执行代码的校验类,可选择部分校验类型或全部类型进行测试;(4)自动拼接测试SQL;(5)执行测试SQL,对比测试结果与期望结果的一致性;(6)将测试结果写表存储。本方法及工具亦可保存历史已配置好的用例,进行自动化回归测试。本数据测试方法及工具可极大提升测试工作效率。
Description
技术领域
本发明属于信息技术领域,具体涉及一种数据缺失相关的数据异常值校验的自动化测试方法及工具。
背景技术
本世纪以来,我国的科技不断发展进步,互联网的出现产生了大量的数据信息,人类已进入“大数据”时代。在这样一个时代背景下,依靠大数据展开的数据挖掘、机器学习等算法应用于各行各业,那么如何进行数据软件产品的测试,保证数据的准确性就显得尤为重要。
在传统软件测试体系中,对功能、性能、稳定性等测试方法描述比较完善,但很少有涉及大数据的测试方法。因此,本发明针对大数据测试方法,梳理出一类数据异常校验分支,并提供自动化测试工具,为大数据测试体系的完善提供有力支撑,同时在提高数据测试效率方面迈出坚实的一步。
发明内容
本发明的目的在于现有软件测试体系对大数据测试方法的不足,提出并开发一种数据缺失相关的数据异常值校验的自动化测试方法及工具。具体说明如下:
一种数据缺失相关的数据异常值校验的自动化测试方法,对可支持的校验类型的具体测试的实现方式包括如下步骤:
步骤1:在PG库中创建用例层及结果层,分别对应schema1和schema2,按测试类型创建测试用例表和用例结果表;
步骤2:用例层的配置测试用例数据,按测试类型,针对每一种测试类型均在对应的测试用例表中配置测试用例数据,测试用例数据的内容包含:用例id、项目名称、提测版本、测试层名、测试表名、分区、字段名、校验内容、预期结果、用例状态、创建时间;
步骤3:读取用例表中的测试用例数据,并构造用于测试的SQL脚本;
步骤4:根据用例id,循环执行每一条测试用例数据所构造的SQL脚本,读取HIVE/PG的被测数据,得到被测数据的实际测试数据结果;
步骤5:在关键步骤打印日志,关键步骤包括:
①执行时输入的参数校验;
②获取测试用例数据,并创建dataframe;
③循环执行所有测试用例,得到被测数据的实际数据结果;
④存储测试结果;
⑤执行成功提示;
步骤6:将实际测试数据结果与用例表中配置的预期结果进行比较,得出测试结果,使用is_pass字段(即用例结果表中的是否通过测试字段)标识测试是否通过;
步骤7:存储测试结果:将测试结果存储在用例结果表中,is_pass为1表示测试通过,is_pass为0表示测试未通过;
步骤8:测试人员可在对应的校验类型结果表中查看测试结果。
进一步的,可支持的校验类型包含如下:
类型1:对表数据增量进行测试,统计前7天数据量的均值,使用第8天的数据量与前7天的数据量做比较,计算增量比例:
增量比例=(第8天的数据量/前7天数据量均值)-1
用例设置理想比例范围作为预期结果;
类型2:数据更新及时性测试,通过在用例表中配置正确的日期与测试日期的差距,来校验表中的数据是否及时更新;
类型3:单表数据时间范围数据缺失测试,通过在用例表中配置需要在一定天数内有若干天数据,来校验被测表是否通过测试;
类型4:多表数据时间范围数据缺失校验,用于校验A表中的数据保留的数据量取决于配置表B中的日期配置,来验证被测表的数据量是否满足配置表的配置要求;
类型5:两表数据的包含关系校验,用于校验A表中的某些维度数据,必须来源于B表的对应维度,即B表维度数据大于等于A表。
进一步的,所述的测试用例数据的内容据测试类型的不同,其测试所需测试用例数据配置的字段及内容不同,具体如下:
类型1:数据增量测试类型
测试用例表字段包含:用例id、项目名称、提测版本、测试层名、测试表名、分区、待统计数据量字段名,增量合理上限比例,增量合理下限比例,用例状态,用例创建时间,用例创建时间,用例更新用户,用例更新时间;
用例结果表字段包含:项目名称,测试版本号,用例id、是否测试通过、前7天数据量均值、第8天数据量,增量比例,执行脚本case_ql等字段;其中用例id为该结果表的外键,对应数据增量测试用例表中的用例id字段;
类型2:数据更新及时性测试类型
测试用例表字段包含:用例id、项目名称、提测版本、测试层名、测试表名、分区、可衡量数据更新的字段名(如日期字段)、日期差距、用例状态、用例创建时间、用例创建时间、用例更新用户、用例更新时间等;
用例结果表字段包含:项目名称、测试版本号、用例id、是否测试通过、被测表时间有数据的最大日期、执行脚本case_ql等字段;其中用例id为该结果表的外键,对应数据增量测试用例表中的用例id字段
类型3:单表数据时间范围数据缺失测试类型
测试用例表字段包含:用例id、项目名称、提测版本、测试层名、测试表名、分区、可衡量数据量的字段名(如日期字段)、需要有数据的时间段、需要有数据天数、用例状态、用例创建时间、用例创建时间、用例更新用户、用例更新时间等;
用例结果表字段包含:项目名称、测试版本号、用例id、是否测试通过、实际存在数据天数、执行脚本case_ql等字段;其中用例id为该结果表的外键,对应数据增量测试用例表中的用例id字段
类型4:多表数据时间范围数据缺失测试类型
测试用例表字段包含:用例id、项目名称、提测版本、测试层名、测试表名、分区、可衡量数据量的被测字段名(如日期字段)、数据时间范围源表名、数据时间范围字段、字段取值类型(max/min)、用例状态、用例创建时间、用例创建时间、用例更新用户、用例更新时间等;
用例结果表字段包含:项目名称、测试版本号、用例id、是否测试通过、实际存在数据天数、执行脚本case_ql等字段;其中用例id为该结果表的外键,对应数据增量测试用例表中的用例id字段
类型5:两表数据的包含关系测试类型
测试用例表字段包含:用例id、项目名称、提测版本、测试层名、测试表名、分区、被测表关联字段名、对照表层名、对照表表名、对照表关联字段、通过条件字段、测试表where条件、对照表where条件、用例状态、用例创建时间、用例创建时间、用例更新用户、用例更新时间等;
用例结果表字段包含:项目名称,测试版本号,用例id、是否测试通过、目标表存在对照表以外的数据量、执行脚本case_ql等字段;其中用例id为该结果表的外键,对应数据增量测试用例表中的用例id字段。
进一步,步骤3所述的构造用于测试的SQL脚本,根据测试类型不同,SQL脚本构造不同,具体如下:
类型1:数据增量测试,SQL脚本
其中SCHEMA_NAME为用例数据中测试层名内容,TABLE_NAME为用例数据中测试表名内容,LAST_7DAYS_AVG_ROWS_NUM为前7天平均增量,ROWS_NUM为第8天增量,DOC_DATE为待测试的日期,UNIQUE_KEYS为用例数据中测试表唯一键内容;如果(ROWS_NUM/LAST_7DAYS_AVG_ROWS_NUM-1)的增量比例值在预期上下限制之间,则测试通过;
类型2:数据更新及时性测试,SQL脚本:
SELECT MAX(FIELD_NAME)AS MAX_DATETIME
FROM SCHEMA_NAME.TABLE_NAME
其中SCHEMA_NAME为用例数据中测试层名内容,TABLE_NAME为用例数据中测试表名内容,FIELD_NAME为用例数据中可衡量数据更新的字段名的字段内容,如果查询出的结果大于0,则测试不通过;
类型3:单表数据时间范围数据缺失测试,SQL脚本:
其中SCHEMA_NAME为用例数据中测试层名内容,TABLE_NAME为用例数据中测试表名内容,FIELD_NAME为用例数据表中可以用来衡量有多少天数据的字段名,RANGE_DAGS为用例数据中需要有数据的时间范围;如果查询出的实际天数大于等于需要存在的天数,则测试通过;
类型4:多表数据时间范围数据缺失测试,SQL脚本:
其中SCHEMA_NAME为用例数据中测试层名内容,TABLE_NAME为用例数据中测试表名内容,SOURCE_TABLE_NAME为数据时间范围源表名称,FIELD_NAME为用例数据中被测字段名的内容,SOURCE_FIELD_NAME为用例表中数据时间范围字段内容;如果查询结果中的FCT_DAYS大于等于NEED_DAYS,则测试通过;
类型5:两表数据的包含关系测试,SQL脚本:
其中SCHEMA_NAME为用例数据中测试层名内容,TABLE_NAME为用例数据中测试表名内容,COMPARE_SCHEMA_NAME为用例数据中对照表层名内容,COMPARE_TABLE_NAME为用例数据中对照表名内容,CONDITION_WHERE_FIELD_VALUE为用例数据中被测表where条件内容,COMPARE_WHERE_CONDITION_FIELD_VALUE字段为用例表中对照表where条件的内容FIELD_NAME为用例数据中被测表关联字段名内容,COMPARE_FIELD_NAME为对照表关联字段名,与测试的表关联字段名存储顺序一一对应的字段,PASS_COMPARE_TABLE_CONDITION_FIELD为用例数据中通过条件,即对照表的通过条件字段内容;如果查询结果为空,则测试通过;
CONCAT_ON_UDF为编写的自定义函数,用于拼接多个关联条件字段的ON条件;DATESAME_CONCAT_WHERE_UDF为编写的自定义函数,用于拼接判断多个被测字段与对比字段是否一一对应相等,例如WHERE A.FIELD1=B.FIELD11;
如果查询结果RANGE_OUT_NUMS大于0,则测试不通过。
进一步的,一种数据缺失相关的数据异常值校验的自动化测试方法使用的工具,包括5大模块:读取测试用例内容模块、构造测试SQL模块、循环执行测试SQL模块、结果对比模块、结果存储模块;
所述的读取测试用例内容模块,将测试用例表中已配置的测试用例内容读取到dataframe中;
所述的构造测试SQL模块,通过将读取测试用例内容模块得到的数据,按照测试用例内容,构造对应的测试SQL;
所述的循环执行测试SQL模块,根据用例id,循环执行构造测试SQL模块得到的测试SQL,查询被测表的数据内容;
所述的结果对比模块,将循环执行测试SQL模块得到的被测表数据内容,与测试用例内容中的预期结果做对比,如果一致则测试通过,不一致则测试不通过;
所述的结果存储模块,将结果对比模块得到的测试结果数据、用例id等信息,存储到PG数据库的测试结果表中。
进一步的,一种数据缺失相关的数据异常值校验的自动化测试方法使用的工具,该工具的批量执行方法及日志存储,具体如下:
执行方式1:通过shell脚本,批量执行某几种异常测试类型或全部异常测试类型;
执行方式2:通过使用附加自定义配置文件,在执行时读取自定义配置文件所配置的内容;自定义配置文件可支持执行指定校验类型的某一条或某几条测试用例;
执行方式3:通过读取PG库的测试结果,可支持仅执行上一次测试未通过的用例;
执行结束后日志存储在log文件中,用户可自行查看,能够显示共执行校验类型数量、执行成功的数量及执行失败的数量。
本发明有益效果:
本发明通过梳理、总结大数据测试方法,提出一种数据缺少相关的异常值测试的数据测试方法,并对数据异常情况进行分类,编写适用于每种异常类型的校验程序,开发出一种数据异常值校验的自动化测试工具。完善大数据测试体系,有利于提升数据测试效率。
附图说明
图1是本发明实施例测试对象的数据存储结构及测试用例表、测试结果表层级结构;
图2是本发明实施例采用该异常值测试方法及自动化测试工具的具体流程图。
图3是本发明实施例采用数据更新及时性这种整表结果相关的数据异常测试方法及自动化工具的测试用例表;
图4是本发明实施例采用数据更新及时性这种整表结果相关的数据异常测试方法及自动化工具的测试结果展示。
图5是本发明实施例采用单表数据时间范围内数据缺失这种整表结果相关的数据异常测试方法及自动化工具的测试用例表;
图6是本发明实施例采用单表数据时间范围内数据缺失这种整表结果相关的数据异常测试方法及自动化工具的测试结果展示。
具体实施方式
下面结合附图、附表详细描述本发明,本发明的目的和结果将变得更加明显。本实例是本发明的一个类型实施例。本发明考虑到实际数据测试情况,以数据更新及时性和单表数据时间范围数据缺失这两种异常情况测试为例,编写测试用例,使用自动化测试工具,检验数据是否存在存在缺失的情况,达到数据存在缺失异常值测试目的。
步骤1:在PG库中初始化创建用例层及结果层两层,分别对应schema1和schema2,按测试类型创建测试用例表和用例结果表,用例、结果及被测数据的架构如图1所示;
步骤2:在用例配置层的用例表中分别配置测试用例内容;
数据更新及时性用例表用例id、项目名称、提测版本、测试层名、测试表名、分区、可衡量数据更新的字段名(如日期字段)、日期差距、用例状态、用例创建时间、用例创建时间填写测试用例内容,具体用例编辑实施示例见图3;
单表数据时间范围内数据缺失用例表:用例id、项目名称、提测版本、测试层名、测试表名、分区、可衡量数据量的字段名(如日期字段)、需要有数据的时间段、需要有数据天数、用例状态、用例创建时间、用例创建时间填写测试用例内容,具体用例编辑实施示例见图5;
步骤3:然后执行数据校验的内部逻辑流程,如图2所示。首先,读取用例表中的测试用例数据,并构造用于数据测试的SQL脚本,具体SQL内容分别如下:
数据更新及时性测试构造的测试SQL脚本示例:
单表数据时间范围内数据缺失测试构造的测试SQL脚本示例:
步骤4:然后按照用例id,循环执行每一条测试用例所构造的SQL,读取hive/PG的被测数据,得到实际测试的数据结果;
步骤5:在关键步骤打印日志;
步骤6:将实际数据结果与用例中配置的预期结果进行比较,得出测试结论,使用is_pass字段标识测试是否通过;
步骤7:存储测试结果:将测试结果存储在数据库中,is_pass为1表示测试通过,is_pass为0表示测试未通过;
步骤8:自动化测试用例jar上传到测试服务器,通过配置文件,配置仅执行重复行类型的测试类,并使用执行脚本进行执行:
执行过程中,查看关键步骤打印的日志。
步骤9:测试人员可在对应的校验类型结果表中查看测试结果。
图4和图6是使用本发明的自动化测试工具执行测试后,分别得到的数据更新及时性和单表数据缺失的测试结果表。其中is_pass为1,表示该条用例的测试结果为通过;is_pass为0,表示该条用例的测试结果为未通过。
本发明不仅局限于上述具体实施方式,本领域一般技术人员根据本发明公开的内容,可以采用其它多种具体实施方案实施本发明。因此,凡是采用本发明的设计结构和思路,做一些简单的变化或更改的设计,都落入本发明保护范围。
Claims (6)
1.一种数据缺失相关的数据异常值校验的自动化测试方法,其特征在于对可支持的校验类型的具体测试的实现方式包括如下步骤:
步骤1:在PG库中创建用例层及结果层,分别对应schema1和schema2,按测试类型创建测试用例表和用例结果表;
步骤2:用例层的配置测试用例数据,按测试类型,针对每一种测试类型均在对应的测试用例表中配置测试用例数据,测试用例数据的内容包含:用例id、项目名称、提测版本、测试层名、测试表名、分区、字段名、校验内容、预期结果、用例状态、创建时间;
步骤3:读取用例表中的测试用例数据,并构造用于测试的SQL脚本;
步骤4:根据用例id,循环执行每一条测试用例数据所构造的SQL脚本,读取HIVE/PG的被测数据,得到被测数据的实际测试数据结果;
步骤5:在关键步骤打印日志,关键步骤包括:
①执行时输入的参数校验;
②获取测试用例数据,并创建dataframe;
③循环执行所有测试用例,得到被测数据的实际数据结果;
④存储测试结果;
⑤执行成功提示;
步骤6:将实际测试数据结果与用例表中配置的预期结果进行比较,得出测试结果,使用is_pass字段(即用例结果表中的是否通过测试字段)标识测试是否通过;
步骤7:存储测试结果:将测试结果存储在用例结果表中,is_pass为1表示测试通过,is_pass为0表示测试未通过;
步骤8:测试人员可在对应的校验类型结果表中查看测试结果。
2.根据权利要求1所述的一种数据缺失相关的数据异常值校验的自动化测试方法,其特征在于可支持的校验类型包含如下:
类型1:对表数据增量进行测试,统计前7天数据量的均值,使用第8天的数据量与前7天的数据量做比较,计算增量比例:
增量比例=(第8天的数据量/前7天数据量均值)-1
用例设置理想比例范围作为预期结果;
类型2:数据更新及时性测试,通过在用例表中配置正确的日期与测试日期的差距,来校验表中的数据是否及时更新;
类型3:单表数据时间范围数据缺失测试,通过在用例表中配置需要在一定天数内有若干天数据,来校验被测表是否通过测试;
类型4:多表数据时间范围数据缺失校验,用于校验A表中的数据保留的数据量取决于配置表B中的日期配置,来验证被测表的数据量是否满足配置表的配置要求;
类型5:两表数据的包含关系校验,用于校验A表中的某些维度数据,必须来源于B表的对应维度,即B表维度数据大于等于A表。
3.根据权利要求1或2所述的一种数据缺失相关的数据异常值校验的自动化测试方法,其特征在于所述的测试用例数据的内容据测试类型的不同,其测试所需测试用例数据配置的字段及内容不同,具体如下:
类型1:数据增量测试类型
测试用例表字段包含:用例id、项目名称、提测版本、测试层名、测试表名、分区、待统计数据量字段名,增量合理上限比例,增量合理下限比例,用例状态,用例创建时间,用例创建时间,用例更新用户,用例更新时间;
用例结果表字段包含:项目名称,测试版本号,用例id、是否测试通过、前7天数据量均值、第8天数据量,增量比例,执行脚本case_ql等字段;其中用例id为该结果表的外键,对应数据增量测试用例表中的用例id字段;
类型2:数据更新及时性测试类型
测试用例表字段包含:用例id、项目名称、提测版本、测试层名、测试表名、分区、可衡量数据更新的字段名(如日期字段)、日期差距、用例状态、用例创建时间、用例创建时间、用例更新用户、用例更新时间等;
用例结果表字段包含:项目名称、测试版本号、用例id、是否测试通过、被测表时间有数据的最大日期、执行脚本case_ql等字段;其中用例id为该结果表的外键,对应数据增量测试用例表中的用例id字段
类型3:单表数据时间范围数据缺失测试类型
测试用例表字段包含:用例id、项目名称、提测版本、测试层名、测试表名、分区、可衡量数据量的字段名(如日期字段)、需要有数据的时间段、需要有数据天数、用例状态、用例创建时间、用例创建时间、用例更新用户、用例更新时间等;
用例结果表字段包含:项目名称、测试版本号、用例id、是否测试通过、实际存在数据天数、执行脚本case_ql等字段;其中用例id为该结果表的外键,对应数据增量测试用例表中的用例id字段
类型4:多表数据时间范围数据缺失测试类型
测试用例表字段包含:用例id、项目名称、提测版本、测试层名、测试表名、分区、可衡量数据量的被测字段名(如日期字段)、数据时间范围源表名、数据时间范围字段、字段取值类型(max/min)、用例状态、用例创建时间、用例创建时间、用例更新用户、用例更新时间等;
用例结果表字段包含:项目名称、测试版本号、用例id、是否测试通过、实际存在数据天数、执行脚本case_ql等字段;其中用例id为该结果表的外键,对应数据增量测试用例表中的用例id字段
类型5:两表数据的包含关系测试类型
测试用例表字段包含:用例id、项目名称、提测版本、测试层名、测试表名、分区、被测表关联字段名、对照表层名、对照表表名、对照表关联字段、通过条件字段、测试表where条件、对照表where条件、用例状态、用例创建时间、用例创建时间、用例更新用户、用例更新时间等;
用例结果表字段包含:项目名称,测试版本号,用例id、是否测试通过、目标表存在对照表以外的数据量、执行脚本case_ql等字段;其中用例id为该结果表的外键,对应数据增量测试用例表中的用例id字段。
4.根据权利要求1或2所述的一种数据缺失相关的数据异常值校验的自动化测试方法,其特征在于步骤3所述的构造用于测试的SQL脚本,根据测试类型不同,SQL脚本构造不同,具体如下:
类型1:数据增量测试,SQL脚本
其中SCHEMA_NAME为用例数据中测试层名内容,TABLE_NAME为用例数据中测试表名内容,LAST_7DAYS_AVG_ROWS_NUM为前7天平均增量,ROWS_NUM为第8天增量,DOC_DATE为待测试的日期,UNIQUE_KEYS为用例数据中测试表唯一键内容;如果(ROWS_NUM/LAST_7DAYS_AVG_ROWS_NUM-1)的增量比例值在预期上下限制之间,则测试通过;
类型2:数据更新及时性测试,SQL脚本:
SELECT MAX(FIELD_NAME)AS MAX_DATETIME
FROM SCHEMA_NAME.TABLE_NAME
其中SCHEMA_NAME为用例数据中测试层名内容,TABLE_NAME为用例数据中测试表名内容,FIELD_NAME为用例数据中可衡量数据更新的字段名的字段内容,如果查询出的结果大于0,则测试不通过;
类型3:单表数据时间范围数据缺失测试,SQL脚本:
SELECT COUNT(t.FIELD_NAME)AS fct_days
FROM(
SELECT FIELD_NAME
FROM SCHEMA_NAME.TABLE_NAME
WHERE FIELD_NAME<=Date
AND FIELD_NAME>=date_sub(Date,RANGE_DAGS)
GROUP BY FIELD_NAM)t
其中SCHEMA_NAME为用例数据中测试层名内容,TABLE_NAME为用例数据中测试表名内容,FIELD_NAME为用例数据表中可以用来衡量有多少天数据的字段名,RANGE_DAGS为用例数据中需要有数据的时间范围;如果查询出的实际天数大于等于需要存在的天数,则测试通过;
类型4:多表数据时间范围数据缺失测试,SQL脚本:
SELECT NEED_DAYS,FCT_DAYS
FROM(SELECT 1 AS ID,VALUE_TYPE(SOURCE_FIELD_NAME)AS NEED_DAYS
FROM SCHEMA_NAME.SOURCE_TABLE_NAME)T1
INNER JOIN(SELECT 1 AS ID,COUNT(T.FIELD_NAME)AS FCT_DAYS
FROM(SELCET FIELD_NAME
FROM SCHEMA_NAME.TABLE_NAME
GROUP BY FIELD_NAME)T)T2
ON T1.ID=T2.ID
其中SCHEMA_NAME为用例数据中测试层名内容,TABLE_NAME为用例数据中测试表名内容,SOURCE_TABLE_NAME为数据时间范围源表名称,FIELD_NAME为用例数据中被测字段名的内容,SOURCE_FIELD_NAME为用例表中数据时间范围字段内容;如果查询结果中的FCT_DAYS大于等于NEED_DAYS,则测试通过;
类型5:两表数据的包含关系测试,SQL脚本:
SELECT COUNT(*)AS RANGE_OUT_NUMS
FROM
(SELECT*FROM SCHEMA_NAME.TABLE_NAME
WHERE CONCAT_WHERE_UDF(CONDITION_WHERE_FIELD_VALUE),
)AS A
LEFT JOIN
(SELECT*FROM COMPARE_SCHEMA_NAME.COMPARE_TABLE_NAME
WHERE
CONCAT_WHERE_UDF(COMPARE_WHERE_CONDITION_FIELD_VALUE),
)AS B
CONCAT_ON_UDF(FIELD_NAME,COMPARE_FIELD_NAME,'A,B')
WHERE B.PASS_COMPARE_TABLE_CONDITION_FIELD IS NULL
其中SCHEMA_NAME为用例数据中测试层名内容,TABLE_NAME为用例数据中测试表名内容,COMPARE_SCHEMA_NAME为用例数据中对照表层名内容,COMPARE_TABLE_NAME为用例数据中对照表名内容,CONDITION_WHERE_FIELD_VALUE为用例数据中被测表where条件内容,COMPARE_WHERE_CONDITION_FIELD_VALUE字段为用例表中对照表where条件的内容FIELD_NAME为用例数据中被测表关联字段名内容,COMPARE_FIELD_NAME为对照表关联字段名,与测试的表关联字段名存储顺序一一对应的字段,PASS_COMPARE_TABLE_CONDITION_FIELD为用例数据中通过条件,即对照表的通过条件字段内容;如果查询结果为空,则测试通过;
CONCAT_ON_UDF为编写的自定义函数,用于拼接多个关联条件字段的ON条件;DATESAME_CONCAT_WHERE_UDF为编写的自定义函数,用于拼接判断多个被测字段与对比字段是否一一对应相等,例如WHERE A.FIELD1=B.FIELD11;
如果查询结果RANGE_OUT_NUMS大于0,则测试不通过。
5.根据权利要求4所述的一种数据缺失相关的数据异常值校验的自动化测试方法使用的工具,其特征在于包括5大模块:读取测试用例内容模块、构造测试SQL模块、循环执行测试SQL模块、结果对比模块、结果存储模块;
所述的读取测试用例内容模块,将测试用例表中已配置的测试用例内容读取到dataframe中;
所述的构造测试SQL模块,通过将读取测试用例内容模块得到的数据,按照测试用例内容,构造对应的测试SQL;
所述的循环执行测试SQL模块,根据用例id,循环执行构造测试SQL模块得到的测试SQL,查询被测表的数据内容;
所述的结果对比模块,将循环执行测试SQL模块得到的被测表数据内容,与测试用例内容中的预期结果做对比,如果一致则测试通过,不一致则测试不通过;
所述的结果存储模块,将结果对比模块得到的测试结果数据、用例id等信息,存储到PG数据库的测试结果表中。
6.根据权利要求5所述的一种数据缺失相关的数据异常值校验的自动化测试方法使用的工具,其特征在于该工具的批量执行方法及日志存储,具体如下:
执行方式1:通过shell脚本,批量执行某几种异常测试类型或全部异常测试类型;
执行方式2:通过使用附加自定义配置文件,在执行时读取自定义配置文件所配置的内容;自定义配置文件可支持执行指定校验类型的某一条或某几条测试用例;
执行方式3:通过读取PG库的测试结果,可支持仅执行上一次测试未通过的用例;
执行结束后日志存储在log文件中,用户可自行查看,能够显示共执行校验类型数量、执行成功的数量及执行失败的数量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010467323.7A CN111813652B (zh) | 2020-05-28 | 2020-05-28 | 一种数据缺失相关的数据异常值校验的自动化测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010467323.7A CN111813652B (zh) | 2020-05-28 | 2020-05-28 | 一种数据缺失相关的数据异常值校验的自动化测试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111813652A true CN111813652A (zh) | 2020-10-23 |
CN111813652B CN111813652B (zh) | 2023-07-04 |
Family
ID=72847807
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010467323.7A Active CN111813652B (zh) | 2020-05-28 | 2020-05-28 | 一种数据缺失相关的数据异常值校验的自动化测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111813652B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113360393A (zh) * | 2021-06-25 | 2021-09-07 | 武汉众邦银行股份有限公司 | 一种基于生产环境流量监控的持续验证方法及装置 |
CN113377751A (zh) * | 2021-06-02 | 2021-09-10 | 浪潮软件股份有限公司 | 一种集成数据比对方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6061643A (en) * | 1998-07-07 | 2000-05-09 | Tenfold Corporation | Method for defining durable data for regression testing |
US20050160322A1 (en) * | 2004-01-13 | 2005-07-21 | West John R. | Method and system for conversion of automation test scripts into abstract test case representation with persistence |
CN102662846A (zh) * | 2012-04-24 | 2012-09-12 | 广东欧珀移动通信有限公司 | 一种自动化工具与测试用例结合的测试方法 |
CN109614313A (zh) * | 2018-10-25 | 2019-04-12 | 平安科技(深圳)有限公司 | 自动化测试方法、装置及计算机可读存储介质 |
CN109885488A (zh) * | 2019-01-30 | 2019-06-14 | 上海卫星工程研究所 | 用例表驱动的卫星轨道计算软件自动化测试方法及系统 |
-
2020
- 2020-05-28 CN CN202010467323.7A patent/CN111813652B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6061643A (en) * | 1998-07-07 | 2000-05-09 | Tenfold Corporation | Method for defining durable data for regression testing |
US20050160322A1 (en) * | 2004-01-13 | 2005-07-21 | West John R. | Method and system for conversion of automation test scripts into abstract test case representation with persistence |
CN102662846A (zh) * | 2012-04-24 | 2012-09-12 | 广东欧珀移动通信有限公司 | 一种自动化工具与测试用例结合的测试方法 |
CN109614313A (zh) * | 2018-10-25 | 2019-04-12 | 平安科技(深圳)有限公司 | 自动化测试方法、装置及计算机可读存储介质 |
CN109885488A (zh) * | 2019-01-30 | 2019-06-14 | 上海卫星工程研究所 | 用例表驱动的卫星轨道计算软件自动化测试方法及系统 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113377751A (zh) * | 2021-06-02 | 2021-09-10 | 浪潮软件股份有限公司 | 一种集成数据比对方法 |
CN113360393A (zh) * | 2021-06-25 | 2021-09-07 | 武汉众邦银行股份有限公司 | 一种基于生产环境流量监控的持续验证方法及装置 |
CN113360393B (zh) * | 2021-06-25 | 2022-04-12 | 武汉众邦银行股份有限公司 | 一种基于生产环境流量监控的持续验证方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111813652B (zh) | 2023-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108897687B (zh) | 一种基于数据驱动的api自动化测试方法和系统 | |
US8386419B2 (en) | Data extraction and testing method and system | |
US20090150447A1 (en) | Data warehouse test automation framework | |
CN107665171B (zh) | 自动回归测试方法及装置 | |
CN111813653B (zh) | 一种字段内容相关的数据异常测试方法及自动化测试工具 | |
CN111813651A (zh) | 一种整表结构相关的数据异常测试方法及自动化测试工具 | |
CN109189479B (zh) | 一种用于处理器指令集的并行自动化验证方法 | |
CN112148509A (zh) | 数据处理方法、装置、服务器及计算机可读存储介质 | |
CN111813652A (zh) | 一种数据缺失相关的数据异常值校验的自动化测试方法 | |
CN105138461A (zh) | 一种应用程序的接口测试方法及装置 | |
CN111291990B (zh) | 一种质量监控处理方法及装置 | |
CN112364024B (zh) | 一种表数据批量自动比对的控制方法及装置 | |
CN102981946B (zh) | Etl冒烟测试方法 | |
CN115097376B (zh) | 计量设备的校验数据的处理方法、装置和计算机设备 | |
CN112307124A (zh) | 数据库同步验证方法、装置、设备及存储介质 | |
CN114996127A (zh) | 固态硬盘固件模块智能化测试方法及系统 | |
CN111427787B (zh) | 一种异构数据库业务数据同步测试方法 | |
CN111459916B (zh) | Gbase和oracle数据库表比对的方法及系统 | |
CN113220726A (zh) | 一种数据质量检测方法及系统 | |
CN112416782A (zh) | 测试结果的验证方法、装置和电子设备 | |
Sneed | Testing a datawarehouse-an industrial challenge | |
CN111061632B (zh) | 用于报表数据的自动化测试方法和测试系统 | |
CN112100066B (zh) | 一种数据指标准确性的校验方法及自动化测试工具 | |
Schüle et al. | Blue Elephants Inspecting Pandas | |
Thomsen et al. | ETLDiff: a semi-automatic framework for regression test of ETL software |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |