CN113377468A - 一种脚本执行方法、装置、电子设备及存储介质 - Google Patents
一种脚本执行方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113377468A CN113377468A CN202110745716.4A CN202110745716A CN113377468A CN 113377468 A CN113377468 A CN 113377468A CN 202110745716 A CN202110745716 A CN 202110745716A CN 113377468 A CN113377468 A CN 113377468A
- Authority
- CN
- China
- Prior art keywords
- database
- sub
- execution
- target script
- execution result
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供一种脚本执行方法、装置、电子设备及存储介质。该方法包括:在软件运行过程中,获取用于对所述软件的功能进行修改的目标脚本,其中,所述软件的运行环境包括测试数据库和生产数据库;在所述测试数据库中按照指定执行流程执行所述目标脚本,得到执行结果;若所述执行结果满足预设条件,将所述目标脚本转入所述生产数据库,并在所述生产数据库中按照所述指定执行流程执行所述目标脚本,以对所述软件的功能进行修改。本申请可以保证数据脚本在各个数据库中执行时的一致性,且可以自动地在各个数据库中执行数据脚本,提高了数据脚本的执行效率。
Description
技术领域
本申请涉及计算机技术,尤其涉及一种脚本执行方法、装置、电子设备及存储介质。
背景技术
目前,一般软件项目的研发流程会涉及到多套环境,首先是开发环境(DEV)用于开发人员开展相应需求条目的代码开发工作,之后是测试环境(TEST)用于测试人员进行测试,然后是准投产环境(PREPROD)用于试运行,最后是生产环境(PROD)即正式运行环境。而数据库也是应用软件运行在多套环境时所需要的基础软件,每套环境都需要包含对应的数据库。
在项目迭代开发或者应用软件运行的过程中,往往可能需要对数据库中的应用数据进行增、删、改操作以修改软件的部分功能,而这些增、删、改操作会通过在数据库中执行数据脚本的方式来实现。
然而,由于项目存在多套运行环境,因此往往需要在这多套环境中进行同一个数据脚本的执行,而且脚本的实施顺序也需要保持一致。但在开发环境、测试环境和准投产环境下,数据部署均是开发人员通过手工实施。
因此,在整个过程中,开发人员需要重复上述步骤将资源部署至多套环境中。这很大程度上增加了开发人员的工作量,并造成数据脚本执行效率低下。并且这些操作之间相互独立,各个环境上部署资源的一致性无法保证,资源版本也无法进行严格追溯,人工操作也存在很多无法规避的风险。
发明内容
本申请提供一种脚本执行方法、装置、电子设备及存储介质,用以解决用于修改软件功能的数据脚本执行效率低下,且无法保证执行一致性的问题。
第一方面,本申请实施例提供一种脚本执行方法,包括:
在软件运行过程中,获取用于对所述软件的功能进行修改的目标脚本,其中,所述软件的运行环境包括测试数据库和生产数据库;
在所述测试数据库中按照指定执行流程执行所述目标脚本,得到执行结果;
若所述执行结果满足预设条件,将所述目标脚本转入所述生产数据库,并在所述生产数据库中按照所述指定执行流程执行所述目标脚本,以对所述软件的功能进行修改。
在可选的一种实施方式中,所述测试数据库包括多个子数据库,所述在所述测试数据库中按照指定执行流程执行所述目标脚本,得到执行结果,包括:
从所述多个子数据库中获取正在按照所述指定执行流程执行所述目标脚本的当前子数据库;
获取所述当前子数据库针对所述目标脚本的初始执行结果;
若所述初始执行结果为正常,获取所述当前子数据库对应的别名;
若所述当前子数据库对应的别名为指定别名,确定所述执行结果满足预设条件。
在可选的一种实施方式中,所述在所述测试数据库中按照指定执行流程执行所述目标脚本,得到执行结果,还包括:
若所述当前子数据库对应的别名不为指定别名,从所述多个子数据库中获取与所述当前子数据库对应的别名关联的子数据库,作为新的当前子数据库;
获取所述新的当前子数据库针对所述目标脚本的初始执行结果;
若所述新的当前子数据库针对所述目标脚本的初始执行结果为正常,获取所述新的当前子数据库对应的别名;
若所述新的当前子数据库对应的别名为指定别名,确定所述执行结果满足预设条件。
在可选的一种实施方式中,所述在所述测试数据库中按照指定执行流程执行所述目标脚本,得到执行结果,还包括:
若所述初始执行结果为异常,将所述目标脚本重新上传至所述当前子数据库中。
在可选的一种实施方式中,所述多个子数据库包括开发子数据库、测试子数据库以及预生产子数据库,其中,所述开发子数据库、所述测试子数据库、所述预生产子数据库、所述生产数据库之间通过别名进行执行顺序的关联,所述执行顺序为所述开发子数据库、所述测试子数据库、所述预生产子数据库以及所述生产数据库。
在可选的一种实施方式中,所述测试数据库包括开发子数据库、测试子数据库以及预生产子数据库,所述在所述测试数据库中按照指定执行流程执行所述目标脚本,得到执行结果,包括:
在所述开发子数据库中按照所述指定执行流程执行所述目标脚本,得到第一执行结果;
若所述第一执行结果为正常,在所述测试子数据库中按照指定执行流程执行所述目标脚本,得到第二执行结果;
若所述第二执行结果为正常,在所述预生产子数据库中按照指定执行流程执行所述目标脚本,得到第三执行结果;
若所述第三执行结果为正常,确定所述执行结果满足预设条件。
在可选的一种实施方式中,所述在所述测试数据库中按照指定执行流程执行所述目标脚本,得到执行结果,包括:
在所述测试数据库中依次按照数据资源准备、数据前备、数据执行以及数据后备的流程执行所述目标脚本;
若所述数据资源准备、所述数据前备、所述数据执行以及所述数据后备中任一流程出错,确定所述执行结果不满足所述预设条件。
在可选的一种实施方式中,所述获取用于对所述软件的功能进行修改的目标脚本,包括:
响应于用于用户做出的更变操作,生成与所述更变操作对应的目标脚本,其中,所述更变操作包括删除操作、增加操作、更改操作中的至少一种。
第二方面,本申请实施例提供一种脚本执行装置,所述装置包括:
目标脚本获取模块,用于在软件运行过程中,获取用于对所述软件的功能进行修改的目标脚本,其中,所述软件的运行环境包括测试数据库和生产数据库;
预执行模块,用于在所述测试数据库中按照指定执行流程执行所述目标脚本,得到执行结果;
执行模块,用一个若所述执行结果满足预设条件,将所述目标脚本转入所述生产数据库,并在所述生产数据库中执行所述目标脚本,以对所述软件的功能进行修改。
第三方面,本申请实施例提供一种电子设备,包括:存储器和处理器;
存储器,用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行上述实施例提供的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现上述实施例提供的方法。
第五方面,本申请实施例提供一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序被处理器执行时实现上述实施例提供的方法。
本申请提供的脚本执行方法、装置、电子设备及存储介质,通过在软件运行过程中,获取用于对软件的功能进行修改的目标脚本,其中,软件的运行环境包括测试数据库和生产数据库,然后,在测试数据库中按照指定执行流程执行目标脚本,得到执行结果。最后,若执行结果满足预设条件,将目标脚本转入生产数据库,并在生产数据库中按照指定执行流程执行目标脚本,以对软件的功能进行修改。也就是说,在各个数据库中,目标脚本都是按照执行流程执行的,从而保证了目标脚本在各个数据库中执行时的一致性。另外,当目标脚本在测试数据库的执行结果满足预设条件时,可以自动跳转到生产数据库执行该目标脚本,实现了目标脚本在各个数据库中的自动化执行,提升了执行效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请实施例提供的相关技术中软件项目的研发流程示意图;
图2为本申请实施例提供的相关技术中开发、运维人员执行数据变更的过程示意图;
图3为本申请实施例提供的一种脚本执行方法的流程示意图;
图4为本申请实施例提供的拓扑图编辑界面的界面示意图;
图5为本申请实施例提供的另一种脚本执行方法的流程示意图;
图6为根据图5实施例提供的步骤215至步骤218的流程示意图;
图7为本申请实施例提供的通过数据库部署工具实现数据更变的执行过程示意图;
图8为本申请实施例提供的数据库别名配置界面的界面示意图;
图9为本申请实施例提供的数据脚本界面的界面示意图;
图10为本申请实施例提供的又一种脚本执行方法的流程示意图;
图11为本申请实施例提供的一种脚本执行装置的结构示意图;
图12为本申请实施例提供的一种电子设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
如图1所示,目前一般软件项目的研发流程如上图所示。整个迭代过程中会存在多套环境,首先是开发环境(DEV)用于开发人员开展相应需求条目的代码开发工作,之后是测试环境(TEST)用于测试人员进行测试,然后是准投产环境(PREPROD)用于试运行,最后是生产环境(PROD)即正式运行环境。而数据库也是应用软件运行在多套环境时所需要的基础软件,每套环境都需要包含对应的数据库。
在项目迭代开发或者应用软件运行的过程中,往往可能需要对数据库中的应用数据进行增、删、改操作以修改软件的部分功能,而这些增、删、改操作会通过在数据库中执行数据脚本的方式来实现。由于项目存在多套运行环境,因此往往需要在这多套环境中进行同一个数据脚本的执行,而且脚本的实施顺序也需要保持一致。
就数据变更而言,相关技术中已经实现了生产环境的数据部署自动化,但在开发环境、测试环境和准投产环境下,数据部署均是开发人员通过手工实施。具体步骤如下:开发人员需要登录数据库客户端,手工编排作业步骤,然后从FTP搜索并拷贝脚本,填充到编排好的任务中,再按照作业步骤顺序手动逐条执行。在整个过程中,开发人员需要重复上述步骤将资源部署至三套环境中。这完全增加了开发人员的工作量、效率低下。并且这些操作之间相互独立,各个环境上部署资源的一致性无法保证,资源版本也无法进行严格追溯,人工操作也存在很多无法规避的风险。
具体地,如图2所示,在项目迭代过程中涉及的多套环境的数据脚本执行时,开发、运维人员执行数据变更的过程大致如下:可以看出,目前开发、运维人员一般通过使用数据从图中库软件(sqlplus等客户端),登陆或连接到不同运行环境的数据库,DEV对应开发环境数据库、TEST对应测试环境数据库、PREPROD对应准生产环境数据库、PROD对应生产环境数据库,实施人员在进行数据脚本的拷贝后,手动点击执行。点击执行后,客户端将根据输入的数据脚本,连接数据库并执行,返回执行结果。
示例性地,在通过数据库客户端进行数据脚本执行的过程中,实施人员需进行如下的手工操作:
一个示例中,用户打开数据库客户端软件,登录或连接对应的环境的数据库。
在本示例中,实施人员在连接数据库时需输入数据库名称和数据库密码,在实际操作时,会存在输错数据库名称或密码的风险。该风险会导致连接不上或连接错数据库,影响实施的执行效率和的执行错数据库环境的严重后果。
一个示例中,用户需拷贝需要实施的数据脚本,点击按钮以进行执行。
在本示例中,因为在多环境的执行过程中,实施人员存在多次拷贝数据脚本的手工操作,在手工拷贝时,易发生拷贝出错、遗漏等情况,最终都会影响数据脚本的执行结果。
可见,在整个过程中,实施人员需要重复的在四套应用软件运行环境中进行相同的数据变更操作。这种人工操作方式实施效率低下,增加了实施人员的工作量。而且由于各环境之前的数据变更操作相互独立,因此数据脚本的一致性无法保证,数据制品也无法进行严格追溯,同时手工操作也存在很多无法规避的风险。
本申请实施例提供一种脚本执行方法、装置、电子设备及存储介质,旨在解决现有技术的如上技术问题,本申请实施例提供的脚本执行方法、装置、电子设备及存储介质可以保证数据脚本在各个数据库中执行时的一致性,且可以自动地在各个数据库中执行数据脚本,提高了数据脚本的执行效率。
下面对申请实施例所涉及的专业数据进行解释:
数据变更:是指数据变更指的是对数据库中应用数据进行变更的操作,主要指对数据的增、删、改操作,通常通过执行sql脚本的方式完成。
数据制品:是指数据变更执行时的sql脚本文件,连接数据库后,基于数据制品实现对数据的增、删、改操入生产数据库作业步。一个作业步表示一个自动化的操作,“数据执行”这个作业步表示对数据库实施数据脚本的执行。
作业编排:是指通过拖拽作业步的方式,将数据变更的实施步骤进行编排,实现数据变更过程的可视化。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图3为本申请实施例提供的一种脚本执行方法的流程示意图,如图3所示,本实施例提供的方法,包括:
101、在软件运行过程中,获取用于对软件的功能进行修改的目标脚本,其中,软件的运行环境包括测试数据库和生产数据库。
示例性地,本实施例的执行主体可以是电子设备、或者终端设备、或者可以执行数据脚本的处理装置或设备、或者其他可以执行本实施例的装置或设备,不做限制。本实施例以执行主体为电子设备进行说明。
在一些实施方式中,用户可以预先通过电子设备中安装的数据库部署工具进行目标脚本的配置和保存,在软件运行过程中,电子设备可以调用并执行该目标脚本以对软件的部分功能进行修改。例如,对软件运行的数据库中的应用数据进行增、删、改等操作,以修改软件的部分功能。
其中,测试数据库可以包括开发环境(DEV)对应的数据库、测试环境(TEST)对应的数据库、以及预生产环境(PREPROD)对应的数据库。其中,开发环境主要用于开发人员开展相应需求条目的代码开发工作,测试环境主要用于测试人员对修改后的软件进行测试,预生产环境主要用于对修改后的软件进行试运行。
其中,生产数据库对应了软件的生产环境,即修改后的软件正式运行的环境。
102、在测试数据库中按照指定执行流程执行目标脚本,得到执行结果。
在一些实施方式中,步骤102的具体实施方式:首先,在测试数据库中依次按照数据资源准备、数据前备、数据执行以及数据后备的流程执行目标脚本。
作为一种示例,如图4所示,目标脚本的指定执行流程可以通过拓扑图编排的方式来实现。具体地,用户可以预先通过数据库部署工具的拓扑图编辑界面对指定执行流程进行编辑,在拓扑图编辑界面用户可以选取数据资源准备、数据前备、数据执行以及数据后备四个流程对应的图标,并通过在拓扑图编辑界面对图标进行拖拽的方式,编辑该四个流程的执行顺序,最终,编辑好的指定执行流程依次为数据资源准备、数据前备、数据执行以及数据后备。其中,数据资源准备包括目标脚本的录入、填充,数据前备包括对目标脚本在执行前的备份、数据执行包括对目标脚本的执行、数据后备包括对目标脚本在执行后的备份。
其次,若数据资源准备、数据前备、数据执行以及数据后备中任一流程出错,确定执行结果不满足预设条件。
作为一种示例,电子设备可以实施检测数据资源准备、数据前备、数据执行以及数据后备中各个流程的进行情况,若这四个流程中所有流程都没有出现报错的情况,则可以确定执行结果满足预设条件。若数据资源准备、数据前备、数据执行以及数据后备中任一流程出错,确定执行结果不满足预设条件。
可以理解的是,测试数据库包括开发环境对应的数据库、测试环境对应的数据库、以及预生产环境对应的数据库时,对在测试数据库中按照指定执行流程执行目标脚本,包括在开发环境对应的数据库、测试环境对应的数据库、以及预生产环境对应的数据库中按照指定执行流程执行目标脚本。当这三个数据库中的每个数据库执行数据资源准备、数据前备、数据执行以及数据后备这四个流程都没有出错时,可以确定执行结果满足预设条件。
103、若执行结果满足预设条件,将目标脚本转入生产数据库,并在生产数据库中按照指定执行流程执行目标脚本,以对软件的功能进行修改。
在一些实施方式中,测试数据库和生产数据库可以预先建立关联,当执行结果满足预设条件时,表明目标脚本在测试数据库中进行测试时的测试结果为通过,此时可以自动连接与测试数据库关联的入生产数据库,并通过复用指定执行流程的拓扑图并填充目标脚本,在生产数据库中对目标脚本进行执行,从而实现对软件的功能进行修改。
本实施例中,通过在软件运行过程中,获取用于对软件的功能进行修改的目标脚本,其中,软件的运行环境包括测试数据库和生产数据库,然后,在测试数据库中按照指定执行流程执行目标脚本,得到执行结果。最后,若执行结果满足预设条件,将目标脚本转入生产数据库,并在生产数据库中按照指定执行流程执行目标脚本,以对软件的功能进行修改。也就是说,在各个数据库中,目标脚本都是按照执行流程执行的,从而保证了目标脚本在各个数据库中执行时的一致性。另外,当目标脚本在测试数据库的执行结果满足预设条件时,可以自动跳转到生产数据库执行该目标脚本,实现了目标脚本在各个数据库中的自动化执行,提升了执行效率。
图5为本申请实施例提供的另一种脚本执行方法的流程示意图,如图5所示,本实施例提供的方法,包括:
201、在软件运行过程中,获取用于对软件的功能进行修改的目标脚本,其中,软件的运行环境包括测试数据库和生产数据库,测试数据库包括多个子数据库。
在一些实施方式中,步骤201的具体实施方式包括:响应于用于用户做出的更变操作,生成与更变操作对应的目标脚本,其中,更变操作包括删除操作、增加操作、更改操作中的至少一种。
作为一种示例,电子设备上可以显示用于修改软件功能的界面,该界面中可以包括用于对软件功能进行删除、图标、更改等图标,通过对上述图标做出操作(例如点击某个软件功能的删除图标),从而可以实现与该图标的对应的操作,当电子设备检测到该操作时,可以生成与该操作对应的目标脚本。可选的,删除操作、增加操作、更改操作包括但不限于单次点击、多次点击、长按、滑动等操作。
202、从多个子数据库中获取正在按照指定执行流程执行目标脚本的当前子数据库。
在一些实施方式中,多个子数据库包括开发子数据库、测试子数据库以及预生产子数据库,其中,开发子数据库对应开发环境、测试子数据库对应测试环境,预生产子数据库对应预生产环境,其中,开发子数据库、测试子数据库、预生产子数据库、生产数据库之间通过别名进行执行顺序的关联,执行顺序为开发子数据库、测试子数据库、预生产子数据库以及生产数据库。其中,多个子数据库可以预先配置有数据库别名(以下可简称别名)。其中,数据库别名相当于给数据库另取一个名字,此别名可代替数据库的真实路径、名称,用户在编程中不必考虑数据库存放在何处,如果数据库的绝对路径或名称修改了,只需修改别名的配置信息即可,用户的程序无需做任何修改。因此,别名与数据库对应,用户可以通过别名找到对应的数据库。
作为一种示例,若电子设备检测到正在按照指定执行流程执行目标脚本的为预生产子数据库,则可以将预生产子数据库确定为当前子数据库。
203、获取当前子数据库针对目标脚本的初始执行结果。
承接上述示例,电子设备可以检测目标脚本按照指定执行流程在预生产子数据库中执行时的执行结果,从而得到初始执行结果。其中,初始执行结果的具体获取方式可以参考上述实施例的步骤102中通过检测数据资源准备、数据前备、数据执行以及数据后备中各个流程是否出错的来判断执行结果的方法,当电子设备检测到在预生产子数据库中依次执行上述四个流程时,每个流程都没有出现报错信息,则确定初始执行结果为正常,否则,确定初始执行结果为异常。
204、若初始执行结果为正常,获取当前子数据库对应的别名。
承接上述示例,由于每个子数据库预先配置有别名,若确定初始执行结果为正常,则可以直接得到预生产子数据库对应的别名。
在一些实施方式中,若初始执行结果为异常,将目标脚本重新上传至当前子数据库中。
205、若当前子数据库对应的别名为指定别名,确定执行结果满足预设条件。
承接上述示例,若指定别名为预生产子数据库对应的别名,那么可以确定执行结果满足预设条件。
在一些实施方式中,如图6所示,该方法还包括:
215、若当前子数据库对应的别名不为指定别名,从多个子数据库中获取与当前子数据库对应的别名关联的子数据库,作为新的当前子数据库。
作为一种示例,例如当前子数据库对应的别名为测试子数据库对应的别名,指定别名为预生产子数据库对应的别名,那么可以通过别名的关联顺序确定,与测试子数据库关联的下一个数据库为预生产子数据库,因此可以将预生产子数据库作为新的当前子数据库。
216、获取新的当前子数据库针对目标脚本的初始执行结果。
承接上述示例,可以在预生产子数据库中按照指定执行流程执行目标脚本,并重新得到初始执行结果。
217、若新的当前子数据库针对目标脚本的初始执行结果为正常,获取新的当前子数据库对应的别名。
218、若新的当前子数据库对应的别名为指定别名,确定执行结果满足预设条件。
承接上述示例,由于指定别名为预生产子数据库对应的别名,所以可以确定执行结果满足预设条件。
206、若执行结果满足预设条件,将目标脚本转入生产数据库,并在生产数据库中按照指定执行流程执行目标脚本,以对软件的功能进行修改。
其中,步骤206的具体实施方式可以参考步骤103,故不在此赘述。
下面将本实施例的各步骤作为整体进行说明,在实际应用中,用户可以使用数据库部署工具来实现数据库中的数据更变,其中,数据库部署工具可以为星云流水线,其具有一站式部署的功能。如图7所示,该方法的具体执行方式可以如下:
第一步,用户可以通过数据库部署工具来配置数据库别名,以将四套运行环境对应数据库(dev库、test库、preprod库、prod库)进行有效关联。作为一种示例,如图8所示,数据库别名配置界面可以包括各个数据库的别名输入框,以供用户在别名输入框中输入数据库别名。
第二步,用户可以进入数据库部署工具的数据脚本界面,在dev环境下选择好数据库别名,通过别名关联各个数据库,然后,工具将自动对应dev环境的数据库,即dev库。用户可以继续选择对应dev库下的数据制品,其中,数据制品可以是包括目标脚本的数据集合。另外,用户可以通过在拓扑图编辑界面编排作业步骤,并填充数据脚本来确定脚本执行的先后顺序,即设定目标脚本的指定执行流程。作为一种示例,如图9所示,数据脚本界面包括编辑任务、数据脚本、程序配置、作业编排、执行、转单等配置界面,用户可以在不同的配置界面配置不同的数据,其中,在数据脚本的配置界面可以显示任务单类型、数据库别名、当前环境等信息,还可以显示用于晋级或重置当前环境的按键。
第三步,数据库部署工具可以自动化实施第三步的作业编排拓扑图,从而实现对目标脚本的预执行。其中,预执行指的是目标脚本在dev库、test库、preprod库中某一个子数据库中执行的过程。例如目标脚本在test库执行的过程。
第四步,如果在当前子数据库中目标脚本预执行的结果为成功,那么可以判断当前子数据库是否是preprod库,如果是preprod库,那么可以表明到了最高级别的测试库已经测试通过。可以根据关联的别名直接将目标脚本转单到生产环境(prod库)中进行执行,其中,将目标脚本转单到生产环境中时,还会将编排好的拓扑图也一同转入生产环境。如果不是preprod库,则可以回到第二步,用户可以在数据脚本界面点击晋级按钮,或者系统自动晋级,示例性地,将当前运行环境DEV晋级到TEST环境,晋级后为test环境,系统会保留已经编排的拓扑图和拓扑图中作业步和资源脚本的对应关系,但是会自动将数据库信息、数据资源包路径、以及作业步骤中填充的脚本替换为test环境对应的。晋级到preprod库的方式同上。晋级到test环境后,可直接进入执行界面在测试环境的test库上执行脚本,不需要重复新建任务单、编排作业步等操作。
如果在当前子数据库中目标脚本预执行的结果没有成功,则可以重新上传数据资源包到第二步中的数据脚本界面,以便重新执行。其中,数据资源包包括已设置的目标脚本、编排好的拓扑图、以及配置好的数据库别名等。
可选地,为了保证多套测试环境部署的制品一致,系统不支持在test库和preprod库选包,只能由dev库的资源包映射。同时,系统可以配置有重置功能,在任何环境点击重置按钮将会回到dev环境,保持已经选择的数据库别名和作业步骤的编排,执行人员可以在此基础上进行修改,执行后再次晋级。三套测试环境都执行完成后可以转单到生产库,生产环境同样将复用之前的资源包和编排拓扑图,来实现测试环境和生产环境贯通全流程工具实施。
其中,星云流水线的一站式部署方式,让项目组不用在多套测试环境上重复编排作业步骤,也保证了在各个环境上部署资源的一致性。经过了充分的测试,测试质量也得到了保证,同时在流水线上实现了多套测试环境全流程贯通。
可见,本实施例提供的脚本执行方法通过配置数据库别名的方式,将多套环境的数据库关联,并统一管理数据库用户与密码。该方式能有效避免手工连接数据库时,数据库地址输入错误导致的连接失败和连接出错。采用了统一的制品管理方法,将数据脚本存放于制品库中,通过多套环境的制品库来对应多套项目环境,保证了数据脚本在不同环境执行时的有效流转,避免数据脚本“落地”,规避了人工拷贝数据脚本带来的风险。并且在多套环境进行数据脚本的执行时,通过复用统一的操作过程的拓扑图,实现整个操作过程的一致性,主要包括数据脚本执行步骤的一致性和数据脚本源的一致性。使用“晋级”功能,从开发(DEV)环境升级到测试(TEST)环境时,测试(TEST)环境将复用开发(DEV)环境执行数据脚本时的操作过程(拓扑图)、数据脚本,并且依据数据库别名配置,同步将数据库升级到对应的TEST库。通过自动化的执行,效保证了在多套环境下数据脚本操作过程的一致性。
图10为本申请实施例提供的又一种脚本执行方法的流程示意图,如图10所示,本实施例提供的方法,包括:
301、在软件运行过程中,获取用于对软件的功能进行修改的目标脚本,其中,软件的运行环境包括测试数据库和生产数据库,测试数据库包括开发子数据库、测试子数据库以及预生产子数据库。
302、在开发子数据库中按照指定执行流程执行目标脚本,得到第一执行结果。
303、若第一执行结果为正常,在测试子数据库中按照指定执行流程执行目标脚本,得到第二执行结果。
其中,确定第一执行结果的具体方式可以参考步骤203。
在一些实施方式中,若第一执行结果为异常,可以重新将目标脚本上传到开发子数据库中,并在开发子数据库中重新执行该目标脚本。
304、若第二执行结果为正常,在预生产子数据库中按照指定执行流程执行目标脚本,得到第三执行结果。
其中,确定第二执行结果的具体方式可以参考步骤203。
在一些实施方式中,若第二执行结果为异常,可以重新将目标脚本上传到测试子数据库中,并在测试子数据库中重新执行该目标脚本。
305、若第三执行结果为正常,确定执行结果满足预设条件。
其中,确定第一执行结果的具体方式可以参考步骤203。
在一些实施方式中,若第三执行结果为异常,可以重新将目标脚本上传到预生产子数据库中,并在预生产子数据库中重新执行该目标脚本。
306、若执行结果满足预设条件,将目标脚本转入生产数据库,并在生产数据库中按照指定执行流程执行目标脚本,以对软件的功能进行修改。
在本实施例中,通过测试数据库包括开发子数据库、测试子数据库以及预生产子数据库,并在开发子数据库中按照指定执行流程执行目标脚本,得到第一执行结果;若第一执行结果为正常,在测试子数据库中按照指定执行流程执行目标脚本,得到第二执行结果;若第二执行结果为正常,在预生产子数据库中按照指定执行流程执行目标脚本,得到第三执行结果;若第三执行结果为正常,确定执行结果满足预设条件,从而让三个子数据库按按照预设执行顺序逐个执行目标脚本,从而能够高效地判断执行结果是否满足预设条件。
图11为本申请实施例提供的一种脚本执行装置的结构示意图,如图11所示,该装置包括:
目标脚本获取模块31,用于在软件运行过程中,获取用于对软件的功能进行修改的目标脚本,其中,软件的运行环境包括测试数据库和生产数据库。
预执行模块32,用于在测试数据库中按照指定执行流程执行目标脚本,得到执行结果。
执行模块33,用一个若执行结果满足预设条件,将目标脚本转入生产数据库,并在生产数据库中执行目标脚本,以对软件的功能进行修改。
在一些实施方式中,测试数据库包括多个子数据库,预执行模块32,包括:
第一当前子数据库确定单元,用于从多个子数据库中获取正在按照指定执行流程执行目标脚本的当前子数据库。
第一初始执行结果获取单元,用于获取当前子数据库针对目标脚本的初始执行结果。
第一别名获取单元,用于若初始执行结果为正常,获取当前子数据库对应的别名。
第一确定单元,用于若当前子数据库对应的别名为指定别名,确定执行结果满足预设条件。
在一些实施方式中,预执行模块32,还包括:
第二当前子数据库确定单元,用于若当前子数据库对应的别名不为指定别名,从多个子数据库中获取与当前子数据库对应的别名关联的子数据库,作为新的当前子数据库。
第二初始执行结果获取单元,用于获取新的当前子数据库针对目标脚本的初始执行结果。
第二别名获取单元,用于若新的当前子数据库针对目标脚本的初始执行结果为正常,获取新的当前子数据库对应的别名。
第二确定单元,用于若新的当前子数据库对应的别名为指定别名,确定执行结果满足预设条件。
在一些实施方式中,预执行模块32,还用于若初始执行结果为异常,将目标脚本重新上传至当前子数据库中。
在一些实施方式中,多个子数据库包括开发子数据库、测试子数据库以及预生产子数据库,其中,开发子数据库、测试子数据库、预生产子数据库、生产数据库之间通过别名进行执行顺序的关联,执行顺序为开发子数据库、测试子数据库、预生产子数据库以及生产数据库。
在一些实施方式中,测试数据库包括开发子数据库、测试子数据库以及预生产子数据库预执行模块32,还用于:
在开发子数据库中按照指定执行流程执行目标脚本,得到第一执行结果。
若第一执行结果为正常,在测试子数据库中按照指定执行流程执行目标脚本,得到第二执行结果。
若第二执行结果为正常,在预生产子数据库中按照指定执行流程执行目标脚本,得到第三执行结果。
若第三执行结果为正常,确定执行结果满足预设条件。
在一些实施方式中,预执行模块32,具体用于:
在测试数据库中依次按照数据资源准备、数据前备、数据执行以及数据后备的流程执行目标脚本。
若数据资源准备、数据前备、数据执行以及数据后备中任一流程出错,确定执行结果不满足预设条件。
在一些实施方式中,目标脚本获取模块31,具体用于:
响应于用于用户做出的更变操作,生成与更变操作对应的目标脚本,其中,更变操作包括删除操作、增加操作、更改操作中的至少一种。
示例性地,本实施例可以参见上述方法实施例,其原理和技术效果类似,不再赘述。
图12是本申请实施例提供的一种电子设备的结构示意图,如图12所示,电子设备包括存储器43和处理器42。
存储器43,用于存储处理器42可执行指令的存储器。
处理器42被配置为执行上述实施例提供的方法。
电子设备还包括接收器40和发送器41。接收器40用于接收外部设备发送的指令和数据,发送器41用于向外部设备发送指令和数据。
其中,该电子设备可以是移动电话,计算机、平板电脑等等。
具体地,该电子设备还可以包括以下一个或多个组件:处理组件,电源组件,多媒体组件,输入/输出(I/O)接口。处理组件可以相当于上述实施例的处理器42,
处理组件通常控制电子设备的整体操作,诸如与显示和记录操作相关联的操作。处理组件可以包括一个或多个处理器来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件可以包括一个或多个模块,便于处理组件和其他组件之间的交互。例如,处理组件可以包括多媒体模块,以方便多媒体组件和处理组件之间的交互。
存储器被配置为存储各种类型的数据以支持在电子设备的操作。这些数据的示例包括用于在电子设备上操作的任何应用程序或方法的指令等。存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器等。
电源组件为电子设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电子设备生成、管理和分配电力相关联的组件。
多媒体组件包括在所述电子设备和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
I/O接口为处理组件和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器,上述指令可由电子设备的处理器执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现上述实施例提供的方法。
本申请实施例提供了一种计算机程序产品,计算机程序产品包括:计算机程序,计算机程序存储在可读存储介质中,电子设备的至少一个处理器可以从可读存储介质读取计算机程序,至少一个处理器执行计算机程序使得电子设备执行上述任一实施例提供的方案。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。
Claims (12)
1.一种脚本执行方法,其特征在于,包括:
在软件运行过程中,获取用于对所述软件的功能进行修改的目标脚本,其中,所述软件的运行环境包括测试数据库和生产数据库;
在所述测试数据库中按照指定执行流程执行所述目标脚本,得到执行结果;
若所述执行结果满足预设条件,将所述目标脚本转入所述生产数据库,并在所述生产数据库中按照所述指定执行流程执行所述目标脚本,以对所述软件的功能进行修改。
2.根据权利要求1所述的方法,其特征在于,所述测试数据库包括多个子数据库,所述在所述测试数据库中按照指定执行流程执行所述目标脚本,得到执行结果,包括:
从所述多个子数据库中获取正在按照所述指定执行流程执行所述目标脚本的当前子数据库;
获取所述当前子数据库针对所述目标脚本的初始执行结果;
若所述初始执行结果为正常,获取所述当前子数据库对应的别名;
若所述当前子数据库对应的别名为指定别名,确定所述执行结果满足预设条件。
3.根据权利要求2所述的方法,其特征在于,所述在所述测试数据库中按照指定执行流程执行所述目标脚本,得到执行结果,还包括:
若所述当前子数据库对应的别名不为指定别名,从所述多个子数据库中获取与所述当前子数据库对应的别名关联的子数据库,作为新的当前子数据库;
获取所述新的当前子数据库针对所述目标脚本的初始执行结果;
若所述新的当前子数据库针对所述目标脚本的初始执行结果为正常,获取所述新的当前子数据库对应的别名;
若所述新的当前子数据库对应的别名为指定别名,确定所述执行结果满足预设条件。
4.根据权利要求2所述的方法,其特征在于,所述在所述测试数据库中按照指定执行流程执行所述目标脚本,得到执行结果,还包括:
若所述初始执行结果为异常,将所述目标脚本重新上传至所述当前子数据库中。
5.根据权利要求2所述的方法,其特征在于,所述多个子数据库包括开发子数据库、测试子数据库以及预生产子数据库,其中,所述开发子数据库、所述测试子数据库、所述预生产子数据库、所述生产数据库之间通过别名进行执行顺序的关联,所述执行顺序为所述开发子数据库、所述测试子数据库、所述预生产子数据库以及所述生产数据库。
6.根据权利要求1所述的方法,其特征在于,所述测试数据库包括开发子数据库、测试子数据库以及预生产子数据库,所述在所述测试数据库中按照指定执行流程执行所述目标脚本,得到执行结果,包括:
在所述开发子数据库中按照所述指定执行流程执行所述目标脚本,得到第一执行结果;
若所述第一执行结果为正常,在所述测试子数据库中按照指定执行流程执行所述目标脚本,得到第二执行结果;
若所述第二执行结果为正常,在所述预生产子数据库中按照指定执行流程执行所述目标脚本,得到第三执行结果;
若所述第三执行结果为正常,确定所述执行结果满足预设条件。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述在所述测试数据库中按照指定执行流程执行所述目标脚本,得到执行结果,包括:
在所述测试数据库中依次按照数据资源准备、数据前备、数据执行以及数据后备的流程执行所述目标脚本;
若所述数据资源准备、所述数据前备、所述数据执行以及所述数据后备中任一流程出错,确定所述执行结果不满足所述预设条件。
8.根据权利要求1-6任一项所述的方法,其特征在于,所述获取用于对所述软件的功能进行修改的目标脚本,包括:
响应于用于用户做出的更变操作,生成与所述更变操作对应的目标脚本,其中,所述更变操作包括删除操作、增加操作、更改操作中的至少一种。
9.一种脚本执行装置,其特征在于,所述装置包括:
目标脚本获取模块,用于在软件运行过程中,获取用于对所述软件的功能进行修改的目标脚本,其中,所述软件的运行环境包括测试数据库和生产数据库;
预执行模块,用于在所述测试数据库中按照指定执行流程执行所述目标脚本,得到执行结果;
执行模块,用一个若所述执行结果满足预设条件,将所述目标脚本转入所述生产数据库,并在所述生产数据库中执行所述目标脚本,以对所述软件的功能进行修改。
10.一种电子设备,其特征在于,包括:存储器和处理器;
存储器,用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行如权利要求1-8任一项所述的方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1-8任一项所述的方法。
12.一种计算机程序产品,其特征在于,包括计算机程序,该计算机程序被处理器执行时实现权利要求1-8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110745716.4A CN113377468A (zh) | 2021-06-30 | 2021-06-30 | 一种脚本执行方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110745716.4A CN113377468A (zh) | 2021-06-30 | 2021-06-30 | 一种脚本执行方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113377468A true CN113377468A (zh) | 2021-09-10 |
Family
ID=77580587
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110745716.4A Pending CN113377468A (zh) | 2021-06-30 | 2021-06-30 | 一种脚本执行方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113377468A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115827468A (zh) * | 2022-12-12 | 2023-03-21 | 上海秉玉软件技术服务有限公司 | 基于顺序执行的sql脚本管理方法和系统 |
-
2021
- 2021-06-30 CN CN202110745716.4A patent/CN113377468A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115827468A (zh) * | 2022-12-12 | 2023-03-21 | 上海秉玉软件技术服务有限公司 | 基于顺序执行的sql脚本管理方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9940225B2 (en) | Automated error checking system for a software application and method therefor | |
CN112882700B (zh) | iOS应用程序构建方法及装置、电子设备及存储介质 | |
US9848277B2 (en) | High-speed application for installation on mobile devices for permitting remote configuration of such mobile devices | |
US10877875B2 (en) | Systems and methods for automated programmatic test generation and software validation | |
US20150100829A1 (en) | Method and system for selecting and executing test scripts | |
US20150100832A1 (en) | Method and system for selecting and executing test scripts | |
CN112270149B (zh) | 验证平台自动化集成方法、系统及电子设备和存储介质 | |
US11709766B2 (en) | Mocking robotic process automation (RPAactivities for workflow testing | |
US20150100830A1 (en) | Method and system for selecting and executing test scripts | |
US20150100831A1 (en) | Method and system for selecting and executing test scripts | |
US11138097B2 (en) | Automated web testing framework for generating and maintaining test scripts | |
CN110659198A (zh) | 应用程序的测试用例执行方法、装置和软件测试系统 | |
CN112231206A (zh) | 应用程序测试的脚本编辑方法、计算机可读存储介质及测试平台 | |
US20210026756A1 (en) | Deriving software application dependency trees for white-box testing | |
CN113377468A (zh) | 一种脚本执行方法、装置、电子设备及存储介质 | |
US9298428B2 (en) | Graphical user interface editor that displays live data during editing | |
US11301246B2 (en) | Automatically generating continuous integration pipelines | |
CN112328333B (zh) | 内置程序操作方法、装置、计算机设备和存储介质 | |
CN111858302B (zh) | 小程序的测试方法、装置、电子设备及存储介质 | |
CN112836220B (zh) | 一种云中心环境检查方法 | |
US20240086157A1 (en) | Visual generation of software deployment pipelines using recommendations of development and operations blueprints | |
US20240192974A1 (en) | Simulation of one or more pipeline jobs in a software deployment pipeline | |
Marttila | Automating Protective Relay Software Updates | |
Salo | Development of System Component Testing Tool Endeavour for New Message Format | |
CN115543807A (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 |