CN111427787A - 一种异构数据库业务数据同步测试方法 - Google Patents
一种异构数据库业务数据同步测试方法 Download PDFInfo
- Publication number
- CN111427787A CN111427787A CN202010222235.0A CN202010222235A CN111427787A CN 111427787 A CN111427787 A CN 111427787A CN 202010222235 A CN202010222235 A CN 202010222235A CN 111427787 A CN111427787 A CN 111427787A
- Authority
- CN
- China
- Prior art keywords
- data
- sql
- compared
- sourcedb
- targetdb
- 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/3664—Environments for testing or debugging software
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种异构数据库业务数据同步测试方法。它具体包括如下步骤:jenkins新建job配置maven构建命令以及执行testng用例配置路径和生成allure报告路径;实例化用例模型生成测试用例对象,根据用例对象的数据库连接配置构建待比较数据库sourceDB、targetDb的连接会话sqlsession;将基础sql语句和条件占位符组合出所有待比较sourceDB和targetDB数据要执行最终sql集合;使用连接会话sqlsession分页执行sourceDB和targetDB最终sql语句,返回数据按照Map类型K‑V形式保存;按照页码遍历返回sourceDB和targetDB待比较数据;循环执行待比较sql返回的比较数据;allure报告展示比较结果。本发明的有益效果是:提高数据对比速度和对比准确度,验证同步脚本正确性,验证数据是否同步成功。
Description
技术领域
本发明涉及数据库处理相关技术领域,尤其是指一种异构数据库业务数据同步测试方法。
背景技术
针对异构数据库业务数据同步需要验证数据同步是否正确,是否存在缺数据、多数据、字段值不符合预期等情况,以前采取人工执行业务sql,随机抽查对比数据,这种人工测试方式存在以下弊端:速度慢;出错率高;无法检查全部数据。
发明内容
本发明是为了克服现有技术中存在上述的不足,提供了一种提高对比速度和对比准确度的异构数据库业务数据同步测试方法。
为了实现上述目的,本发明采用以下技术方案:
一种异构数据库业务数据同步测试方法,基于Mybatis持久层框架,执行动态sql查询语句,然后比较返回数据的条数、顺序、指定字段值是否相等,判断数据是否一致,具体包括如下步骤:
(1)jenkins新建job配置maven构建命令以及执行testng用例配置路径和生成allure报告路径;
(2)实例化用例模型生成测试用例对象,根据用例对象的数据库连接配置构建待比较数据库sourceDB、targetDb的连接会话sqlsession;
(3)将基础sql语句和条件占位符组合出所有待比较sourceDB和targetDB数据要执行最终sql集合;
(4)使用步骤(2)创建的数据库连接会话sqlsession分页执行sourceDB和targetDB最终sql语句,返回数据按照Map类型K-V形式保存,K代表页码,V代表该页码的数据;
(5)按照页码遍历返回sourceDB和targetDB待比较数据,每页数据比较指定字段的值是否相等;
(6)循环执行下一组待比较sql返回的比较数据,循环次数是步骤(3)计算得到的所有条件组合sql集合情况;
(7)步骤(6)执行完毕所有待比较sql执行结果,则关闭步骤(2)中创建的数据库连接会话sqlsession;
(8)allure报告展示比较结果,采用allure的附件形式展示异常数据,从而避免数据量大报告解析失败情况发生。
为了解决人工抽查对比数据方式带来的弊端,提高数据对比速度和对比准确度,提供对异构数据库在需要做数据同步时的自动化测试框架能力,仅需要开发根据框架规范,通过配置sourceDB,targetDB的数据查询条件、对比模式、监控字段,即可完成同步数据的自动化测试,开发既可以在测试环境验证同步脚本正确性,又可以在线上验证数据是否同步成功。
作为优选,在步骤(2)中,组合sql集合的方法如下:
(21)基础sql语句中查询条件值不固定使用占位符;
(22)使用递归算法算出所有条件组合情况;
(23)替换基础sql语句中占位符,构造出所有最终执行比较数据的sql语句。
作为优选,在步骤(5)中,每页数据比较指定字段的值如果不相等,则分类保存异常类别:字段值不相等、多数据、少数据、字段值为null;因为sql查询条件已存在排序,所以比较查询数据已经排序。
作为优选,在步骤(8)中,相关人员根据allure报告异常描述中异常数据序号和查询sql,快速在数据库定位到异常数据。
本发明的有益效果是:解决人工抽查对比数据方式带来的弊端,提高数据对比速度和对比准确度,既可以在测试环境验证同步脚本正确性,又可以在线上验证数据是否同步成功。
附图说明
图1是本发明的方法流程图;
图2是实例化用例模型的编码图;
图3是allure报告图;
图4是jenkins新建job图;
图5是allure报告查询图。
具体实施方式
下面结合附图和具体实施方式对本发明做进一步的描述。
如图1所述的实施例中,一种异构数据库业务数据同步测试方法,基于Mybatis持久层框架,执行动态sql查询语句,然后比较返回数据的条数、顺序、指定字段值是否相等,判断数据是否一致,具体包括如下步骤:
(1)jenkins新建job配置maven构建命令以及执行testng用例配置路径和生成allure报告路径,如图4所示;
(2)实例化用例模型(如图2所示)生成测试用例对象,根据用例对象的数据库连接配置构建待比较数据库sourceDB、targetDb的连接会话sqlsession;组合sql集合的方法如下:
(21)基础sql语句中查询条件值不固定使用占位符,格式:#{condition};
(22)使用递归算法算出所有条件组合情况;
举例:sql中查询条件coutrycode和productid的值不固定;countrycode枚举值CN,US;productId枚举值2,3;那么组合情况有4种,分别是
countrycode=CN、productId=2;
countrycode=CN、productId=3;
countrycode=US、productId=2;
countrycode=US、productId=3。
(23)替换基础sql语句中占位符,构造出所有最终执行比较数据的sql语句。
(3)将基础sql语句和条件占位符组合出所有待比较sourceDB和targetDB数据要执行最终sql集合;
(4)使用步骤(2)创建的数据库连接会话sqlsession分页执行sourceDB和targetDB最终sql语句,返回数据按照Map类型K-V形式保存,K代表页码,V代表该页码的数据;
(5)按照页码遍历返回sourceDB和targetDB待比较数据,每页数据比较指定字段的值是否相等;每页数据比较指定字段的值如果不相等,则分类保存异常类别:字段值不相等、多数据、少数据、字段值为null;因为sql查询条件已存在排序,所以比较查询数据已经排序。
(6)循环执行下一组待比较sql返回的比较数据,循环次数是步骤(3)计算得到的所有条件组合sql集合情况;
(7)步骤(6)执行完毕所有待比较sql执行结果,则关闭步骤(2)中创建的数据库连接会话sqlsession;
(8)allure报告展示比较结果,采用allure的附件形式展示异常数据,从而避免数据量大报告解析失败情况发生,如图3所示。相关人员根据allure报告异常描述中异常数据序号和查询sql(如图5所示),快速在数据库定位到异常数据(具体方式:查询sql limit序号,1)。
本方法中用到的工具链有testng、maven、mybatis、allure、jenkins;其中,Testng:用于驱动测试用例执行;Maven:对Java项目进行构建、依赖管理;Mybatis:持久层框架,可以使用简单的XML或注解来配置和映射原生信息,将接口和Java对象映射成数据库中的记录;Allure:一种灵活的轻量级多语言测试报告工具,能够以简洁的web报告形式显示测试结果;Jenkins:用于持续、自动的构建/测试软件项目、监控外部任务的运行。为了解决人工抽查对比数据方式带来的弊端,提高数据对比速度和对比准确度,提供对异构数据库在需要做数据同步时的自动化测试框架能力,仅需要开发根据框架规范,通过配置sourceDB,targetDB的数据查询条件、对比模式、监控字段,即可完成同步数据的自动化测试,开发既可以在测试环境验证同步脚本正确性,又可以在线上验证数据是否同步成功。
Claims (4)
1.一种异构数据库业务数据同步测试方法,其特征是,基于Mybatis持久层框架,执行动态sql查询语句,然后比较返回数据的条数、顺序、指定字段值是否相等,判断数据是否一致,具体包括如下步骤:
(1)jenkins新建job配置maven构建命令以及执行testng用例配置路径和生成allure报告路径;
(2)实例化用例模型生成测试用例对象,根据用例对象的数据库连接配置构建待比较数据库sourceDB、targetDb的连接会话sqlsession;
(3)将基础sql语句和条件占位符组合出所有待比较sourceDB和targetDB数据要执行最终sql集合;
(4)使用步骤(2)创建的数据库连接会话sqlsession分页执行sourceDB和targetDB最终sql语句,返回数据按照Map类型K-V形式保存,K代表页码,V代表该页码的数据;
(5)按照页码遍历返回sourceDB和targetDB待比较数据,每页数据比较指定字段的值是否相等;
(6)循环执行下一组待比较sql返回的比较数据,循环次数是步骤(3)计算得到的所有条件组合sql集合情况;
(7)步骤(6)执行完毕所有待比较sql执行结果,则关闭步骤(2)中创建的数据库连接会话sqlsession;
(8)allure报告展示比较结果,采用allure的附件形式展示异常数据,从而避免数据量大报告解析失败情况发生。
2.根据权利要求1所述的一种异构数据库业务数据同步测试方法,其特征是,在步骤(2)中,组合sql集合的方法如下:
(21)基础sql语句中查询条件值不固定使用占位符;
(22)使用递归算法算出所有条件组合情况;
(23)替换基础sql语句中占位符,构造出所有最终执行比较数据的sql语句。
3.根据权利要求1所述的一种异构数据库业务数据同步测试方法,其特征是,在步骤(5)中,每页数据比较指定字段的值如果不相等,则分类保存异常类别:字段值不相等、多数据、少数据、字段值为null;因为sql查询条件已存在排序,所以比较查询数据已经排序。
4.根据权利要求1所述的一种异构数据库业务数据同步测试方法,其特征是,在步骤(8)中,相关人员根据allure报告异常描述中异常数据序号和查询sql,快速在数据库定位到异常数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010222235.0A CN111427787B (zh) | 2020-03-26 | 2020-03-26 | 一种异构数据库业务数据同步测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010222235.0A CN111427787B (zh) | 2020-03-26 | 2020-03-26 | 一种异构数据库业务数据同步测试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111427787A true CN111427787A (zh) | 2020-07-17 |
CN111427787B CN111427787B (zh) | 2023-05-30 |
Family
ID=71555718
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010222235.0A Active CN111427787B (zh) | 2020-03-26 | 2020-03-26 | 一种异构数据库业务数据同步测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111427787B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112948338A (zh) * | 2021-03-05 | 2021-06-11 | 浪潮云信息技术股份公司 | 在国产化数据库运行政务数据共享交换平台的方法及工具 |
CN113495890A (zh) * | 2021-07-08 | 2021-10-12 | 上海二三四五网络科技有限公司 | 一种批量异构数据源自动比对系统、方法及设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107346314A (zh) * | 2016-05-06 | 2017-11-14 | 银联国际有限公司 | 一种数据库单向同步方法 |
CN109101627A (zh) * | 2018-08-14 | 2018-12-28 | 交通银行股份有限公司 | 异构数据库同步方法及装置 |
CN109408381A (zh) * | 2018-10-10 | 2019-03-01 | 四川新网银行股份有限公司 | 一种基于数据校验模板的产品数据自动校验平台及方法 |
CN109614315A (zh) * | 2018-11-06 | 2019-04-12 | 武汉达梦数据库有限公司 | 一种数据同步测试用例的自动生成方法及系统 |
US20190197174A1 (en) * | 2017-12-22 | 2019-06-27 | Warevalley Co., Ltd. | Method and system for replicating data to heterogeneous database and detecting synchronization error of heterogeneous database through sql packet analysis |
CN110221982A (zh) * | 2019-06-17 | 2019-09-10 | 深圳前海微众银行股份有限公司 | 业务系统的性能测试方法、装置、设备及可读存储介质 |
CN110704475A (zh) * | 2019-09-29 | 2020-01-17 | 中国银行股份有限公司 | 一种etl加载表结构的比对方法及系统 |
-
2020
- 2020-03-26 CN CN202010222235.0A patent/CN111427787B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107346314A (zh) * | 2016-05-06 | 2017-11-14 | 银联国际有限公司 | 一种数据库单向同步方法 |
US20190197174A1 (en) * | 2017-12-22 | 2019-06-27 | Warevalley Co., Ltd. | Method and system for replicating data to heterogeneous database and detecting synchronization error of heterogeneous database through sql packet analysis |
CN109101627A (zh) * | 2018-08-14 | 2018-12-28 | 交通银行股份有限公司 | 异构数据库同步方法及装置 |
CN109408381A (zh) * | 2018-10-10 | 2019-03-01 | 四川新网银行股份有限公司 | 一种基于数据校验模板的产品数据自动校验平台及方法 |
CN109614315A (zh) * | 2018-11-06 | 2019-04-12 | 武汉达梦数据库有限公司 | 一种数据同步测试用例的自动生成方法及系统 |
CN110221982A (zh) * | 2019-06-17 | 2019-09-10 | 深圳前海微众银行股份有限公司 | 业务系统的性能测试方法、装置、设备及可读存储介质 |
CN110704475A (zh) * | 2019-09-29 | 2020-01-17 | 中国银行股份有限公司 | 一种etl加载表结构的比对方法及系统 |
Non-Patent Citations (1)
Title |
---|
王光强: "基于双写环境的自动化测试工具性能优化研究" * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112948338A (zh) * | 2021-03-05 | 2021-06-11 | 浪潮云信息技术股份公司 | 在国产化数据库运行政务数据共享交换平台的方法及工具 |
CN112948338B (zh) * | 2021-03-05 | 2023-04-14 | 浪潮云信息技术股份公司 | 在国产化数据库运行政务数据共享交换平台的方法及工具 |
CN113495890A (zh) * | 2021-07-08 | 2021-10-12 | 上海二三四五网络科技有限公司 | 一种批量异构数据源自动比对系统、方法及设备 |
CN113495890B (zh) * | 2021-07-08 | 2024-05-14 | 上海二三四五网络科技有限公司 | 一种批量异构数据源自动比对系统、方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111427787B (zh) | 2023-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11675691B2 (en) | System and method for performing automated API tests | |
CN110232024B (zh) | 软件自动化测试框架及测试方法 | |
EP3513314B1 (en) | System for analysing data relationships to support query execution | |
CN109947746B (zh) | 一种基于etl流程的数据质量管控方法和系统 | |
WO2016090929A1 (zh) | 软件系统故障诊断方法、服务器及系统 | |
CN111125444A (zh) | 大数据任务调度管理方法、装置、设备及存储介质 | |
CN109902084B (zh) | 一种全自动检测与分析数据质量的系统及方法 | |
CN111427787A (zh) | 一种异构数据库业务数据同步测试方法 | |
WO2022062185A1 (zh) | 告警信息推送方法、系统、智能终端及存储介质 | |
CN113360722B (zh) | 一种基于多维数据图谱的故障根因定位方法及系统 | |
CN111309581B (zh) | 一种数据库升级场景下的应用性能检测方法及装置 | |
CN106445618A (zh) | 一种数据库自动升级方法 | |
CN111813653B (zh) | 一种字段内容相关的数据异常测试方法及自动化测试工具 | |
CN111736865A (zh) | 一种数据库升级方法及系统 | |
CN114757142A (zh) | 自纠错芯片验证方法、装置、设备及计算机可读介质 | |
CN117951128A (zh) | 一种基于人工智能的数据质量稽查方法 | |
CN112598142B (zh) | 一种风电机组检修工作质量审查辅助方法与系统 | |
CN109582286A (zh) | 基于Freemarker技术的数据规范性校验方法及其装置 | |
CN111984662A (zh) | 批量更新数据库的方法及装置 | |
CN116860781A (zh) | 数据校验方法、装置、终端设备以及存储介质 | |
CN112347120A (zh) | 一种基于复杂sql的自动优化方法和装置 | |
CN116627609A (zh) | 基于Hive批处理的调度方法及装置 | |
CN116185996A (zh) | 一种批量调度的校验方法及装置 | |
CN116089446A (zh) | 一种结构化查询语句的优化控制方法及装置 | |
CN112560290A (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 | ||
CB02 | Change of applicant information |
Address after: 22nd floor, block a, Huaxing Times Square, 478 Wensan Road, Xihu District, Hangzhou, Zhejiang 310000 Applicant after: Hangzhou Xiaoying Innovation Technology Co.,Ltd. Address before: 16 / F, HANGGANG Metallurgical Science and technology building, 294 Tianmushan Road, Xihu District, Hangzhou City, Zhejiang Province, 310012 Applicant before: HANGZHOU QUWEI SCIENCE & TECHNOLOGY Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |