CN116048977B - 一种基于数据还原的测试方法及装置 - Google Patents

一种基于数据还原的测试方法及装置 Download PDF

Info

Publication number
CN116048977B
CN116048977B CN202211734459.5A CN202211734459A CN116048977B CN 116048977 B CN116048977 B CN 116048977B CN 202211734459 A CN202211734459 A CN 202211734459A CN 116048977 B CN116048977 B CN 116048977B
Authority
CN
China
Prior art keywords
data
change
database
flow
task
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.)
Active
Application number
CN202211734459.5A
Other languages
English (en)
Other versions
CN116048977A (zh
Inventor
王新宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alipay Hangzhou Information Technology Co Ltd
Original Assignee
Alipay Hangzhou Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alipay Hangzhou Information Technology Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Priority to CN202211734459.5A priority Critical patent/CN116048977B/zh
Publication of CN116048977A publication Critical patent/CN116048977A/zh
Application granted granted Critical
Publication of CN116048977B publication Critical patent/CN116048977B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2358Change logging, detection, and notification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2474Sequence data queries, e.g. querying versioned data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Fuzzy Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本说明书公开了一种基于数据还原的测试方法及装置,保护隐私数据,可以获取测试请求,并对该测试请求进行解析,确定测试请求中所携带的仿真流量,以及查询出在历史上通过该仿真流量对应的真实线上流量执行任务时数据库所产生的数据变更记录,作为目标变更记录,而后,可以根据该目标变更记录,从数据库中确定历史上通过仿真流量对应的真实线上流量执行任务时所改变的数据,作为目标数据,并根据该目标变更记录,对目标数据进行数据还原,最后,在目标数据完成数据还原后,通过仿真流量,执行测试任务,从而提高了测试的效率。

Description

一种基于数据还原的测试方法及装置
技术领域
本说明书涉及计算机技术领域,尤其涉及一种基于数据还原的测试方法及装置。
背景技术
在程序开发以及程序维护过程中,对程序进行测试,可以保证程序最终展现出良好的效果。
在程序测试中,可以采集线上的真实流量,采集后的线上流量可以在仿真环境中作为仿真流量,以测试程序的准确性。
在回放仿真流量前,需要将数据库中存储的数据,还原到仿真流量执行之前的状态。但是,在现有技术中,通常是将数据库中的数据全部还原到某个时间点,这一过程将耗费较长的时间,从而降低程序测试的效率。
因此,如何提高程序测试的效率,则是一个亟待解决的问题。
发明内容
本说明书提供一种基于数据还原的测试方法及装置,以提高测试效率。
本说明书采用下述技术方案:
本说明书提供一种基于数据还原的测试方法,包括:
获取测试请求;
对所述测试请求进行解析,确定所述测试请求中所携带的仿真流量;
查询出在历史上通过所述仿真流量对应的真实线上流量执行任务时数据库所产生的数据变更记录,作为目标变更记录,所述数据库部署在仿真环境中;
根据所述目标变更记录,从所述数据库中确定历史上通过所述仿真流量对应的真实线上流量执行任务时所改变的数据,作为目标数据;
根据所述目标变更记录,对所述目标数据进行数据还原;
在所述目标数据完成数据还原后,通过所述仿真流量,执行测试任务。
可选地,还包括:
监听所述数据库的数据变更,以得到表示所述数据库中数据变更情况的数据变更记录,并保存,其中,一个仿真流量与至少一条数据变更记录相关联。
可选地,监听所述数据库的数据变更,以得到表示所述数据库中数据变更情况的数据变更记录,具体包括:
针对所述数据库中的每个数据,若该数据发生变更,确定变更前的数据、变更后的数据,以及数据变更的相关信息,所述相关信息包括:数据变更时间、数据变更类型、数据的字段类型中的至少一种;
将所述变更前的数据、变更后的数据以及所述相关信息写入到数据变更记录中。
可选地,根据所述目标变更记录,对所述目标数据进行数据还原,具体包括:
根据所述目标变更记录,构建sql脚本,所述sql脚本用于将所述目标数据还原到历史上通过所述仿真流量对应的真实线上流量执行任务前的状态;
根据所述sql脚本,将所述目标数据进行数据还原。
可选地,根据所述目标变更记录,构建sql脚本,具体包括:
确定所述目标变更记录对应的数据变更类型;
确定所述数据变更类型对应的反向操作语句;
根据所述反向操作语句,构建sql脚本。
本说明书提供一种基于数据还原的测试装置,包括:
获取模块,用于获取测试请求;
确定模块,用于对所述测试请求进行解析,确定所述测试请求中所携带的仿真流量;
查询模块,用于查询出在历史上通过所述仿真流量对应的真实线上流量执行任务时数据库所产生的数据变更记录,作为目标变更记录;
数据模块,用于根据所述目标变更记录,从所述数据库中确定历史上通过所述仿真流量对应的真实线上流量执行任务时所改变的数据,作为目标数据;
还原模块,用于根据所述目标变更记录,对所述目标数据进行数据还原;
执行模块,用于在所述目标数据完成数据还原后,通过所述仿真流量,执行测试任务。
可选地,所述装置还包括监听模块;
所述监听模块用于,监听所述数据库的数据变更,以得到表示所述数据库中数据变更情况的数据变更记录,并保存,其中,一个仿真流量与至少一条数据变更记录相关联。
可选地,所述监听模块具体用于,针对所述数据库中的每个数据,若该数据发生变更,确定变更前的数据、变更后的数据,以及数据变更的相关信息,所述相关信息包括:数据变更时间、数据变更类型、数据的字段类型中的至少一种;将所述变更前的数据、变更后的数据以及所述相关信息写入到数据变更记录中。
可选地,所述还原模块具体用于,根据所述目标变更记录,构建sql脚本,所述sql脚本用于将所述目标数据还原到历史上通过所述仿真流量对应的真实线上流量执行任务前的状态;根据所述sql脚本,将所述目标数据进行数据还原。
可选地,所述还原模块具体用于,确定所述目标变更记录对应的数据变更类型;确定所述数据变更类型对应的反向操作语句;根据所述反向操作语句,构建sql脚本。
本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述基于数据还原的测试方法。
本说明书提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述基于数据还原的测试方法。
本说明书采用的上述至少一个技术方案能够达到以下有益效果:
在本说明书中提供的基于数据还原的测试方法中,可以获取测试请求,并对该测试请求进行解析,确定测试请求中所携带的仿真流量,以及查询出在历史上通过该仿真流量对应的真实线上流量执行任务时数据库所产生的数据变更记录,作为目标变更记录,而后,可以根据该目标变更记录,从数据库中确定历史上通过仿真流量对应的真实线上流量执行任务时所改变的数据,作为目标数据,并根据该目标变更记录,对目标数据进行数据还原,最后,在目标数据完成数据还原后,通过仿真流量,执行测试任务。
从上述内容中可以看出,本说明书中的基于数据还原的测试方法,在需要通过仿真流量进行测试时,确定出与仿真流量有关的历史上的数据变更对应的目标变更记录,从而,直接将数据库中的数据还原到仿真流量执行前,从而,可以直接对仿真流量进行回放,以进行测试,相比于现有技术,提高了测试的效率。
附图说明
此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:
图1为本说明书中一种基于数据还原的测试方法的流程示意图;
图2为本说明书中提供的一种对仿真流量相关的数据进行数据还原的流程示意图;
图3为本说明书提供的一种基于数据还原的测试装置示意图;
图4为本说明书提供的一种对应于图1的电子设备示意图。
具体实施方式
为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
图1为本说明书中一种基于数据还原的测试方法的流程示意图,具体包括以下步骤:
S100:获取测试请求。
S102:对所述测试请求进行解析,确定所述测试请求中所携带的仿真流量。
S104:查询出在历史上通过所述仿真流量对应的真实线上流量执行任务时数据库所产生的数据变更记录,作为目标变更记录。
在实际应用中,开发人员需要对程序进行测试,在测试时,可以通过流量回放,来进行测试,而流量回放前需要将数据进行还原。
基于此,服务器可以获取测试请求,对测试请求进行解析,从而确定出测试请求中携带的仿真流量,并查询出在历史上通过该仿真流量对应的真实线上流量执行任务时,数据库所产生的数据变更记录,作为目标变更记录,其中,该数据库可以部署在仿真环境中。这里提到的测试请求可以是指,需要通过对测试请求中的仿真流量信息对应的仿真流量进行回放以进行测试的请求,该服务器可以是指仿真环境的服务器。
其中,上述提到的历史上通过该仿真流量对应的真实线上流量执行的任务,可以是指测试任务,即,仿真流量是复制某个真实的线上流量所得到的流量,在历史上可以通过该仿真流量执行测试任务,而后将导致仿真环境的数据库中的数据发生一定变更,当再次通过该仿真流量进行测试,需要将该仿真流量导致发生变更的数据进行还原,因此需要确定出目标变更记录。
当然,上述提到的历史上通过该仿真流量对应的真实线上流量执行的任务时数据库所产生的数据变更记录,也可以不为进行测试任务时所产生的数据变更记录,可以是指在真实线上流量同步到仿真环境时所产生的数据变更记录,那么在后续通过该真实线上流量所对应的仿真流量执行测试任务时,可以根据该数据变更记录,来进行数据还原,进而回放该仿真流量,执行测试任务。
也就是说,确定目标变更记录,可以确定出该测试请求所需回放的仿真流量在历史上执行时,所导致数据变更都有哪些。
为了便于确定出目标变更记录,服务器可以监听仿真环境中该数据库的数据变更,以得到表示所述数据库中数据变更情况的数据变更记录,并保存,其中,一个仿真流量与至少一条数据变更记录相关联,数据变更记录用于表示数据库中每个数据的变更情况。也就是说,可以时刻监听数据库的数据变更情况,并进行记录。
这里为了便于描述,直接以服务器作为执行主体,来进行说明,本说明书中基于数据还原的测试方法的执行主体不限于此,可以是服务器、台式电脑、大型的服务平台等。
其中,可以针对数据库中的每个数据,若该数据发生变更,可以确定变更前的数据以及变更后的数据,以及与数据变更的相关信息,这里提到的相关信息可以包括:数据变更时间、数据变更类型、数据的字段类型中的至少一种;将变更前的数据、变更后的数据以及相关信息写入到数据变更记录中。
其中,数据的变更是与仿真流量有关的,仿真环境中,可以将线上的真实流量进行复制,在仿真环境中进行执行(这一执行,可以是指进行测试,也可以仅仅是指将线上的真实流量同步到仿真环境中),当仿真流量执行后,将导致数据库中数据的变更,因此,可以将每个仿真流量与该仿真流量所导致的数据变更记录进行关联,即,可以确定出每个仿真流量对应的至少一个数据变更记录。
之所以一个仿真流量可以对应有多个数据变更记录,是因为一个仿真流量可能是用户的多个一连串的操作,从而导致了多个数据变更。
S106:根据所述目标变更记录,从所述数据库中确定历史上通过所述仿真流量对应的真实线上流量执行任务时所改变的数据,作为目标数据。
S108:根据所述目标变更记录,对所述目标数据进行数据还原。
S110:在所述目标数据完成数据还原后,通过所述仿真流量,执行测试任务。
在上述过程中,监听整个数据库的数据变更情况,可以确定与该仿真流量关联的数据变更记录,作为目标变更记录,目标变更记录是指在仿真流量历史上所影响数据变更留下的变更记录,而后,可以根据目标变更记录,从数据库中确定历史上通过仿真流量对应的真实线上流量执行任务时所改变的数据,作为目标数据,并根据该目标变更记录,对该目标数据进行数据还原。也就是说,此次还原可以将数据库中的数据还原到该仿真流量执行(或是仿真流量对应的线上流量在仿真环境内执行)前的状态,从而,后续便于仿真流量的执行。
需要说明的是,可以根据目标变更记录,构建sql脚本,并根据该sql脚本,将数据库对应的数据进行数据还原,其中,该sql脚本用于将该目标数据还原到历史上通过仿真流量对应的真实线上流量执行任务前的状态。
在构建sql脚本时,可以确定目标变更记录对应的数据变更类型,并确定该数据变更类型对应的反向操作语句,继而,根据该反向操作语句,构建sql脚本。这里提到的目标变更记录对应的数据变更类型,可以是指目标变更记录所对应的数据在变更时对应的sql类型,例如,是Delete类型的语句所导致的数据变更,还是Insert类型的语句所导致的数据变更。
由于需要进行数据还原,而还原时的针对数据的操作相对于仿真流量之前执行时,是反向的,例如,在仿真流量执行时,产生的数据操作是Insert类型的(即插入一条数据),那么在数据还原时需要的数据操作是Delete类型的(即删除一条数据)。在仿真流量执行时,产生的数据操作是Update类型的,在数据还原时需要的数据操作也是Update类型的,但是,由于需要将数据还原,所以通过Update类型的sql语句针对数据的操作与之前数据变更时是相反的。因此,可以确定出该数据变更类型对应的反向操作语句,继而,根据该反向操作语句,构建sql脚本,反向操作语句针对数据的操作类型,和目标变更记录对应的数据变更类型是相反的。
在目标数据完成数据还原后,可以通过仿真流量,执行测试任务,具体的,可以将仿真流量进行回放,以针对该测试请求进行测试。
下面通过一个完整的例子,对本说明书中的测试方法进行详细的说明,如图2所示。
图2为本说明书中提供的一种对仿真流量相关的数据进行数据还原的流程示意图。
从图2中可以看出,在仿真流量回放之前,准备阶段,可以对数据库中的数据变更进行监听,并将仿真流量与数据变更记录进行关联,在仿真流量回放阶段,可以通过仿真流量对应的数据变更记录(即,目标变更记录),确定出如何将仿真流量历史上导致的变更,进行数据还原,从而,将数据库中数据还原到,仿真流量执行前,再进行仿真流量的回放。
其中,图2中的sission对应一个仿真流量,Trace对应一次数据变更记录,一个仿真流量可以对应多条数据变更记录,一条数据变更记录中可以存储有一次数据变更的信息,如变更前的数据、变更后的数据、数据变更时间等。
在图2中的数据变更时间包括两种,数据库变更时间(数据在数据库中的变更时间)和变更接收时间(数据库接收到将数据进行变更的指令的时间),越晚变更的数据可以越先还原,而后,通过sission(仿真流量)对应的多个数据变更记录,可以确定出将数据进行还原的sql脚本,从而通过sql脚本,对数据库中的数据进行还原。
从上述内容中可以看出,本说明书中的基于数据还原的测试方法,可以通过监听数据库的数据变更情况,在需要通过仿真流量进行测试时,确定出仿真流量所导致的历史上的数据变更对应的目标变更记录,从而,直接将数据库中的数据还原到仿真流量执行前,从而,可以直接对仿真流量进行回放,以进行测试,相比于现有技术,提高了测试的效率。
以上为本说明书的一个或多个实施例提供的基于数据还原的测试方法,基于同样的思路,本说明书还提供了基于数据还原的测试装置,如图3所示。
图3为本说明书提供的一种基于数据还原的测试装置示意图,具体包括:
获取模块301,用于获取测试请求;
确定模块302,用于对所述测试请求进行解析,确定所述测试请求中所携带的仿真流量;
查询模块303,用于查询出在历史上通过所述仿真流量对应的真实线上流量执行任务时数据库所产生的数据变更记录,作为目标变更记录,所述数据库部署在仿真环境中;
数据模块304,用于根据所述目标变更记录,从所述数据库中确定历史上通过所述仿真流量对应的真实线上流量执行任务时所改变的数据,作为目标数据;
还原模块305,用于根据所述目标变更记录,对所述目标数据进行数据还原;
执行模块306,用于在所述目标数据完成数据还原后,通过所述仿真流量,执行测试任务。
可选地,所述装置还包括监听模块307;
所述监听模块用于,监听所述数据库的数据变更,以得到表示所述数据库中数据变更情况的数据变更记录,并保存,其中,一个仿真流量与至少一条数据变更记录相关联。
可选地,所述监听模块307具体用于,针对所述数据库中的每个数据,若该数据发生变更,确定变更前的数据、变更后的数据,以及数据变更的相关信息,所述相关信息包括:数据变更时间、数据变更类型、数据的字段类型中的至少一种;将所述变更前的数据、变更后的数据以及所述相关信息写入到数据变更记录中。
可选地,所述还原模块305具体用于,根据所述目标变更记录,构建sql脚本,所述sql脚本用于将所述目标数据还原到历史上通过所述仿真流量对应的真实线上流量执行任务前的状态;根据所述sql脚本,将所述目标数据进行数据还原。
可选地,所述还原模块305具体用于,确定所述目标变更记录对应的数据变更类型;确定所述数据变更类型对应的反向操作语句;根据所述反向操作语句,构建sql脚本。
说明书还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述基于数据还原的测试方法。
本说明书还提供了图4所示的电子设备的示意结构图。如图4所述,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述基于数据还原的测试方法。当然,除了软件实现方式之外,本说明书并
不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流5程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改
进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。0因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(FieldProgrammable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和
制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半5改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器
相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera HardwareDescriptionLanguage)、Confluence、CUPL(Cornell University ProgrammingLanguage)、HDCal、JHDL0(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-Speed IntegratedCircuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
5控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC
625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控0制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算
机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能
的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既5可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理节点来执行任务。在分布式计算环境中,程序模块可以位于包括存储节点在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变更。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。

Claims (8)

1.一种基于数据还原的测试方法,包括:
获取测试请求;
对所述测试请求进行解析,确定所述测试请求中所携带的仿真流量;
查询出在历史上通过所述仿真流量对应的真实线上流量执行任务时数据库所产生的数据变更记录,作为目标变更记录,所述目标变更记录中包含有所述仿真流量对应的真实线上流量执行任务时对所述数据库中的数据进行变更前的数据、所述仿真流量对应的真实线上流量执行任务时对所述数据库中的数据进行变更后的数据、所述仿真流量对应的真实线上流量执行任务时对所述数据库中的数据进行变更的数据变更时间,所述数据变更时间包括:所述仿真流量对应的真实线上流量执行任务时在所述数据库中所要变更的数据在所述数据库中的变更时间,以及所述数据库接收到的所述仿真流量对应的真实线上流量执行任务时对所述数据库中的数据进行变更的指令的时间,越晚变更的数据,越先还原;
根据所述目标变更记录,从所述数据库中确定历史上通过所述仿真流量对应的真实线上流量执行任务时所改变的数据,作为目标数据;
确定所述目标变更记录对应的数据变更类型;
确定所述数据变更类型对应的反向操作语句,所述反向操作语句针对数据的操作类型,和所述目标变更记录对应的数据变更类型是相反的;
根据所述反向操作语句,构建sql脚本,所述sql脚本用于将所述目标数据还原到历史上通过所述仿真流量对应的真实线上流量执行任务前的状态;
根据所述sql脚本,将所述目标数据进行数据还原;
在所述目标数据完成数据还原后,通过所述仿真流量,执行测试任务。
2.如权利要求1所述的方法,还包括:
监听所述数据库的数据变更,以得到表示所述数据库中数据变更情况的数据变更记录,并保存,其中,一个仿真流量与至少一条数据变更记录相关联。
3.如权利要求2所述的方法,监听所述数据库的数据变更,以得到表示所述数据库中数据变更情况的数据变更记录,具体包括:
针对所述数据库中的每个数据,若该数据发生变更,确定变更前的数据、变更后的数据,以及数据变更的相关信息,所述相关信息包括:数据变更时间、数据变更类型、数据的字段类型中的至少一种;
将所述变更前的数据、变更后的数据以及所述相关信息写入到数据变更记录中。
4.一种基于数据还原的测试装置,包括:
获取模块,用于获取测试请求;
确定模块,用于对所述测试请求进行解析,确定所述测试请求中所携带的仿真流量;
查询模块,用于查询出在历史上通过所述仿真流量对应的真实线上流量执行任务时数据库所产生的数据变更记录,作为目标变更记录所述目标变更记录中包含有所述仿真流量对应的真实线上流量执行任务时对所述数据库中的数据进行变更前的数据、所述仿真流量对应的真实线上流量执行任务时对所述数据库中的数据进行变更后的数据、所述仿真流量对应的真实线上流量执行任务时对所述数据库中的数据进行变更的数据变更时间,所述数据变更时间包括:所述仿真流量对应的真实线上流量执行任务时在所述数据库中所要变更的数据在所述数据库中的变更时间,以及所述数据库接收到的所述仿真流量对应的真实线上流量执行任务时对所述数据库中的数据进行变更的指令的时间,越晚变更的数据,越先还原;
数据模块,用于根据所述目标变更记录,从所述数据库中确定历史上通过所述仿真流量对应的真实线上流量执行任务时所改变的数据,作为目标数据;
还原模块,用于确定所述目标变更记录对应的数据变更类型;确定所述数据变更类型对应的反向操作语句,所述反向操作语句针对数据的操作类型,和所述目标变更记录对应的数据变更类型是相反的;根据所述反向操作语句,构建sql脚本,所述sql脚本用于将所述目标数据还原到历史上通过所述仿真流量对应的真实线上流量执行任务前的状态;根据所述sql脚本,将所述目标数据进行数据还原;
执行模块,用于在所述目标数据完成数据还原后,通过所述仿真流量,执行测试任务。
5.如权利要求4的所述测试装置,所述装置还包括监听模块;
所述监听模块用于,监听所述数据库的数据变更,以得到表示所述数据库中数据变更情况的数据变更记录,并保存,其中,一个仿真流量与至少一条数据变更记录相关联。
6.如权利要求4的所述测试装置,监听模块具体用于,针对所述数据库中的每个数据,若该数据发生变更,确定变更前的数据、变更后的数据,以及数据变更的相关信息,所述相关信息包括:数据变更时间、数据变更类型、数据的字段类型中的至少一种;将所述变更前的数据、变更后的数据以及所述相关信息写入到数据变更记录中。
7.一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求1~3任一项所述的方法。
8.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述权利要求1~3任一项所述的方法。
CN202211734459.5A 2022-12-30 2022-12-30 一种基于数据还原的测试方法及装置 Active CN116048977B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211734459.5A CN116048977B (zh) 2022-12-30 2022-12-30 一种基于数据还原的测试方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211734459.5A CN116048977B (zh) 2022-12-30 2022-12-30 一种基于数据还原的测试方法及装置

Publications (2)

Publication Number Publication Date
CN116048977A CN116048977A (zh) 2023-05-02
CN116048977B true CN116048977B (zh) 2024-02-06

Family

ID=86128903

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211734459.5A Active CN116048977B (zh) 2022-12-30 2022-12-30 一种基于数据还原的测试方法及装置

Country Status (1)

Country Link
CN (1) CN116048977B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117234857B (zh) * 2023-11-10 2024-01-26 之江实验室 一种内生安全架构系统及异常检测方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002025499A1 (en) * 2000-09-19 2002-03-28 Bocada, Inc. Method for extracting and storing records of data backup activity from a plurality of backup devices
US9535932B1 (en) * 2012-06-29 2017-01-03 ParAccel, LLC Backup and restore of databases
CN110543413A (zh) * 2019-07-22 2019-12-06 深圳壹账通智能科技有限公司 业务系统测试方法、装置、设备及存储介质
CN112100052A (zh) * 2020-08-07 2020-12-18 北京奇艺世纪科技有限公司 一种接口测试场景的回放方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002025499A1 (en) * 2000-09-19 2002-03-28 Bocada, Inc. Method for extracting and storing records of data backup activity from a plurality of backup devices
US9535932B1 (en) * 2012-06-29 2017-01-03 ParAccel, LLC Backup and restore of databases
CN110543413A (zh) * 2019-07-22 2019-12-06 深圳壹账通智能科技有限公司 业务系统测试方法、装置、设备及存储介质
CN112100052A (zh) * 2020-08-07 2020-12-18 北京奇艺世纪科技有限公司 一种接口测试场景的回放方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
GIS内外业一体化数据双向同步技术研究;刘永杰;《林业调查规划》;第39卷(第03期);7-11 *

Also Published As

Publication number Publication date
CN116048977A (zh) 2023-05-02

Similar Documents

Publication Publication Date Title
CN107577697B (zh) 一种数据处理方法、装置及设备
CN108628688B (zh) 一种消息处理方法、装置及设备
CN110807013B (zh) 用于分布式数据存储集群的数据迁移方法和装置
CN110989939A (zh) 一种数据缓存处理方法、装置、设备及缓存组件
CN109597678B (zh) 任务处理方法及装置
CN108733546A (zh) 一种日志采集方法、装置及设备
CN110399359B (zh) 一种数据回溯方法、装置及设备
CN105868216B (zh) 一种实现对象过期操作的方法、装置和设备
CN116048977B (zh) 一种基于数据还原的测试方法及装置
CN116610568A (zh) 一种识别代码的依赖关系的方法、装置、设备及介质
CN117555697B (zh) 一种面向分布式训练的缓存加载系统、方法、装置及设备
CN114840426A (zh) 一种代码测试的方法及装置
CN110083602B (zh) 一种基于hive表的数据存储及数据处理的方法及装置
CN111796864A (zh) 一种数据校验的方法及装置
CN116822606A (zh) 一种异常检测模型的训练方法、装置、设备及存储介质
CN116341642A (zh) 一种数据处理的方法、装置、存储介质及电子设备
CN117311856A (zh) 一种接口调用代码的生成方法及装置
CN111967769B (zh) 一种风险识别方法、装置、设备及介质
CN111967767A (zh) 一种业务风险识别方法、装置、设备及介质
CN110704742A (zh) 一种特征提取方法及装置
CN117076336B (zh) 一种云边协同系统的测试方法、装置、存储介质及设备
CN118586342B (zh) 一种仿真电路求解方法、装置、存储介质及电子设备
CN115827310B (zh) 一种信息校验的方法、装置、存储介质及电子设备
CN117455015B (zh) 一种模型优化的方法、装置、存储介质及电子设备
CN118331931B (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
GR01 Patent grant
GR01 Patent grant