CN113468064A - 灰度测试方法、装置、电子设备与存储介质 - Google Patents
灰度测试方法、装置、电子设备与存储介质 Download PDFInfo
- Publication number
- CN113468064A CN113468064A CN202110813719.7A CN202110813719A CN113468064A CN 113468064 A CN113468064 A CN 113468064A CN 202110813719 A CN202110813719 A CN 202110813719A CN 113468064 A CN113468064 A CN 113468064A
- Authority
- CN
- China
- Prior art keywords
- database
- data access
- sandbox
- data
- gray scale
- 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
- 238000012360 testing method Methods 0.000 title claims abstract description 116
- 244000035744 Hura crepitans Species 0.000 claims abstract description 136
- 238000000034 method Methods 0.000 claims abstract description 37
- 238000004519 manufacturing process Methods 0.000 claims description 29
- 238000012986 modification Methods 0.000 claims description 18
- 230000004048 modification Effects 0.000 claims description 18
- 238000012217 deletion Methods 0.000 claims description 17
- 230000037430 deletion Effects 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 9
- 238000010998 test method Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 description 15
- 230000002567 autonomic effect Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 238000012423 maintenance Methods 0.000 description 8
- 238000002955 isolation Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 238000010420 art technique Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000013522 software testing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/3688—Test management for test execution, e.g. scheduling of test suites
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供一种灰度测试方法、装置、电子设备与存储介质,方法包括:在灰度测试中,业务系统的数据访问层中的第一组件根据所接收的数据访问请求与配置信息,确定所要访问的数据库为沙箱数据库或为正式数据库;其中,第一组件是根据基类得到的,基类用于对数据库进行包括增加操作、删除操作、修改操作以及查看操作在内的操作;在所要访问的数据库为沙箱数据库的情况下,第一组件根据数据访问请求对沙箱数据库进行数据访问操作。本公开通过对数据库中各个表的类继承的基类做少量的修改,可在业务系统的数据访问层中确定数据访问操作所要访问的数据库,进而实现数据访问操作,与现有技术相比,开发工作量和后续的维护工作量有明显降低。
Description
技术领域
本公开涉及软件测试技术领域,尤其涉及一种灰度测试方法、装置、电子设备与存储介质。
背景技术
灰度测试是软件产品在被用户正式使用之前的步骤。在灰度测试的过程中,会对软件产品的发布逐步扩大使用群体范围。灰度测试可以保证整体系统的稳定,也可以及早获得用户的意见反馈,及时发现问题、解决问题,降低软件产品缺陷所影响的用户范围。
灰度测试环境是灰度测试所对应的环境,生产环境是用户的使用环境。软件产品只有在灰度测试环境中测试通过后,才能被发布到正式的生产环境中。
由于灰度测试的结果可能存在问题,为了不影响生产环境向用户提供正常服务,一般要求将灰度测试环境与生产环境隔离开。灰度测试环境与生产环境的隔离,最根本的是在灰度测试环境下所执行的数据库访问操作不会对生产环境下的数据库的内容产生影响。
在现有技术中,要实现灰度测试环境与生产环境的隔离主要有两类方法。
第一类是端到端的完全隔离,即将灰度测试环境与生产环境完全隔离开。此类方法虽然具有良好的隔离效果,但需要同时维持灰度测试环境与生产环境,因此对底层计算资源的使用、运维成本等有成倍的增加。
第二类是对部分功能进行隔离,即为软件产品的部分功能同时提供灰度测试环境与生产环境。此类方法要求为软件产品设置适应于不同环境的重复代码。重复代码的设置为今后软件产品的维护增加了复杂度。
综上所述,现有技术中的方法存在各自的缺陷。
发明内容
针对现有技术存在的问题,本公开提供一种灰度测试方法、装置、电子设备与存储介质。
本公开提供一种灰度测试方法,包括:
在灰度测试中,业务系统的数据访问层中的第一组件根据所接收的数据访问请求与配置信息,确定所要访问的数据库为沙箱数据库或为正式数据库;其中,所述第一组件是根据基类得到的,所述基类用于对数据库进行包括增加操作、删除操作、修改操作以及查看操作在内的操作;所述沙箱数据库为灰度测试环境下的数据库,所述正式数据库为生产环境下的数据库;
在所要访问的数据库为沙箱数据库的情况下,所述第一组件根据所述数据访问请求对所述沙箱数据库进行数据访问操作。
根据本发明提供的一种灰度测试方法,所述在所要访问的数据库为沙箱数据库的情况下,所述第一组件根据所述数据访问请求对所述沙箱数据库进行数据访问操作,包括:
当所述数据访问操作为修改操作或删除操作时,所述第一组件根据所述数据访问请求对所述沙箱数据库进行修改操作或删除操作,并记录所述修改操作或删除操作。
根据本发明提供的一种灰度测试方法,数据库中的数据之间通过自增主键标识符进行关联;
相应的,所述在所要访问的数据库为沙箱数据库的情况下,所述第一组件根据所述数据访问请求对所述沙箱数据库进行数据访问操作,包括:
当所述数据访问操作为增加操作时,所述第一组件根据所述数据访问请求在所述沙箱数据库增加第一数据,在所述正式数据库增加第二数据,所述第一数据与所述第二数据大小相同且具有同一自增主键标识符。
根据本发明提供的一种灰度测试方法,所述在所要访问的数据库为沙箱数据库的情况下,所述第一组件根据所述数据访问请求对所述沙箱数据库进行数据访问操作,还包括:
将所述第一数据设置为有效状态,将所述第二数据设置为无效状态。
根据本发明提供的一种灰度测试方法,数据库中的数据之间未通过自增主键标识符进行关联;
相应的,所述在所要访问的数据库为沙箱数据库的情况下,所述第一组件根据所述数据访问请求对所述沙箱数据库进行数据访问操作,包括:
当所述数据访问操作为增加操作时,所述第一组件在所述沙箱数据库增加第一数据,并记录所述增加操作。
根据本发明提供的一种灰度测试方法,方法还包括:
在所要访问的数据库为正式数据库的情况下,所述第一组件根据所述数据访问请求对所述正式数据库进行数据访问操作。
本发明还提供了一种灰度测试装置,包括:
数据库确定模块,用于在灰度测试中,业务系统的数据访问层中的第一组件根据所接收的数据访问请求与配置信息,确定所要访问的数据库为沙箱数据库或为正式数据库;其中,所述第一组件是根据基类得到的,所述基类用于对数据库进行包括增加操作、删除操作、修改操作以及查看操作在内的操作;所述沙箱数据库为灰度测试环境下的数据库,所述正式数据库为生产环境下的数据库;
沙箱数据库访问模块,用于在所要访问的数据库为沙箱数据库的情况下,所述第一组件根据所述数据访问请求对所述沙箱数据库进行数据访问操作。
根据本发明提供的一种灰度测试装置,数据库中的数据之间通过自增主键标识符进行关联;
相应的,所述沙箱数据库访问模块还用于当所述数据访问操作为增加操作时,所述第一组件根据所述数据访问请求在所述沙箱数据库增加第一数据,在所述正式数据库增加第二数据,所述第一数据与所述第二数据大小相同且具有同一自增主键标识符。
本公开还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述灰度测试方法的步骤。
本公开还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述灰度测试方法的步骤。
本公开提供的灰度测试方法、装置、电子设备与存储介质,通过对数据库中各个表的类继承的基类做少量的修改,可在业务系统的数据访问层中确定数据访问操作所要访问的数据库(沙箱数据库或正式数据库),进而实现数据访问操作,与现有技术相比,不需要对业务逻辑层和数据访问层中的各业务基本操作做大量的修改,使得开发工作量和后续的维护工作量有明显降低。
附图说明
为了更清楚地说明本公开或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术中业务系统的逻辑架构图;
图2是现有技术中将灰度测试环境与生产环境完全隔离的示意图;
图3是现有技术中将业务系统的部分功能进行隔离的示意图;
图4是本公开提供的灰度测试方法的流程图;
图5是本公开提供的灰度测试装置的示意图;
图6是本公开提供的电子设备的结构示意图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚,下面将结合本公开中的附图,对本公开中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
在对本公开做详细说明之前,首先对业务系统的逻辑架构进行说明。
图1为现有技术中业务系统的逻辑架构图,如图1所示,一业务系统包括WEB层、业务逻辑层、数据访问层以及数据库。其中,WEB层用于前端展示和用户请求的处理;业务逻辑层用于实现核心业务逻辑;数据访问层(即DAO层)用于实现数据库访问;数据库(或被称为信息资源层)用于存储数据。
该业务系统在运行过程中,出于系统升级、新功能测试等多种因素的影响,需要对其进行灰度测试。
由于灰度测试的结果最终反映为业务系统中的数据库中数据的变化,因此,为了避免灰度测试对用户正常使用业务系统产生不良影响,在灰度测试过程中需要将灰度测试所使用的数据库与生产环境下的数据库区分开。在本公开中,将灰度测试所涉及的数据库称为沙箱数据库,将生产环境下的数据库称为正式数据库。
在背景技术的描述中已经提到,为了避免灰度测试影响用户对业务系统的正常使用,需要将灰度测试环境与生产环境隔离开。在现有技术中,存在两类方法。图2为现有技术中将灰度测试环境与生产环境完全隔离的示意图,如图2所示,根据该方法,需要同时设置两套业务系统,一套业务系统用于灰度测试环境,一套业务系统用于生产环境。这样做的后果是:对底层计算资源的使用、运维成本等有成倍的增加。
图3为现有技术中将业务系统的部分功能进行隔离的示意图。如图3所示,业务逻辑层中的部分功能需要在灰度测试环境与生产环境中被隔离开,而业务逻辑层中的另一些功能可在灰度测试环境与生产环境中被共享。相应的,数据访问层也可被分为两部分:一部分在业务逻辑层中的共享部分的控制下对正式数据库进行访问操作;另一部分在业务逻辑层中的隔离部分的控制下、按照配置信息对正式数据库或沙箱数据库进行访问操作。此类方法对业务系统中被隔离的部分需要设置重复代码,以适应不同环境。重复代码的设置为业务系统的维护增加了复杂度。
下面结合图4-图6描述本公开的灰度测试方法、装置、电子设备与存储介质。
图4为本公开提供的灰度测试方法的流程图,如图4所示,本公开提供的灰度测试方法,应用于业务系统的数据访问层,方法包括:
步骤401、在灰度测试中,业务系统的数据访问层中的第一组件根据所接收的数据访问请求与配置信息,确定所要访问的数据库为沙箱数据库或为正式数据库。
在灰度测试中,通常需要做数据访问操作。业务系统的数据访问层从业务逻辑层接收到数据访问请求。所述数据访问请求包含了数据访问操作的类型信息、地址信息以及数据访问操作所需要的数据。
根据业务系统中的业务逻辑,在业务系统的运行过程中,需要对数据库执行多种类型的操作。例如,业务系统为一个购物网站,那么在用户注册、用户登录、浏览网页、选取商品、交易支付等多个环节,都涉及到对数据库的操作。但这些操作都可以进一步划分成四种基础操作,即增加操作、删除操作、修改操作以及查看操作。
在本步骤中,数据访问请求中所包含的数据访问操作的类型信息用于描述数据访问操作是增加操作、删除操作、修改操作以及查看操作中的哪一种。本领域技术人员很容易理解,若从业务系统的业务逻辑层所获取的数据访问请求所对应的数据访问操作并非基础操作,可将其分解为基础操作。如何将一个较为复杂的数据访问操作分解为基础操作是本领域技术人员的公知常识,不在此处做重复说明。
数据访问请求中所包含的地址信息用于描述数据访问操作的发生位置。数据在数据库中通常以数据表的形式存储,因此所述地址信息可以包括数据表的标识信息以及数据表中的地址信息。
当数据访问请求所涉及的数据访问操作是增加操作或修改操作时,数据访问请求中还要包含所要增加的数据或修改后的数据。
数据访问层在接收到数据访问请求后,会调用第一组件做后续的处理。在本实施例中,所述第一组件是根据基类(base类)得到的,所述基类是对数据库中各个表的类继承的基类,用于对数据库进行包括增加操作、删除操作、修改操作以及查看操作在内的操作。
在本公开中,所述沙箱数据库为灰度测试环境下的数据库,所述正式数据库为生产环境下的数据库。
在一般情况下,业务数据会以数据表的形式同时保存在沙箱数据库与正式数据库中。在灰度测试过程中,数据访问操作只访问沙箱数据库中的数据表。若业务数据在灰度测试过程中有变化,在后续的发布过程中,会将业务数据从沙箱数据库的数据表同步到正式数据库的对应数据表中。
但业务系统中的一些业务数据较为固定,如用户的账户信息,没有做灰度测试的必要。此类业务数据通常只需要保存在正式数据库的数据表中。当在灰度测试过程中调用这些业务数据时,对应的数据访问操作需要访问正式数据库。在后续的发布过程中,此类数据也就不存在从沙箱数据库的数据表同步到正式数据库的对应数据表中的过程。
综上所述,若业务数据同时保存在沙箱数据库与正式数据库中,则在灰度测试过程中,对该业务数据的访问操作为访问沙箱数据库;若业务数据只保存在正式数据库中,则在灰度测试过程中,对该业务数据的访问操作为访问正式数据库。
在本步骤中,第一组件可根据预先设定的配置信息以及所接收到的数据访问请求,来确定数据访问请求所对应的数据访问操作访问的是沙箱数据库,还是正式数据库。
所述配置信息描述了数据表所在的数据库。例如,假设有数据表t1、t2、t3、……、t10。在配置信息中描述了数据表t1、t2、t5和t10同时存在于沙箱数据库和正式数据库,数据表t3、t4、t6、t7、t8和t9只存在于正式数据库。那么根据数据访问请求中所包含的地址信息以及所述配置信息,即可确定数据访问操作所要访问的数据库。
作为本领域技术人员的公知常识,当数据规模十分庞大时,出于方便管理的需要,沙箱数据库有多个。此时,确定所述数据访问操作所要访问的数据库还包括:从多个沙箱数据库中确定第一沙箱数据库。类似的,正式数据库也可能有多个,确定所述数据访问操作所要访问的数据库还包括:从多个正式数据库中确定第一正式数据库。如何从多个沙箱数据库中确定第一沙箱数据库,或如何从多个正式数据库中确定第一正式数据库是本领域技术人员的公知常识,因此不在此处重复说明。
步骤402、在所要访问的数据库为沙箱数据库的情况下,所述第一组件根据所述数据访问请求对所述沙箱数据库进行数据访问操作。
在前一步骤中,已经确定了数据访问操作所要访问的数据库为沙箱数据库或正式数据库。在本步骤中,对所要访问的数据库为沙箱数据库的情况做进一步的讨论。
当所述数据访问操作为增加操作时,在沙箱数据库的指定存储位置存储新增加的数据;当所述数据访问操作为删除操作时,在沙箱数据库的指定存储位置删除之前所存储的数据;当所述数据访问操作为修改操作时,在沙箱数据的指定存储位置修改之前所存储的数据;当所述数据访问操作为查看操作时,在沙箱数据库的指定存储位置查看之前所存储的数据。
本公开提供的灰度测试方法通过对数据库中各个表的类继承的基类做少量的修改,可在业务系统的数据访问层中确定数据访问操作所要访问的数据库(沙箱数据库或正式数据库),进而实现数据访问操作,与现有技术相比,不需要对业务逻辑层和数据访问层中的各业务基本操作做大量的修改,使得开发工作量和后续的维护工作量有明显降低。
基于上述任一实施例,在本实施例中,所述在所要访问的数据库为沙箱数据库的情况下,所述第一组件根据所述数据访问请求对所述沙箱数据库进行数据访问操作,包括:
当所述数据访问操作为修改操作或删除操作时,所述第一组件根据所述数据访问请求对所述沙箱数据库进行修改操作或删除操作,并记录所述修改操作或删除操作。
作为本领域的公知常识,修改操作或删除操作都会使得沙箱数据库之前所存储的数据发生变动。为了保证沙箱数据库与正式数据库中数据的一致性,在本实施例中,可通过明细表记录对沙箱数据库的修改操作或删除操作,以使得灰度测试通过后,根据所述明细表记录的修改操作或删除操作对所述正式数据库进行访问。即:将灰度测试中对沙箱数据库的改动发布到生产环境中的正式数据库,从而对外提供正式的服务。
本公开提供的灰度测试方法通过对沙箱数据库的修改操作或删除操作进行记录,以使得灰度测试通过后,可根据记录快速地实现沙箱数据库与正式数据库的同步,提高了数据的准确性与安全性,也提高了效率。
基于上述任一实施例,在本实施例中,数据库中的数据之间通过自增主键标识符进行关联;
相应的,所述在所要访问的数据库为沙箱数据库的情况下,所述第一组件根据所述数据访问请求对所述沙箱数据库进行数据访问操作,包括:
当所述数据访问操作为增加操作时,所述第一组件根据所述数据访问请求在所述沙箱数据库增加第一数据,在所述正式数据库增加第二数据,所述第一数据与所述第二数据大小相同且具有同一自增主键标识符。
本领域技术人员都知道,数据库具有多种实现方式,如数据库为MySQL数据库、Oracle数据库等。对于MySQL数据库,其实现机制上有自身的特点,其中之一为MySQL数据库中的数据之间通过自增主键ID进行关联。
例如,根据业务系统中的某一业务逻辑,表t1的001项的内容和表t2的002项的内容具有关联性,为了描述这一关联性,将表t1的自增主键ID 001和表t2的自增主键ID 002之间设置为具有关联关系。为了保证在灰度测试后,表t1的001项的内容和表t2的002项的内容依然具有关联性,要求沙箱数据库中的表t1的001项和正式数据库中的表t1的001项是一致的;沙箱数据库中的表t2的002项和正式数据库中的表t2的002项是一致的。即,沙箱数据库与正式数据库所对应的2个表中同一自增主键ID(如001、002)所对应的数据表的行内容一致。
但在MySQL数据库中,确定自增主键ID值的过程不受人为控制,因此在做增加操作时,需要同时在沙箱数据库与正式数据库进行增加数据的操作,以使得沙箱数据库与正式数据库具有相同自增主键ID的表项是一致的。
具体的说,同时在沙箱数据库与正式数据库进行增加数据的操作,可以使得在沙箱数据库与正式数据库中生成自增主键ID的过程是同时实现的。而自增主键ID值的确定又主要依赖于生成时刻的外部条件,因而在沙箱数据库与正式数据库中同时生成的自增主键ID的值相同。这就保证了沙箱数据库与正式数据库中具有相同自增主键ID的表项是一致的。
例如,一数据访问操作是在基于MySQL数据库实现的沙箱数据库的表t1中插入值A。根据MySQL数据库的自增主键ID计算方式,得到该增加操作所对应的自增主键ID为003,即值A被插入自增主键ID为003的表项中。当该数据访问操作同时在基于MySQL数据库实现的正式数据库中实现时,由于同一时刻的外部条件相同,因此根据MySQL数据库的自增主键ID计算方式,该增加操作所对应的自增主键ID同样为003,即在正式数据库中,同样将值A插入自增主键ID为003的表项中。这就保证了沙箱数据库中表t1的自增主键ID为003的表项,与正式数据库中表t1的自增主键ID为003的表项是一致的。
需要说明的是,在灰度测试过程中,如果一个数据表同时存在于沙箱数据库与正式数据库,那么原则上只需要在沙箱数据库中写入新增加的数据。而在本实施例中,鉴于MySQL数据库的特点,需要同时在沙箱数据库与正式数据库中写入新增加的数据。这与灰度测试的业务逻辑不符,因此需要为正式数据库中所写入的新增加数据设置一个标志位。在灰度测试时,该标志位处于无效状态,说明正式数据库中所写入的新增加数据此时并未生效,即物理上已经写入,但逻辑上尚未写入;当灰度测试结果,业务系统正式发布后,该标志位的状态转变为有效的状态,即物理与逻辑上均已经写入新增加的数据。
本公开提供的灰度测试方法对于数据之间通过自增主键标识符进行关联的数据库,通过对增加操作进行物理双写(同时写入沙箱数据库与正式数据库),保证了自增主键标识符之间的对应关系不被改变,保证了数据的准确性。
基于上述任一实施例,在本实施例中,数据库中的数据之间未通过自增主键标识符进行关联;
相应的,所述在所要访问的数据库为沙箱数据库的情况下,所述第一组件根据所述数据访问请求对所述沙箱数据库进行数据访问操作,包括:
当所述数据访问操作为增加操作时,所述第一组件在所述沙箱数据库增加第一数据,并记录所述增加操作。
在前一实施例中,对数据之间通过自增主键标识符进行关联的数据库,如MySQL数据库,如何处理增加操作的过程做了说明。在本实施例中,对数据之间未通过自增主键标识符进行关联的数据库,如Oracle数据库,如何处理增加操作的过程进行说明。
在Oracle数据库中,数据之间通过自定义的主键ID进行关联,且设置主键ID值的过程可以被控制,因此在本实施例中无需对增加操作进行物理双写(同时写入沙箱数据库与正式数据库)。在实现增加操作时,只需要在沙箱数据库中增加第一数据,并记录所述增加操作。在灰度测试通过后,根据所记录的增加操作对所述正式数据库进行访问。即:将灰度测试中对沙箱数据库的改动发布到生产环境中的正式数据库,从而对外提供正式的服务。
本公开提供的灰度测试方法对于数据之间未通过自增主键标识符进行关联的数据库,通过在沙箱数据库中执行增加操作,并记录该增加操作,从而在灰度测试通过后,可根据记录快速地实现沙箱数据库与正式数据库的同步,提高了数据的准确性与安全性,也提高了效率。
基于上述任一实施例,在本实施例中,方法还包括:
在所要访问的数据库为正式数据库的情况下,所述第一组件根据所述数据访问请求对所述正式数据库进行数据访问操作。
在之前的多个实施例中,都是对所要访问的数据库是沙箱数据库的情况进行讨论。在实际应用中,还存在着所要访问的数据库是正式数据库的情况。在本实施例中,对此类情况进行讨论。
由于业务系统中的一些业务数据较为固定,如用户的账户信息,因此这些数据仅被保存在正式数据库中。在灰度测试中,若涉及到这些数据,可根据数据访问请求直接访问正式数据库。
在灰度检测通过后的发布过程中,此类数据也无需从沙箱数据库同步到正式数据库中。
本公开提供的灰度测试方法通过对数据库中各个表的类继承的基类做少量的修改,可在业务系统的数据访问层中确定数据访问操作所要访问的数据库,进而实现数据访问操作,与现有技术相比,不需要对业务逻辑层和数据访问层中的各业务基本操作做大量的修改,使得开发工作量和后续的维护工作量有明显降低。
下面对本公开提供的灰度测试装置进行描述,下文描述的灰度测试装置与上文描述的灰度测试方法可相互对应参照。
图5是本公开提供的灰度测试装置的示意图,如图5所示,本公开提供的灰度测试装置包括:
数据库确定模块501,用于在灰度测试中,业务系统的数据访问层中的第一组件根据所接收的数据访问请求与配置信息,确定所要访问的数据库为沙箱数据库或为正式数据库;其中,所述第一组件是根据基类得到的,所述基类用于对数据库进行包括增加操作、删除操作、修改操作以及查看操作在内的操作;所述沙箱数据库为灰度测试环境下的数据库,所述正式数据库为生产环境下的数据库;
沙箱数据库访问模块502,用于在所要访问的数据库为沙箱数据库的情况下,所述第一组件根据所述数据访问请求对所述沙箱数据库进行数据访问操作。
本公开提供的灰度测试装置通过对数据库中各个表的类继承的基类做少量的修改,可在业务系统的数据访问层中确定数据访问操作所要访问的数据库(沙箱数据库或正式数据库),进而实现数据访问操作,与现有技术相比,不需要对业务逻辑层和数据访问层中的各业务基本操作做大量的修改,使得开发工作量和后续的维护工作量有明显降低。
基于上述任一实施例,在本实施例中,所述沙箱数据库访问模块502用于:
当所述数据访问操作为修改操作或删除操作时,所述第一组件根据所述数据访问请求对所述沙箱数据库进行修改操作或删除操作,并记录所述修改操作或删除操作。
本公开提供的灰度测试装置通过对沙箱数据库的修改操作或删除操作进行记录,以使得灰度测试通过后,可根据记录快速地实现沙箱数据库与正式数据库的同步,提高了数据的准确性与安全性,也提高了效率。
基于上述任一实施例,在本实施例中,数据库中的数据之间通过自增主键标识符进行关联;相应的,所述沙箱数据库访问模块还用于当所述数据访问操作为增加操作时,所述第一组件根据所述数据访问请求在所述沙箱数据库增加第一数据,在所述正式数据库增加第二数据,所述第一数据与所述第二数据大小相同且具有同一自增主键标识符。
本公开提供的灰度测试装置对于数据之间通过自增主键标识符进行关联的数据库,通过对增加操作进行物理双写(同时写入沙箱数据库与正式数据库),保证了自增主键标识符之间的对应关系不被改变,保证了数据的准确性。
基于上述任一实施例,在本实施例中,数据库中的数据之间未通过自增主键标识符进行关联;
相应的,所述沙箱数据库访问模块还用于当所述数据访问操作为增加操作时,所述第一组件在所述沙箱数据库增加第一数据,并记录所述增加操作。
本公开提供的灰度测试装置对于数据之间未通过自增主键标识符进行关联的数据库,通过在沙箱数据库中执行增加操作,并记录该增加操作,从而在灰度测试通过后,可根据记录快速地实现沙箱数据库与正式数据库的同步,提高了数据的准确性与安全性,也提高了效率。
基于上述任一实施例,在本实施例中,装置还包括:
正式数据库访问模块,用于在所要访问的数据库为正式数据库的情况下,所述第一组件根据所述数据访问请求对所述正式数据库进行数据访问操作。
本公开提供的灰度测试装置通过对数据库中各个表的类继承的基类做少量的修改,可在业务系统的数据访问层中确定数据访问操作所要访问的数据库,进而实现数据访问操作,与现有技术相比,不需要对业务逻辑层和数据访问层中的各业务基本操作做大量的修改,使得开发工作量和后续的维护工作量有明显降低。
图6示例了一种电子设备的实体结构示意图,如图6所示,该电子设备可以包括:处理器(processor)610、通信接口(Communications Interface)620、存储器(memory)630和通信总线640,其中,处理器610,通信接口620,存储器630通过通信总线640完成相互间的通信。处理器610可以调用存储器630中的逻辑指令,以执行灰度测试方法,该方法包括:
在灰度测试中,业务系统的数据访问层中的第一组件根据所接收的数据访问请求与配置信息,确定所要访问的数据库为沙箱数据库或为正式数据库;其中,所述第一组件是根据基类得到的,所述基类用于对数据库进行包括增加操作、删除操作、修改操作以及查看操作在内的操作;所述沙箱数据库为灰度测试环境下的数据库,所述正式数据库为生产环境下的数据库;
在所要访问的数据库为沙箱数据库的情况下,所述第一组件根据所述数据访问请求对所述沙箱数据库进行数据访问操作。
此外,上述的存储器630中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本公开还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的灰度测试方法,该方法包括:
在灰度测试中,业务系统的数据访问层中的第一组件根据所接收的数据访问请求与配置信息,确定所要访问的数据库为沙箱数据库或为正式数据库;其中,所述第一组件是根据基类得到的,所述基类用于对数据库进行包括增加操作、删除操作、修改操作以及查看操作在内的操作;所述沙箱数据库为灰度测试环境下的数据库,所述正式数据库为生产环境下的数据库;
在所要访问的数据库为沙箱数据库的情况下,所述第一组件根据所述数据访问请求对所述沙箱数据库进行数据访问操作。
又一方面,本公开还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的灰度测试方法,该方法包括:
在灰度测试中,业务系统的数据访问层中的第一组件根据所接收的数据访问请求与配置信息,确定所要访问的数据库为沙箱数据库或为正式数据库;其中,所述第一组件是根据基类得到的,所述基类用于对数据库进行包括增加操作、删除操作、修改操作以及查看操作在内的操作;所述沙箱数据库为灰度测试环境下的数据库,所述正式数据库为生产环境下的数据库;
在所要访问的数据库为沙箱数据库的情况下,所述第一组件根据所述数据访问请求对所述沙箱数据库进行数据访问操作。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本公开的技术方案,而非对其限制;尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本公开各实施例技术方案的精神和范围。
Claims (10)
1.一种灰度测试方法,其特征在于,包括:
在灰度测试中,业务系统的数据访问层中的第一组件根据所接收的数据访问请求与配置信息,确定所要访问的数据库为沙箱数据库或为正式数据库;其中,所述第一组件是根据基类得到的,所述基类用于对数据库进行包括增加操作、删除操作、修改操作以及查看操作在内的操作;所述沙箱数据库为灰度测试环境下的数据库,所述正式数据库为生产环境下的数据库;
在所要访问的数据库为沙箱数据库的情况下,所述第一组件根据所述数据访问请求对所述沙箱数据库进行数据访问操作。
2.根据权利要求1所述的灰度测试方法,其特征在于,所述在所要访问的数据库为沙箱数据库的情况下,所述第一组件根据所述数据访问请求对所述沙箱数据库进行数据访问操作,包括:
当所述数据访问操作为修改操作或删除操作时,所述第一组件根据所述数据访问请求对所述沙箱数据库进行修改操作或删除操作,并记录所述修改操作或删除操作。
3.根据权利要求1所述的灰度测试方法,其特征在于,数据库中的数据之间通过自增主键标识符进行关联;
相应的,所述在所要访问的数据库为沙箱数据库的情况下,所述第一组件根据所述数据访问请求对所述沙箱数据库进行数据访问操作,包括:
当所述数据访问操作为增加操作时,所述第一组件根据所述数据访问请求在所述沙箱数据库增加第一数据,在所述正式数据库增加第二数据,所述第一数据与所述第二数据大小相同且具有同一自增主键标识符。
4.根据权利要求3所述的灰度测试方法,其特征在于,所述在所要访问的数据库为沙箱数据库的情况下,所述第一组件根据所述数据访问请求对所述沙箱数据库进行数据访问操作,还包括:
将所述第一数据设置为有效状态,将所述第二数据设置为无效状态。
5.根据权利要求1所述的灰度测试方法,其特征在于,数据库中的数据之间未通过自增主键标识符进行关联;
相应的,所述在所要访问的数据库为沙箱数据库的情况下,所述第一组件根据所述数据访问请求对所述沙箱数据库进行数据访问操作,包括:
当所述数据访问操作为增加操作时,所述第一组件在所述沙箱数据库增加第一数据,并记录所述增加操作。
6.根据权利要求1至5任一项所述的灰度测试方法,其特征在于,方法还包括:
在所要访问的数据库为正式数据库的情况下,所述第一组件根据所述数据访问请求对所述正式数据库进行数据访问操作。
7.一种灰度测试装置,其特征在于,包括:
数据库确定模块,用于在灰度测试中,业务系统的数据访问层中的第一组件根据所接收的数据访问请求与配置信息,确定所要访问的数据库为沙箱数据库或为正式数据库;其中,所述第一组件是根据基类得到的,所述基类用于对数据库进行包括增加操作、删除操作、修改操作以及查看操作在内的操作;所述沙箱数据库为灰度测试环境下的数据库,所述正式数据库为生产环境下的数据库;
沙箱数据库访问模块,用于在所要访问的数据库为沙箱数据库的情况下,所述第一组件根据所述数据访问请求对所述沙箱数据库进行数据访问操作。
8.根据权利要求7所述的灰度测试装置,其特征在于,数据库中的数据之间通过自增主键标识符进行关联;
相应的,所述沙箱数据库访问模块还用于当所述数据访问操作为增加操作时,所述第一组件根据所述数据访问请求在所述沙箱数据库增加第一数据,在所述正式数据库增加第二数据,所述第一数据与所述第二数据大小相同且具有同一自增主键标识符。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述灰度测试方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述灰度测试方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110813719.7A CN113468064A (zh) | 2021-07-19 | 2021-07-19 | 灰度测试方法、装置、电子设备与存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110813719.7A CN113468064A (zh) | 2021-07-19 | 2021-07-19 | 灰度测试方法、装置、电子设备与存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113468064A true CN113468064A (zh) | 2021-10-01 |
Family
ID=77881120
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110813719.7A Pending CN113468064A (zh) | 2021-07-19 | 2021-07-19 | 灰度测试方法、装置、电子设备与存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113468064A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105824745A (zh) * | 2015-01-04 | 2016-08-03 | 中国移动通信集团湖南有限公司 | 一种灰度发布方法及装置 |
CN110837472A (zh) * | 2019-11-06 | 2020-02-25 | 腾讯科技(深圳)有限公司 | 一种浏览器测试方法、装置及计算机设备 |
CN111221593A (zh) * | 2019-12-31 | 2020-06-02 | 五八有限公司 | 一种动态加载方法及装置 |
CN112948278A (zh) * | 2021-05-14 | 2021-06-11 | 太平金融科技服务(上海)有限公司深圳分公司 | 基于灰度数据库的产品灰度发布方法、装置、设备和介质 |
-
2021
- 2021-07-19 CN CN202110813719.7A patent/CN113468064A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105824745A (zh) * | 2015-01-04 | 2016-08-03 | 中国移动通信集团湖南有限公司 | 一种灰度发布方法及装置 |
CN110837472A (zh) * | 2019-11-06 | 2020-02-25 | 腾讯科技(深圳)有限公司 | 一种浏览器测试方法、装置及计算机设备 |
CN111221593A (zh) * | 2019-12-31 | 2020-06-02 | 五八有限公司 | 一种动态加载方法及装置 |
CN112948278A (zh) * | 2021-05-14 | 2021-06-11 | 太平金融科技服务(上海)有限公司深圳分公司 | 基于灰度数据库的产品灰度发布方法、装置、设备和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20180329930A1 (en) | Upgrading systems with changing constraints | |
US7788241B2 (en) | Method for reducing overhead of validating constraints in a database | |
US9002868B2 (en) | Systems and methods for secure access of data | |
JP5162094B2 (ja) | メタデータ駆動型ビジネス・ロジック(metadatadrivenbusinesslogic)処理のための方法および装置 | |
US20150180872A1 (en) | System and method for hierarchical resource permissions and role management in a multitenant environment | |
US9652220B2 (en) | Zero down-time deployment of new application versions | |
US10943027B2 (en) | Determination and visualization of effective mask expressions | |
US20070118572A1 (en) | Detecting changes in data | |
US10678775B2 (en) | Determining integrity of database workload transactions | |
US8615488B2 (en) | Physical replication of database subset to improve availability and reduce resource cost in a cloud environment | |
US11327905B2 (en) | Intents and locks with intent | |
US7908243B2 (en) | Considering transient data also in reports generated based on data eventually stored in a data-warehouse | |
US9063995B2 (en) | Access control list (ACL) generation for replicated data | |
US11704114B2 (en) | Data structures for managing configuration versions of cloud-based applications | |
US10721236B1 (en) | Method, apparatus and computer program product for providing security via user clustering | |
CN115858467A (zh) | 针对键值数据库的文件处理方法、装置、电子设备和介质 | |
CN116467975B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
US9535713B2 (en) | Manipulating rules for adding new devices | |
US20140201136A1 (en) | Process-Oriented Modeling and Flow to Restrict Access to Objects | |
CN113468064A (zh) | 灰度测试方法、装置、电子设备与存储介质 | |
CN115730012A (zh) | 一种数据库脱敏方法及系统 | |
US10402185B2 (en) | Precision locking a database server during the upgrade of a system landscape | |
CN114756293A (zh) | 业务处理方法、装置、计算机设备和存储介质 | |
US11366658B1 (en) | Seamless lifecycle stability for extensible software features | |
US20170161359A1 (en) | Pattern-driven data generator |
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 |