CN109101423A - 一种基于服务端日志回放的自动化测试方法 - Google Patents
一种基于服务端日志回放的自动化测试方法 Download PDFInfo
- Publication number
- CN109101423A CN109101423A CN201810878966.3A CN201810878966A CN109101423A CN 109101423 A CN109101423 A CN 109101423A CN 201810878966 A CN201810878966 A CN 201810878966A CN 109101423 A CN109101423 A CN 109101423A
- Authority
- CN
- China
- Prior art keywords
- playback
- data
- legacy system
- interface
- log
- 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
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
Abstract
本发明涉及一种基于服务端日志回放的自动化测试方法,包括:S1、同步新老系统的数据库;S2、确认回放环境是否符合预期;S3、获取回放时间点的线上日志数据;S4、过滤日志,并且提取有用信息将其转换为可执行接口;S5、回放可执行接口:如果新老系统返回结果不一致,暂停S5,确认修复后,重新执行S5;S6、回放完一天数据,切换日期时间;S7、从S3开始,变更日期,继续执行。本发明通过线上日志回放的测试方法,将线上的日志同时转化成新老系统都可以执行的接口数据,解决测试环境数据场景覆盖的局限性,用真实的流量在测试环境对系统进行测试,不仅可以达到自动化的测试效果,还可以提供真实的数据对这个系统进行验证。
Description
技术领域
本发明涉及一种基于服务端日志回放的自动化测试方法。
背景技术
当前,互联网的业务和技术演进速度非常迅速,这个过程,一些系统随着业务的发展,经常会触碰到了业务发展的瓶颈,因此需要对系统进行重构。通常,为了避免系统重构对依赖该系统的业务的影响,重构系统会兼容原有的业务实现。而在技术架构上,新系统和老系统会存在较大的区别,比如新系统的数据库结构和老系统的数据库结构是有较大差别,新系统的接口和老系统的接口也会存在较大的差别。因此,系统重构对于质量保障人员来说,通常都是一个比较大的挑战。通过全量case回归虽然可以防止一定的风险,但由于覆盖的场景不足,通常会时重构系统面临较大的风险。
现有技术方案主要是通过手工方式,从前端来进行验证。通过手工方式进行全量回归,一方面人力投入较大,更重要的是因为人工全量用例还是存在一定的局限性,不能很好的验证新系统和老系统对外的一致性,会使项目上线存在较大的风险。而线上的日志却可以完整的模拟真实的业务场景,使用真实的业务流对新系统进行测试,可对业务场景的覆盖率有着可靠的保障。
发明内容
为了解决上述的技术问题,本发明的目的是提供一种基于服务端日志回放的自动化测试方法,该方法有效的保障新老系统对外表现的一致性和对内的数据一致性。
为了实现上述目的,本发明采用了以下的技术方案:
一种基于服务端日志回放的自动化测试方法,包括:
S1、同步新老系统的数据库;
S2、确认回放环境是否符合预期;
S3、获取回放时间点的线上日志数据;
S4、过滤日志无效信息,并且提取有用信息将其转换为可执行接口;
S5、回放可执行接口:如果新老系统返回结果不一致,暂停S5,确认修复后,重新执行S5;
S6、回放完一天数据,切换日期时间;
S7、从S3开始,变更日期,继续执行。
作为优选方案:所述S1在回放环境中发生,且在S1之前需要选定日期,将生产环境中的老系统数据库备份至回放环境中的老系统数据库中。
作为优选方案:所述S2中需要分别对老系统以及新系统的兼容性进行测试。
作为优选方案:所述S4中按时间顺序使用常用脚本语从日志文件中读取每一行日志,然后根据关键字解析待回放接口的接口名、接口入参数据,然后将这些信息转换成可执行的接口数据,存储到接口数据流库中,待回放使用。
作为优选方案:所述S1中待新老系统的数据库同步完成后采用数据迁移工具,将回放环境中的老系统数据库表数据转换并填充到新系统数据库中;数据迁移工具的设计需注意原老系统数据库中auto increment字段数据应原样导入保持一致。
作为优选方案:所述S1中同时要备份回放前新老系统数据库中的业务数据;当业务数据需要再次回放或因回放导致错误需要回滚到回放前状态。
本发明的方法通过线上日志回放的测试方法,可以将线上的日志同时转化成新老系统都可以执行的接口数据,解决测试环境数据场景覆盖的局限性,用真实的流量在测试环境对系统进行测试,不仅可以达到自动化的测试效果,还可以提供真实的数据对这个系统进行验证。本发明的方法可以保障系统重构后,新老系统内部数据的一致性以及对外表现的一致性,保障对依赖该系统的服务没有任何影响。
附图说明
图1是本发明的架构框图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
本申请中老系统是指因业务发展遇到技术瓶颈,待重构的系统,包含接口服务和数据库等部分;新系统是指用来替换老系统的系统,以解决技术瓶颈,包含接口服务和数据库等部分。本申请中日志俗称log,用于记录服务运行情况的文本日志;本申请中回放指将日志按某种时间规则进行提取、解析、转换成服务接口,然后调用对应服务的手段。
如图1所示的一种基于服务端日志回放的自动化测试方法,其特征在于,包括:
S1、同步新老系统的数据库;该过程中需要特殊环境的隔离,即回放环境只有部分具有权限的员工才能操作,避免数据安全问题。
S2、确认回放环境是否符合预期;
S3、获取回放时间点的线上日志数据;
S4、过滤日志无效信息,并且提取有用信息将其转换为可执行接口;
S5、回放可执行接口:如果新老系统返回结果不一致,暂停S5,确认修复后,重新执行S5;
S6、回放完一天数据,切换日期时间;(这里按天来回放);
S7、从S3开始,变更日期,继续执行。
所述S1在回放环境中发生,且在S1之前需要选定日期,将生产环境中的老系统数据库备份至回放环境中的老系统数据库中。一般可以让dba每天备份一次数据库,以满足数据的需求。
所述S2中需要分别对老系统以及新系统的兼容性进行测试。
所述S4中按时间顺序使用常用脚本语从日志文件中读取每一行日志,然后根据关键字解析待回放接口的接口名、接口入参数据,然后将这些信息转换成可执行的接口数据,存储到接口数据流库中,待回放使用。
所述S1中待新老系统的数据库同步完成后采用数据迁移工具,将回放环境中的老系统数据库表数据转换并填充到新系统数据库中;数据迁移工具的设计需注意原老系统数据库中auto increment字段数据应原样导入保持一致。
所述S1中同时要备份回放前新老系统数据库中的业务数据;当业务数据需要再次回放或因回放导致错误需要回滚到回放前状态。
本申请中日志的采集:目前IT行业内已经有比较完善的日志采集方案和技术,通过一种方案将服务端日志采集并存储到存储系统中即可。
本申请中日志的解析:确定日志回放业务流的时间点,从这个时间点开始获取到日志数据,使用常用脚本语从日志文件中读取每一行日志,然后根据关键字解析待回放接口的接口名、接口入参数据(业界的日志规范一般都会将接口的入参信息打印到日志文件中,以便更好的进行问题定位),然后将这些信息转换成可执行的接口数据,存储到接口数据流库中,待回放使用。这里需要注意的是,需要按时间顺序解析接口参数并入库。
本申请中数据同步:确定日志回放业务流的时间点,同步该时间点前线上老系统数据库的业务数据到线下老系统数据库中;待同步完成后线下采用数据迁移工具,将线下系统数据库表数据转换并填充到新系统数据库中;数据迁移工具(一般作为重构系统的一部分)的设计需注意原老系统数据库中auto increment字段数据应原样导入保持一致。
同时要备份回放前新老系统数据库中的业务数据;当业务数据需要再次回放或因回放导致错误需要回滚到回放前状态。
本申请中日志回放:从数据流的库表中获取到可执行接口,起两个线程分表发送给新老系统,并对新老系统的返回结果进行比较,如果一致则继续执行,如果不一致,则停止回放。通知开发排查问题,解决不一致的问题后,重新开始回放。这里需要注意的是,由于用户数据是有状态的,所以需要单线程按顺序发送请求。
应当指出,以上实施例仅是本发明的代表性例子。本发明还可以有许多变形。凡是依据本发明的实质对以上实施例所作的任何简单修改、等同变化与修饰,均应认为属于本发明的保护范围。
Claims (6)
1.一种基于服务端日志回放的自动化测试方法,其特征在于,包括:
S1、同步新老系统的数据库;
S2、确认回放环境是否符合预期;
S3、获取回放时间点的线上日志数据;
S4、过滤日志无效信息,并且提取有用信息将其转换为可执行接口;
S5、回放可执行接口:如果新老系统返回结果不一致,暂停S5,确认修复后,重新执行S5;
S6、回放完一天数据,切换日期时间;
S7、从S3开始,变更日期,继续执行。
2.根据权利要求1所述的一种基于服务端日志回放的自动化测试方法,其特征在于:所述S1在回放环境中发生,且在S1之前需要选定日期,将生产环境中的老系统数据库备份至回放环境中的老系统数据库中。
3.根据权利要求1所述的一种基于服务端日志回放的自动化测试方法,其特征在于:所述S2中需要分别对老系统以及新系统的兼容性进行测试。
4.根据权利要求1所述的一种基于服务端日志回放的自动化测试方法,其特征在于:所述S4中按时间顺序使用常用脚本语从日志文件中读取每一行日志,然后根据关键字解析待回放接口的接口名、接口入参数据,然后将这些信息转换成可执行的接口数据,存储到接口数据流库中,待回放使用。
5.根据权利要求1所述的一种基于服务端日志回放的自动化测试方法,其特征在于:所述S1中待新老系统的数据库同步完成后采用数据迁移工具,将回放环境中的老系统数据库表数据转换并填充到新系统数据库中;数据迁移工具的设计需注意原老系统数据库中autoincrement字段数据应原样导入保持一致。
6.根据权利要求1所述的一种基于服务端日志回放的自动化测试方法,其特征在于:所述S1中同时要备份回放前新老系统数据库中的业务数据;当业务数据需要再次回放或因回放导致错误需要回滚到回放前状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810878966.3A CN109101423A (zh) | 2018-08-03 | 2018-08-03 | 一种基于服务端日志回放的自动化测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810878966.3A CN109101423A (zh) | 2018-08-03 | 2018-08-03 | 一种基于服务端日志回放的自动化测试方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109101423A true CN109101423A (zh) | 2018-12-28 |
Family
ID=64848469
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810878966.3A Pending CN109101423A (zh) | 2018-08-03 | 2018-08-03 | 一种基于服务端日志回放的自动化测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109101423A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109831357A (zh) * | 2019-01-30 | 2019-05-31 | 北京大米科技有限公司 | 一种服务验证方法、装置、存储介质及服务器 |
CN110798449A (zh) * | 2019-09-25 | 2020-02-14 | 苏州云控车路科技有限公司 | 智能网联汽车云控系统测试方法 |
CN111858506A (zh) * | 2020-06-30 | 2020-10-30 | 北京百度网讯科技有限公司 | 测试数据的处理方法、装置、电子设备及存储介质 |
CN112988552A (zh) * | 2019-12-12 | 2021-06-18 | 腾讯科技(深圳)有限公司 | 应用程序测试方法、装置、设备及存储介质 |
CN113220666A (zh) * | 2021-05-24 | 2021-08-06 | 中国工商银行股份有限公司 | 数据库迁移后批量处理日志回放方法、装置及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101882105A (zh) * | 2010-06-01 | 2010-11-10 | 华南理工大学 | 一种测试Web网页并发环境下响应时间的方法 |
CN105119762A (zh) * | 2015-09-23 | 2015-12-02 | 普元信息技术股份有限公司 | 云平台基于日志实现交易回放和重做的系统及方法 |
CN105183581A (zh) * | 2015-07-23 | 2015-12-23 | 深圳市沃信科技有限公司 | 一种数据库容灾系统 |
US9836388B1 (en) * | 2013-09-26 | 2017-12-05 | Amazon Technologies, Inc. | Software testing environment that includes a duplicating proxy service |
CN108304309A (zh) * | 2018-02-24 | 2018-07-20 | 中国农业银行股份有限公司 | 一种自动化对比测试数据的方法及装置 |
-
2018
- 2018-08-03 CN CN201810878966.3A patent/CN109101423A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101882105A (zh) * | 2010-06-01 | 2010-11-10 | 华南理工大学 | 一种测试Web网页并发环境下响应时间的方法 |
US9836388B1 (en) * | 2013-09-26 | 2017-12-05 | Amazon Technologies, Inc. | Software testing environment that includes a duplicating proxy service |
CN105183581A (zh) * | 2015-07-23 | 2015-12-23 | 深圳市沃信科技有限公司 | 一种数据库容灾系统 |
CN105119762A (zh) * | 2015-09-23 | 2015-12-02 | 普元信息技术股份有限公司 | 云平台基于日志实现交易回放和重做的系统及方法 |
CN108304309A (zh) * | 2018-02-24 | 2018-07-20 | 中国农业银行股份有限公司 | 一种自动化对比测试数据的方法及装置 |
Non-Patent Citations (1)
Title |
---|
曾立环: ""生产原型交易回放测试设计及实践"", 《中国金融电脑》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109831357A (zh) * | 2019-01-30 | 2019-05-31 | 北京大米科技有限公司 | 一种服务验证方法、装置、存储介质及服务器 |
CN110798449A (zh) * | 2019-09-25 | 2020-02-14 | 苏州云控车路科技有限公司 | 智能网联汽车云控系统测试方法 |
CN110798449B (zh) * | 2019-09-25 | 2021-10-26 | 苏州云控车路科技有限公司 | 智能网联汽车云控系统测试方法 |
CN112988552A (zh) * | 2019-12-12 | 2021-06-18 | 腾讯科技(深圳)有限公司 | 应用程序测试方法、装置、设备及存储介质 |
CN112988552B (zh) * | 2019-12-12 | 2023-06-30 | 腾讯科技(深圳)有限公司 | 应用程序测试方法、装置、设备及存储介质 |
CN111858506A (zh) * | 2020-06-30 | 2020-10-30 | 北京百度网讯科技有限公司 | 测试数据的处理方法、装置、电子设备及存储介质 |
CN111858506B (zh) * | 2020-06-30 | 2024-03-22 | 北京百度网讯科技有限公司 | 测试数据的处理方法、装置、电子设备及存储介质 |
CN113220666A (zh) * | 2021-05-24 | 2021-08-06 | 中国工商银行股份有限公司 | 数据库迁移后批量处理日志回放方法、装置及系统 |
CN113220666B (zh) * | 2021-05-24 | 2024-03-08 | 中国工商银行股份有限公司 | 数据库迁移后批量处理日志回放方法、装置及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109101423A (zh) | 一种基于服务端日志回放的自动化测试方法 | |
CN109933632B (zh) | 一种数据库的数据迁移方法、装置及设备 | |
CN103617176B (zh) | 一种实现多源异构数据资源自动同步的方法 | |
US9984140B1 (en) | Lease based leader election system | |
CN110209726A (zh) | 分布式数据库集群系统、数据同步方法及存储介质 | |
CN105786998B (zh) | 数据库中间件系统及利用其处理数据的方法 | |
CN105868343B (zh) | 数据库迁移方法及系统 | |
CN106250514B (zh) | 基于Mysql数据库和SQL日志的跨国数据同步方法 | |
CN102981947B (zh) | 一种测试中准备数据的方法及系统 | |
CN105912455A (zh) | 业务执行方法及服务器 | |
US11194769B2 (en) | System and method for re-synchronizing a portion of or an entire source database and a target database | |
CN108459961A (zh) | 一种测试用例测试失败后重测试的方法、客户端及服务器 | |
CN111339118A (zh) | 基于Kubernetes的资源变更历史记录方法及装置 | |
CN105279285A (zh) | 一种关系型数据库与非关系型数据库的同步系统及方法 | |
CN108762982B (zh) | 一种数据库恢复方法、装置及系统 | |
CN108984337A (zh) | 一种数据同步异常的修复方法、修复装置、介质和计算设备 | |
CN109522361A (zh) | 一种利用消息总线进行数据库实时同步的方法及系统 | |
CN110011853B (zh) | 一种面向多平台和集群的交叉故障排查方法及装置 | |
US10970266B2 (en) | Ensuring consistent replication of updates in databases | |
CN110262978A (zh) | 一种基于长流程自动化测试的接口重试方法及数据流 | |
CN103109289A (zh) | 基于web的脚本语言编辑方法、系统和web客户端 | |
CN106547670A (zh) | 远程读、写嵌入式Linux应用程序内存变量值的方法及装置 | |
CN110019527A (zh) | 从库读取方法、相关装置和设备 | |
CN115687503A (zh) | 数据库间的数据同步方法、装置、设备及存储介质 | |
CN116932649A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181228 |
|
RJ01 | Rejection of invention patent application after publication |