CN107688531B - 数据库集成测试方法、装置、计算机设备及存储介质 - Google Patents
数据库集成测试方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN107688531B CN107688531B CN201710470644.0A CN201710470644A CN107688531B CN 107688531 B CN107688531 B CN 107688531B CN 201710470644 A CN201710470644 A CN 201710470644A CN 107688531 B CN107688531 B CN 107688531B
- Authority
- CN
- China
- Prior art keywords
- database
- script
- perform script
- perform
- file
- 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
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
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种数据库集成测试方法、装置、计算机设备及存储介质。其中,数据库集成测试方法具体包括以下步骤:接收新版本数据库文件,获取所述新版本数据库文件对应的基线数据库信息,根据所述基线数据库信息查找所述新版本数据库文件对应的数据库基线数据,将当前数据库中的数据替换为所述数据库基线数据,从所述新版本数据库文件中抽取执行脚本文件,将所述执行脚本文件中的执行脚本部署在经过数据替换后的所述当前数据库上,部署完成后运行所述执行脚本。采用本方法能够降低脚本部署难度和测试执行时间。
Description
技术领域
本发明涉及数据库集成技术领域,特别是涉及一种数据库集成测试方法、装置、计算机设备及存储介质。
背景技术
数据库在移交、发布的测试过程中,脚本执行异常的情况较为频繁发生,脚本执行出错后,需要修改数据库文件并重新验证修改后脚本的正确性。目前,在测试出现异常时,通常采用将数据库中的数据清空,把从建库到当前版本的所有历史数据和脚本重新部署的方式。并且,在重新进行脚本验证时,需要将从建库到当前版本的所有脚本都执行一遍。采用上述方法所有脚本需要统一维护部署,脚本部署难度大,且数据库集成测试的执行时间长,测试效率低。
发明内容
基于此,有必要针对上述数据库集成测试过程中存在的脚本部署难度大、测试执行时间长的问题,提供一种数据库集成测试方法、装置、计算机设备及存储介质。
一种数据库集成测试方法,所述方法包括以下步骤:
接收新版本数据库文件;
获取所述新版本数据库文件对应的基线数据库信息,根据所述基线数据库信息查找所述新版本数据库文件对应的数据库基线数据;
将当前数据库中的数据替换为所述数据库基线数据;
从所述新版本数据库文件中抽取执行脚本文件,将所述执行脚本文件中的执行脚本部署在经过数据替换后的所述当前数据库上,部署完成后运行所述执行脚本。
上述数据库集成测试方法,在接收到提交的需要进行测试的新版本数据库文件时,获取新版本数据库文件对应的基线数据库信息,并查找与其对应的已备份的数据库基线数据,将当前完成测试的数据库中的数据替换为查找到的数据库基线数据,以实现将数据库中的数据回滚到基线状态,无需从头创建空库并构建数据库,并根据预设规则从新版本数据库文件中抽取并自动部署新版本的执行脚本文件,所需部署的脚本量少,提高脚本部署工作的效率,并且因脚本量少能够减少脚本的执行时间,提高测试效率。
在其中一个实施例中,在所述部署完成后运行所述执行脚本的步骤之后,还包括:
根据所述当前数据库中的数据库结构数据生成基线结构库;
获取基线数据列表,根据所述基线数据列表从所述当前数据库中抽取基本数据并对所述基本数据进行备份,将备份后的基本数据导入所述基线结构库,生成基线数据库。
在其中一个实施例中,将所述新版本执行脚本文件中的执行脚本部署在经过数据替换后的所述当前数据库上的步骤,包括:
当查找到第一配置表时,从所述第一配置表中读取脚本名称,将读取到的脚本名称与所述执行脚本进行名称匹配,将匹配成功的执行脚本部署在所述当前数据库中;
当查找不到第一配置表时,对所述执行脚本进行归类,将归类后的执行脚本进行排序,将排序后的执行脚本部署在所述当前数据库中。
在其中一个实施例中,所述部署完成后运行所述执行脚本的步骤之后,还包括:
获取第二配置表,所述第二配置表中包括异常关键字;
监测所述执行脚本的运行结果,判断所述运行结果中是否包含异常关键字;
若是,则获取所述运行结果对应的执行脚本的脚本名称,根据所述异常关键字和所述脚本名称生成运行异常警报,将所述异常警报发送至监控终端。
在其中一个实施例中,所述部署完成后运行所述执行脚本的步骤之后,还包括:
监测所述执行脚本的单脚本运行时间;
判断所述单脚本运行时间是否超过预设单脚本运行时间阈值;
若是,则将所述执行脚本的脚本名称和运行时间进行记录并添加至所述异常警报中;
检测所述执行脚本的总运行时间,判断所述总运行时间是否超过预设脚本总运行时间阈值;
若是,则中断所述执行脚本的运行并向所述监控终端发送运行超时警报。
一种数据库集成测试装置,所述装置包括:
文件接收模块,用于接收新版本数据库文件;
基线数据查找模块,用于获取所述新版本数据库文件对应的基线数据库信息,根据所述基线数据库信息查找所述新版本数据库文件对应的数据库基线数据;
数据替换模块,用于将当前数据库中的数据替换为所述数据库基线数据;
脚本部署运行模块,用于从所述新版本数据库文件中抽取执行脚本文件,将所述执行脚本文件中的执行脚本部署在经过数据替换后的所述当前数据库上,部署完成后运行所述执行脚本。
在其中一个实施例中,所述装置还包括:
结构库生成模块,用于根据所述当前数据库中的数据库结构数据生成基线结构库;
基线库生成模块,用于获取基线数据列表,根据所述基线数据列表从所述当前数据库中抽取基本数据并对所述基本数据进行备份,将备份后的基本数据导入所述基线结构库,生成基线数据库。
在其中一个实施例中,所述脚本部署运行模块还包括:
匹配部署模块,用于当查找到第一配置表时,从所述第一配置表中读取脚本名称,将读取到的脚本名称与所述执行脚本进行名称匹配,将匹配成功的执行脚本部署在所述当前数据库中;
排序部署模块,用于当查找不到第一配置表时,对所述执行脚本进行归类,将归类后的执行脚本进行排序,将排序后的执行脚本部署在所述当前数据库中。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现以下步骤:
接收新版本数据库文件;
获取所述新版本数据库文件对应的基线数据库信息,根据所述基线数据库信息查找所述新版本数据库文件对应的数据库基线数据;
将当前数据库中的数据替换为所述数据库基线数据;
从所述新版本数据库文件中抽取新版本执行脚本文件,将所述新版本执行脚本文件根据预设规则部署在所述当前数据库上,部署完成后运行所述新版本执行脚本文件。
一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现上述方法的步骤。
附图说明
图1为一个实施例中数据库集成测试方法的流程图;
图2为另一个实施例中数据库集成测试方法的流程图;
图3为又一个实施例中数据库集成测试方法的流程图;
图4为一个实施例中数据库集成测试装置的结构示意图;
图5为另一个实施例中数据库集成测试装置的结构示意图;
图6为又一个实施例中数据库集成测试装置的结构示意图;
图7为再一个实施例中数据库集成测试装置的结构示意图;
图8为一个实施例中计算机设备的内部结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在一个实施例中,如图1所示,提供了一种数据库集成测试方法,该方法可应用于终端或服务器,以该方法应用于服务器为例进行说明,所述方法包括以下步骤:
步骤110,接收新版本数据库文件。
服务器接收从数据库生产环境提交的新版本数据库文件。新版本数据库文件中包括数据库基础数据、对象数据和执行脚本文件等等构建数据库所必须的数据和文件。
需要说明的是,本实施例中的不同版本的新版本数据库都是基于同一个基础版本数据库进行开发生产的,如新版本数据库可以为V1.1版本、V1.2版本及V1.3版本等,它们都是基于V1.0基础版本数据库进行开发的。
在本实施例中,新版本数据库是指需要进行测试的数据库,新版本数据库文件可以为首次开发出来的需要进行测试的数据库文件,也可以是经过测试脚本出现异常,由开发人员进行修正并重新提交的数据库文件。
步骤120,获取新版本数据库文件对应的基线数据库信息,根据基线数据库信息查找新版本数据库文件对应的数据库基线数据。
服务器中存储了所有的基础版本数据库的数据库文件。服务器根据新版本数据库信息可以查找到新版本数据库所基于的基础版本数据库信息,数据库信息可以为数据库名称或数据库版本号等,从而根据基础版本数据库信息可以查找到存储的基础版本数据库文件,从基础版本数据库文件中提取到基础版本数据库的数据库基线数据。数据库基线数据包括数据库的结构数据和其他基础数据、基础脚本,但不包括具体的数据库对象内容数据和新版数据库的执行脚本文件。
步骤130,将当前数据库中的数据替换为数据库基线数据。
当前数据库是指服务器的测试环境中正在进行测试或者正在等待测试的数据库,且当前数据库与新版本数据库是基于同一基础数据库进行开发的。服务器通过数据库命令停止当前数据库运行,当数据库停止运行后,服务器将当前数据库汇总的数据替换为基础数据库的数据库基线数据,以实现使当前测试环境中的数据回滚到基线数据。当数据替换完成后,服务器通过数据库命令重新启动数据库。
步骤140,从新版本数据库文件中抽取执行脚本文件,将执行脚本文件中的执行脚本部署在经过数据替换后的当前数据库上,部署完成后运行执行脚本。
服务器从获取的新版本数据库文件中抽取执行脚本文件,执行脚本文件中包含多个执行脚本,多个执行脚本为新版本数据库中所有待部署和执行的脚本。一般的,执行脚本是数据库SQL脚本,执行脚本也可以为其他格式的脚本。
服务器根据预设规则从执行脚本文件中逐一提取脚本文件,并将提取出的脚本文件依次部署在已回滚到基线状态的当前数据库上,当所有的执行脚本部署完成后,服务器在测试环境中构建出完整的新版本数据库,数据库构建好后,服务器开始运行执行脚本并实时监控运行结果。
在本实施例中,服务器在接收到生产环境提交的需要进行测试的新版本数据库文件时,获取新版本数据库文件对应的基线数据库信息,并查找与其对应的已进行存储的数据库基线数据,将当前完成测试的数据库中的数据替换为查找到的数据库基线数据,以实现将当前数据库中的数据回滚到基线状态,无需从头构建数据库,并根据预设规则从新版本数据库文件中抽取并自动部署新版本的执行脚本文件,所需部署的脚本量少,从而提高新版本数据库构建工作以及数据库执行脚本部署工作的效率,并且因脚本量少能够减少脚本的执行时间,提高测试效率。
在一个实施例中,如图2所示,数据库集成测试方法还包括以下步骤:
步骤150,根据当前数据库中的数据库结构数据生成基线结构库。
执行脚本在运行完成后,若脚本执行过程中没有出现执行异常的情况,则新版本数据库通过测试可以上线。在新版本数据库通过测试之后,若服务器接收到基线数据库构建指令,则表明需要新版本数据库需要作为基础数据库,以便后续开发的数据库以此库为基础进行设计开发生产。
服务器获取基线数据库构建指令后,构建一个空数据库,并将当前数据库中的数据库结构数据复制到构建的空数据库中生成基线结构库。
步骤160,获取基线数据列表,根据基线数据列表从当前数据库中抽取基本数据并对基本数据进行备份,将备份后的基本数据导入基线结构库,生成基线数据库。
服务器获取新版本数据库的基线数据列表,基线数据列表可以是开发人员提交的,也可以是预先存储在服务器上的。服务器将基线数据列表中所列的数据名称与当前数据库中的数据进行匹配,并将匹配成功的数据从当前数据库中抽取出来。对抽取出来的基本数据进行备份,并以新版数据库的名称或版本号等进行命名,以便作为以后开发的多个新版本的数据库基线数据。服务器将备份好的基本数据导入制作好的基线结构库中生成基线数据库,新版本数据库可以在此基线数据库上部署待执行的脚本文件,进行新版本数据库的构建。在一个实施例中,在生成基线数据库之后,由开发人员对基线数据库进行检查验证,在验证无误后可以投入使用或进行发布。
在一个实施例中,服务器对抽取到的基本数据进行压缩处理,在压缩处理后再进行备份工作。可以通过缩小表空间、删除不必要的数据等方式进行压缩处理。可以减少数据备份以及拷贝的时间,提高数据库构建工作的效率。
在本实施例中,当经过数据替换的当前数据库通过测试后,服务器可以根据基线数据库构建指令从当前数据库中提取结构数据和基本数据构建基线结构库,以使当前结构库可以作为以后新开发版本数据库的基础。由此,当开发人员根据生产工作的需要想要构建基线数据库时,服务器可以通过本实施例中的方法方便快捷地构建基线数据库并对基本数据进行备份存储,操作简单。并且由于构建的基线数据库的部署脚本较少,也方便后期多版本数据库的维护工作,节省人力。
在一个实施例中,步骤140中新版本执行脚本文件中的执行脚本部署在经过数据替换后的当前数据库上的步骤具体包括:
当查找到第一配置表时,从第一配置表中读取脚本名称,将读取到的脚本名称与执行脚本进行名称匹配,将匹配成功的执行脚本部署在当前数据库中;当查找不到第一配置表时,对执行脚本进行归类,将归类后的执行脚本进行排序,将排序后的执行脚本部署在当前数据库中。
第一配置表可以预先存储在服务器本地,也可以保存在新版本数据库文件中,服务器获取第一配置表。第一配置表为脚本执行顺序配置表,第一配置表中列出了所有执行脚本的名称并规定了所有执行脚本的部署顺序。数据库的所有执行脚本都是按照规范命名标准进行统一命名的,执行脚本的名称中包含脚本的类型信息、执行功能信息以及序列编码等。
服务器从第一配置表中按照排列顺序依次读取执行脚本名称,并将读取到的脚本名称与执行脚本文件中的脚本名称进行匹配,当匹配成功时,从执行脚本文件中抽取匹配成功的执行脚本,并将匹配成功的执行脚本按照脚本名称读取的顺序部署在经过数据替换的当前数据库中,直至所有的执行脚本部署完毕。当从第一配置表中读取到的执行脚本名称在执行脚本文件中匹配不到相应的执行脚本时,跳过该条执行脚本名称并继续执行下一条执行脚本名称的匹配。
当服务器从本地或者从新版本数据库文件中查找不到第一配置表时,服务器获取预设的脚本分类排序表。终端根据执行脚本名称中的脚本类型信息对执行脚本进行归类,例如,不同分类的脚本的名称的首两位字母不同,如SR开头的为一类,SQ开头的为一类,SD开头的为另一类等。终端对执行脚本归类完成后,根据执行脚本的序列编号,对每一类别中的执行脚本进行按照编号从大到小、或者从小到大的顺序进行排序。当所有类别中的执行脚本排序完成后,服务器获取脚本分类排序表中脚本类别的排序顺序,如SR开头的脚本先于SQ开头的脚本,SQ开头的脚本先于SD开头的脚本等。服务器根据脚本分类排序表的排序顺序对不同类别间的执行脚本进行排序,并最终将排序完成的执行脚本部署在当前数据库中。
在一个实施例中,执行脚本的脚本名称中包含执行用户信息,在部署执行脚本之前,服务器从执行脚本的名称中提取执行用户信息,并从获取本地执行用户的用户信息,将两者进行比较,判断用户信息是否一致,当用户信息一致时,继续进行下面的部署操作,当用户信息不一致时,进行无操作权限的提醒,并中断当前的操作。由此,可以对执行用户的操作权限进行设置,避免无权限人员进行恶意操作。
在本实施例中,通过预先设置第一配置表,服务器根据配置表中脚本名称与执行脚本文件中的脚本进行名称匹配,并将匹配成功的脚本按照表中排列顺序自动部署在当前数据库中,当服务器查找不到第一配置表时,可以通过获取脚本分类排序表的方式对执行脚本进行排序,从而实现新版本数据库中执行脚本的全自动部署,无需人工进行手动部署,提高了部署工作的工作效率并且节省了人力。
在一个实施例中,如图3所示,在步骤140之后还包括以下步骤:
步骤170,获取第二配置表,第二配置表中包括异常关键字。
服务器获取预先存储的第二配置表,第二配置表中包括所有异常执行结果中可能出现的所有异常关键字,如“SP2-”、“CPY-”、“ORA-”以及“Warning”等关键字,从异常关键字可以判断出执行脚本运行出现异常的具体原因。当出现这些执行脚本的运行脚本中出现这些关键字时,表明执行脚本的运行出现异常。
步骤180,监测执行脚本的运行结果,判断运行结果中是否包含异常关键字。
执行脚本的部署工作完成后,新版本数据库构建完成,服务器开始运行部署的执行脚本并对执行脚本的运行结果进行实时监控。每条执行脚本运行结束后,服务器获取运行结果,逐一读取第二配置表中的异常关键字并与获取的运行结果进行匹配,判断运行结果中是否包含异常关键字。
步骤190,获取运行结果对应的执行脚本的脚本名称,根据异常关键字和脚本名称生成运行异常警报,将异常警报发送至监控终端。
当服务器判断出运行结果中包含第二配置表中的任一异常关键字时,表明执行脚本运行出现异常,服务器获取运行异常的执行脚本的脚本名称,并根据运行结果中所包含的异常关键字和脚本名称生成运行异常警报,服务器获取监控终端的联系信息,联系信息可以为终端地址,邮箱信息等,服务器通过联系信息将运行异常警报发送至监控终端,使得监控人员能够获取运行出现异常的执行脚本的信息以及运行异常的原因。当运行结果中不包含异常关键字时,不进行处理。
在一个实施例中,服务器可以进行实时地运行异常警报通知,即在执行脚本的运行过程中,只要监控到有一条执行脚本运行异常,就将根据该条执行脚本和运行结果单独生成一个异常警报,并及时发送给监控终端。在另一个实施例中,在运行过程中,服务器监测到有异常运行结果时,对出现异常的执行脚本及相应的运行结果进行记录,待所有脚本执行完成后,将记录的所有异常结果进行汇总并生成运行异常警报,将汇总的运行异常警报发送至监控终端。
在本实施例中,通过预先存储配置异常关键字,服务器可以通过在监测到的运行结果中自动进行异常关键字的匹配并判断执行脚本的执行结果是否出现异常,无需人工核查,并将根据运行异常的结果生成运行异常警报发送给监控终端,从而使得监控终端根据运行异常警报清楚地了解到出现异常的执行脚本有哪些,便于开发人员根据运行异常警报对数据库脚本进行修正。
在一个实施例中,数据库集成测试方法还包括以下步骤:监测执行脚本的单脚本运行时间;判断单脚本运行时间是否超过预设单脚本运行时间阈值;若是,则将执行脚本的脚本名称和运行时间进行记录并添加至异常警报中;检测执行脚本的总运行时间,判断总运行时间是否超过预设脚本总运行时间阈值;若是,则中断执行脚本的运行并向监控终端发送运行超时警报。
服务器获取预设的单脚本运行时间阈值和预设的脚本总运行时间阈值。服务器对每条执行脚本的单脚本运行时间进行监测,并对每条脚本的运行时间都进行记录。当一条执行脚本运行完成后,终端获得该脚本的运行时间,并将该脚本的运行时间与预设单脚本运行时间阈值进行比较,当该脚本的运行时间超过预设单脚本运行时间阈值时,服务器获取该脚本的脚本名称,并将该脚本的脚本名称和运行时间记录添加至异常警报中,使得监控人员还能及时了解单脚本的运行时间情况。
此外,服务器还进行执行脚本总运行时间的监测,当每一条执行脚本运行完成后,服务器将该条执行脚本的运行时间与运行过的执行脚本的运行时间进行迭加,并判断迭加的总运行时间是否超过预设脚本总运行时间阈值,当总运行时间没有超过预设脚本总运行时间阈值时,继续运行下一条执行脚本,当总运行时间超过预设脚本总运行时间阈值时,服务器中断执行脚本的运行,生成运行超时警报,并将运行超时警报发送至监控终端。
在本实施例中,服务器通过对单脚本的运行时间进行监控,并将单脚本的运行时间记录在异常警报中,可以使进行监控的开发人员获取每条脚本的运行时间情况,方便开发人员查找到运行时间过长的执行脚本并进行优化。服务器通过监测部署脚本的总运行时间,可以在运行时间超过阈值时及时中断脚本的运行,避免了脚本发生死循环等异常情况还会继续执行造成的测试资源的浪费。
在一个实施例中,在服务器上搭建虚拟机,当前数据库安装在虚拟机上,在虚拟机上进行数据库环境的搭建,执行脚本的部署和执行脚本的运行等工作。而在服务器的主机上可以继续进行数据库的开发、生产工作。从而实现开发工作与测试工作的同机并发执行。当新版本数据库在主机上开发完成后,将新版本数据库文件从主机提交至虚拟机,虚拟机接收到从主机提交的版本数据库文件时,即触发数据库集成测试工作流程的开始。具体的,可以在虚拟机上构建触发器,并设置触发器的触发方式为当有新的数据库文件提交时,触发数据库集成测试工作流程。
在另一个实施例中,可以在服务器上搭建多个虚拟机,当需要将开发出的多个版本的数据库同时进行测试工作时,可以将多个版本的数据库分别安装在不同的虚拟机上进行同步测试,在每个虚拟机上单独进行数据库环境的搭建,从而实现多版本数据库的并发测试,提高测试工作的效率。
在一个实施例中,如图4所示,提供了一种数据库集成测试装置,该装置包括:
文件接收模块410,用于接收新版本数据库文件。
基线数据查找模块420,用于获取新版本数据库文件对应的基线数据库信息,根据基线数据库信息查找新版本数据库文件对应的数据库基线数据。
数据替换模块430,用于将当前数据库中的数据替换为数据库基线数据。
脚本部署运行模块440,用于从新版本数据库文件中抽取执行脚本文件,将执行脚本文件中的执行脚本部署在经过数据替换后的当前数据库上,部署完成后运行执行脚本。
在一个实施例中,如图5所示,装置还包括:
结构库生成模块450,用于根据当前数据库中的数据库结构数据生成基线结构库。
基线库生成模块460,用于获取基线数据列表,根据基线数据列表从当前数据库中抽取基本数据并对基本数据进行备份,将备份后的基本数据导入基线结构库,生成基线数据库。
在一个实施例中,脚本部署运行模块440包括:
匹配部署模块,用于当查找到第一配置表时,从第一配置表中读取脚本名称,将读取到的脚本名称与执行脚本进行名称匹配,将匹配成功的执行脚本部署在当前数据库中。
排序部署模块,用于当查找不到第一配置表时,对执行脚本进行归类,将归类后的执行脚本进行排序,将排序后的执行脚本部署在当前数据库中。
在一个实施例中,如图6所示,装置还包括:
配置表获取模块470,用于获取第二配置表,所述第二配置表中包括异常关键字。
结果检测模块480,用于监测所述执行脚本的运行结果,判断所述运行结果中是否包含异常关键字。
异常警报发送模块490,用于获取所述运行结果对应的执行脚本的脚本名称,根据所述异常关键字和所述脚本名称生成运行异常警报,将所述异常警报发送至监控终端。
在一个实施例中,如图7所示,装置还包括:
单脚本时间监测模块491,用于监测所述执行脚本的单脚本运行时间;
单脚本时间判断模块493,用于判断所述单脚本运行时间是否超过预设单脚本运行时间阈值;
时间记录模块495,用于将所述执行脚本的脚本名称和运行时间进行记录并添加至所述异常警报中;
总时间检测模块497,用于检测所述执行脚本的总运行时间,判断所述总运行时间是否超过预设脚本总运行时间阈值;
超时警报发送模块499,用于中断所述执行脚本的运行并向所述监控终端发送运行超时警报。
在一个实施例中,如图8所示,为一个计算机设备的内部结构示意图。该计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序。存储器存储有操作系统和数据库,还包括一种数据库集成测试装置。数据库用于存储于实现一种数据库集成测试方法相关的数据,数据库中存储有所有版本基线数据库的基线数据库信息,以及每个基线数据库的数据库基线数据。数据库集成测试装置用于实现一种数据库集成测试方法。该处理器用于提供计算和控制能力,支撑整个终端的运行。存储器中可储存有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行一种数据库集成测试方法。
在一个实施例中,计算机设备的存储器包括非易失性存储介质和内存储器。其中,非易失性存储介质存储有操作系统和数据库,还包括一种数据库集成测试装置,终端中的内存储器为非易失性存储介质中的药品数据处理装置的运行提供环境,该内存储器中可储存有计算机可读指令。本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的终端的限定,具体的终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,处理器执行所述程序时实现以下步骤:
接收新版本数据库文件;
获取新版本数据库文件对应的基线数据库信息,根据基线数据库信息查找新版本数据库文件对应的数据库基线数据;
将当前数据库中的数据替换为数据库基线数据;
从新版本数据库文件中抽取执行脚本文件,将执行脚本文件中的执行脚本部署在经过数据替换后的当前数据库上,部署完成后运行执行脚本。
在一个实施例中,处理器执行程序时还用以实现以下步骤:
根据当前数据库中的数据库结构数据生成基线结构库;
获取基线数据列表,根据基线数据列表从当前数据库中抽取基本数据并对基本数据进行备份,将备份后的基本数据导入基线结构库,生成基线数据库。
在一个实施例中,处理器执行程序时还用以实现以下步骤:
将新版本执行脚本文件中的执行脚本部署在经过数据替换后的当前数据库上的步骤,包括:
当查找到第一配置表时,从第一配置表中读取脚本名称,将读取到的脚本名称与执行脚本进行名称匹配,将匹配成功的执行脚本部署在当前数据库中;
当查找不到第一配置表时,对执行脚本进行归类,将归类后的执行脚本进行排序,将排序后的执行脚本部署在当前数据库中。
在一个实施例中,处理器执行程序时还用以实现以下步骤:
获取第二配置表,第二配置表中包括异常关键字;
监测执行脚本的运行结果,判断运行结果中是否包含异常关键字;
若是,则获取运行结果对应的执行脚本的脚本名称,根据异常关键字和脚本名称生成运行异常警报,将异常警报发送至监控终端。
在一个实施例中,处理器执行程序时还用以实现以下步骤:
监测执行脚本的单脚本运行时间;
判断单脚本运行时间是否超过预设单脚本运行时间阈值;
若是,则将执行脚本的脚本名称和运行时间进行记录并添加至异常警报中;
检测执行脚本的总运行时间,判断总运行时间是否超过预设脚本总运行时间阈值;
若是,则中断执行脚本的运行并向监控终端发送运行超时警报。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:
接收新版本数据库文件;
获取新版本数据库文件对应的基线数据库信息,根据基线数据库信息查找新版本数据库文件对应的数据库基线数据;
将当前数据库中的数据替换为数据库基线数据;
从新版本数据库文件中抽取执行脚本文件,将执行脚本文件中的执行脚本部署在经过数据替换后的当前数据库上,部署完成后运行执行脚本。
在一个实施例中,该程序被处理器执行时还用以实现以下步骤:
根据当前数据库中的数据库结构数据生成基线结构库;
获取基线数据列表,根据基线数据列表从当前数据库中抽取基本数据并对基本数据进行备份,将备份后的基本数据导入基线结构库,生成基线数据库。
在一个实施例中,该程序被处理器执行时还用以实现以下步骤:
将新版本执行脚本文件中的执行脚本部署在经过数据替换后的当前数据库上的步骤,包括:
当查找到第一配置表时,从第一配置表中读取脚本名称,将读取到的脚本名称与执行脚本进行名称匹配,将匹配成功的执行脚本部署在当前数据库中;
当查找不到第一配置表时,对执行脚本进行归类,将归类后的执行脚本进行排序,将排序后的执行脚本部署在当前数据库中。
在一个实施例中,该程序被处理器执行时还用以实现以下步骤:
获取第二配置表,第二配置表中包括异常关键字;
监测执行脚本的运行结果,判断运行结果中是否包含异常关键字;
若是,则获取运行结果对应的执行脚本的脚本名称,根据异常关键字和脚本名称生成运行异常警报,将异常警报发送至监控终端。
在一个实施例中,该程序被处理器执行时还用以实现以下步骤:
监测执行脚本的单脚本运行时间;
判断单脚本运行时间是否超过预设单脚本运行时间阈值;
若是,则将执行脚本的脚本名称和运行时间进行记录并添加至异常警报中;
检测执行脚本的总运行时间,判断总运行时间是否超过预设脚本总运行时间阈值;
若是,则中断执行脚本的运行并向监控终端发送运行超时警报。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (9)
1.一种数据库集成测试方法,其特征在于,所述方法包括以下步骤:
接收新版本数据库文件;
获取所述新版本数据库文件对应的基线数据库信息,根据所述基线数据库信息查找所述新版本数据库文件对应的数据库基线数据;
将当前数据库中的数据替换为所述数据库基线数据;
从所述新版本数据库文件中抽取执行脚本文件,将所述执行脚本文件中的执行脚本部署在经过数据替换后的所述当前数据库上,部署完成后运行所述执行脚本。
2.根据权利要求1所述的数据库集成测试方法,其特征在于,在所述部署完成后运行所述执行脚本的步骤之后,还包括:
根据所述当前数据库中的数据库结构数据生成基线结构库;
获取基线数据列表,根据所述基线数据列表从所述当前数据库中抽取基本数据并对所述基本数据进行备份,将备份后的基本数据导入所述基线结构库,生成基线数据库。
3.根据权利要求1所述的数据库集成测试方法,其特征在于,所述将所述执行脚本文件中的执行脚本部署在经过数据替换后的所述当前数据库上的步骤,包括:
当查找到第一配置表时,从所述第一配置表中读取脚本名称,将读取到的脚本名称与所述执行脚本进行名称匹配,将匹配成功的执行脚本部署在所述当前数据库中;
当查找不到第一配置表时,对所述执行脚本进行归类,将归类后的执行脚本进行排序,将排序后的执行脚本部署在所述当前数据库中。
4.根据权利要求1至3任意一项所述的数据库集成测试方法,其特征在于,所述部署完成后运行所述执行脚本的步骤之后,还包括:
获取第二配置表,所述第二配置表中包括异常关键字;
监测所述执行脚本的运行结果,判断所述运行结果中是否包含异常关键字;
若是,则获取所述运行结果对应的执行脚本的脚本名称,根据所述异常关键字和所述脚本名称生成运行异常警报,将所述异常警报发送至监控终端。
5.根据权利要求4所述的数据库集成测试方法,其特征在于,所述部署完成后运行所述执行脚本的步骤之后,还包括:
监测所述执行脚本的单脚本运行时间;
判断所述单脚本运行时间是否超过预设单脚本运行时间阈值;
若是,则将所述执行脚本的脚本名称和运行时间进行记录并添加至所述异常警报中;
检测所述执行脚本的总运行时间,判断所述总运行时间是否超过预设脚本总运行时间阈值;
若是,则中断所述执行脚本的运行并向所述监控终端发送运行超时警报。
6.一种数据库集成测试装置,其特征在于,所述装置包括:
文件接收模块,用于接收新版本数据库文件;
基线数据查找模块,用于获取所述新版本数据库文件对应的基线数据库信息,根据所述基线数据库信息查找所述新版本数据库文件对应的数据库基线数据;
数据替换模块,用于将当前数据库中的数据替换为所述数据库基线数据;
脚本部署运行模块,用于从所述新版本数据库文件中抽取执行脚本文件,将所述执行脚本文件中的执行脚本部署在经过数据替换后的所述当前数据库上,部署完成后运行所述执行脚本。
7.根据权利要求6所述的数据库集成测试装置,其特征在于,所述装置还包括:
结构库生成模块,用于根据所述当前数据库中的数据库结构数据生成基线结构库;
基线库生成模块,用于获取基线数据列表,根据所述基线数据列表从所述当前数据库中抽取基本数据并对所述基本数据进行备份,将备份后的基本数据导入所述基线结构库,生成基线数据库。
8.根据权利要求6所述的数据库集成测试装置,其特征在于,所述脚本部署运行模块还包括:
匹配部署模块,用于当查找到第一配置表时,从所述第一配置表中读取脚本名称,将读取到的脚本名称与所述执行脚本进行名称匹配,将匹配成功的执行脚本部署在所述当前数据库中;
排序部署模块,用于当查找不到第一配置表时,对所述执行脚本进行归类,将归类后的执行脚本进行排序,将排序后的执行脚本部署在所述当前数据库中。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1至5任意一项所述方法的步骤。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710470644.0A CN107688531B (zh) | 2017-06-20 | 2017-06-20 | 数据库集成测试方法、装置、计算机设备及存储介质 |
JP2019563048A JP6799695B2 (ja) | 2017-06-20 | 2017-08-30 | データベースの統合テスト方法、装置、サーバ、および記録媒体 |
PCT/CN2017/099736 WO2018233037A1 (zh) | 2017-06-20 | 2017-08-30 | 数据库集成测试方法、装置、服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710470644.0A CN107688531B (zh) | 2017-06-20 | 2017-06-20 | 数据库集成测试方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107688531A CN107688531A (zh) | 2018-02-13 |
CN107688531B true CN107688531B (zh) | 2019-02-22 |
Family
ID=61152694
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710470644.0A Active CN107688531B (zh) | 2017-06-20 | 2017-06-20 | 数据库集成测试方法、装置、计算机设备及存储介质 |
Country Status (3)
Country | Link |
---|---|
JP (1) | JP6799695B2 (zh) |
CN (1) | CN107688531B (zh) |
WO (1) | WO2018233037A1 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108804327A (zh) * | 2018-06-12 | 2018-11-13 | 北京京东金融科技控股有限公司 | 一种自动生成测试数据的方法和装置 |
CN108984408B (zh) * | 2018-07-13 | 2021-11-30 | 中国银行股份有限公司 | 一种应用系统中sql代码的检测方法和装置 |
CN109508356B (zh) * | 2018-11-14 | 2024-05-03 | 平安科技(深圳)有限公司 | 数据异常预警方法、装置、计算机设备及存储介质 |
CN109766124B (zh) * | 2018-12-26 | 2022-05-03 | 深圳左邻永佳科技有限公司 | 业务开发方法、装置、计算机设备和存储介质 |
CN110457300B (zh) * | 2019-07-15 | 2024-02-02 | 中国平安人寿保险股份有限公司 | 一种公共测试库的清理方法及装置、电子设备 |
JP2021047806A (ja) * | 2019-09-20 | 2021-03-25 | 富士通株式会社 | 情報処理システム、情報処理装置および情報処理プログラム |
CN111522719B (zh) * | 2020-04-27 | 2023-12-01 | 中国银行股份有限公司 | 大数据任务状态的监控方法及装置 |
CN111651364B (zh) * | 2020-07-01 | 2023-04-28 | 中国银行股份有限公司 | 并行开发下的sql检查方法及装置 |
CN111858352B (zh) * | 2020-07-22 | 2024-04-05 | 中国平安财产保险股份有限公司 | 自动化测试监控的方法、装置、设备及存储介质 |
CN111857752B (zh) * | 2020-07-22 | 2023-08-08 | 浪潮商用机器有限公司 | 一种PostgreSQL数据库安装方法、装置及设备 |
CN114625630B (zh) * | 2020-12-14 | 2024-10-01 | 福建天泉教育科技有限公司 | 一种多环境多角色版本发布系统的测试方法及其测试系统 |
CN112965905B (zh) * | 2021-03-11 | 2024-06-18 | 京东科技信息技术有限公司 | 数据测试方法、装置、设备及存储介质 |
CN113297028A (zh) * | 2021-03-18 | 2021-08-24 | 中国平安人寿保险股份有限公司 | 一种脚本执行方法、装置、计算机设备及存储介质 |
CN113138974B (zh) * | 2021-04-23 | 2023-08-22 | 建信金融科技有限责任公司 | 数据库合规检测的方法和装置 |
CN115757055B (zh) * | 2022-10-19 | 2023-10-27 | 北京新数科技有限公司 | 一种基于Spring Cloud的数据库统一运维及综合性能评分系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102289460A (zh) * | 2011-07-13 | 2011-12-21 | 中国工商银行股份有限公司 | 一种向测试环境进行报表元数据同步的方法及系统 |
CN102722436A (zh) * | 2012-05-29 | 2012-10-10 | 百度在线网络技术(北京)有限公司 | 一种增量覆盖信息的统计方法和装置 |
CN103020149A (zh) * | 2012-11-22 | 2013-04-03 | 用友软件股份有限公司 | 共享数据更新装置和共享数据更新方法 |
CN104572644A (zh) * | 2013-10-10 | 2015-04-29 | 北京大学 | 数据库更新装置和数据库更新方法 |
CN105512017A (zh) * | 2014-09-22 | 2016-04-20 | 阿里巴巴集团控股有限公司 | 一种数据库兼容性检测方法及设备 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8078655B2 (en) * | 2008-06-04 | 2011-12-13 | Microsoft Corporation | Generation of database deltas and restoration |
CN202121621U (zh) * | 2011-07-13 | 2012-01-18 | 中国工商银行股份有限公司 | 一种向测试环境进行报表元数据同步的系统 |
US9659040B1 (en) * | 2013-09-23 | 2017-05-23 | Amazon Technologies, Inc. | Database fleet schema maintenance |
CN105302710B (zh) * | 2014-07-03 | 2019-06-07 | 腾讯科技(深圳)有限公司 | 一种确定需要回归测试的测试用例的方法和装置 |
WO2016015220A1 (en) * | 2014-07-29 | 2016-02-04 | Hewlett-Packard Development Company, L.P. | Executable code abnormality detection |
US9811444B2 (en) * | 2015-08-04 | 2017-11-07 | Salesforce.Com, Inc. | Testing software enhancements in database applications |
CN106445795B (zh) * | 2016-09-26 | 2019-03-22 | 中国工商银行股份有限公司 | 一种数据库sql效率检测方法及装置 |
-
2017
- 2017-06-20 CN CN201710470644.0A patent/CN107688531B/zh active Active
- 2017-08-30 JP JP2019563048A patent/JP6799695B2/ja active Active
- 2017-08-30 WO PCT/CN2017/099736 patent/WO2018233037A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102289460A (zh) * | 2011-07-13 | 2011-12-21 | 中国工商银行股份有限公司 | 一种向测试环境进行报表元数据同步的方法及系统 |
CN102722436A (zh) * | 2012-05-29 | 2012-10-10 | 百度在线网络技术(北京)有限公司 | 一种增量覆盖信息的统计方法和装置 |
CN103020149A (zh) * | 2012-11-22 | 2013-04-03 | 用友软件股份有限公司 | 共享数据更新装置和共享数据更新方法 |
CN104572644A (zh) * | 2013-10-10 | 2015-04-29 | 北京大学 | 数据库更新装置和数据库更新方法 |
CN105512017A (zh) * | 2014-09-22 | 2016-04-20 | 阿里巴巴集团控股有限公司 | 一种数据库兼容性检测方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
JP6799695B2 (ja) | 2020-12-16 |
CN107688531A (zh) | 2018-02-13 |
WO2018233037A1 (zh) | 2018-12-27 |
JP2020520515A (ja) | 2020-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107688531B (zh) | 数据库集成测试方法、装置、计算机设备及存储介质 | |
Cotroneo et al. | Predicting aging-related bugs using software complexity metrics | |
US8296104B2 (en) | Rule-based engine for gathering diagnostic data | |
US9146839B2 (en) | Method for pre-testing software compatibility and system thereof | |
EP3734520A1 (en) | Fault analysis and prediction using empirical architecture analytics | |
US20170116084A1 (en) | Method and System for Monitoring Virtual Machine Cluster | |
CN110008129B (zh) | 一种存储定时快照的可靠性测试方法、装置及设备 | |
CN106528354B (zh) | 一种烧录存储器电源fru id的自动化方法 | |
CN105573859A (zh) | 一种数据库的数据恢复方法和设备 | |
CN112667436A (zh) | 一种服务器关机时的自动捕获分析方法、装置、设备及介质 | |
US10318387B1 (en) | Automated charge backup modelling | |
CN108776643A (zh) | 一种基于版本控制流程的目标代码合并控制方法及系统 | |
CN108804239B (zh) | 平台整合的方法、装置、计算机设备和存储介质 | |
WO2024148857A1 (zh) | 服务器故障根因的过滤方法和装置、非易失性可读存储介质及电子装置 | |
CN114116330A (zh) | 服务器性能测试方法、系统、终端及存储介质 | |
CN111414287A (zh) | 一种芯片测试结果的分析方法、系统及装置 | |
RU128741U1 (ru) | Система формирования решения проблем функционирования компьютерных систем | |
JP2023044720A (ja) | クラッシュしたアプリケーションを修復するためのコンピュータ実装方法、コンピュータプログラム製品、およびリモートコンピュータサーバ(クラッシュしたプロセスのリモート修復) | |
CN112596750B (zh) | 应用测试方法、装置、电子设备及计算机可读存储介质 | |
CN114546717A (zh) | 安卓智能终端开机的方法、装置、智能终端和存储介质 | |
CN110008114B (zh) | 配置信息维护方法、装置、设备及可读存储介质 | |
CN110658989B (zh) | 用于备份存储垃圾收集的系统和方法 | |
CN106201785B (zh) | 应用于空调显示器的数据存储方法及装置 | |
CN117034366A (zh) | 一种云原生非停机升级的保持数据完整性方法及其应用 | |
CN116303046A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1250265 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |