买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种测试方法以及测试装置_武汉达梦数据库股份有限公司_201811045469.1 

申请/专利权人:武汉达梦数据库股份有限公司

申请日:2018-09-07

公开(公告)日:2021-02-26

公开(公告)号:CN109344056B

主分类号:G06F11/36(20060101)

分类号:G06F11/36(20060101)

优先权:

专利状态码:有效-授权

法律状态:2021.02.26#授权;2019.03.12#实质审查的生效;2019.02.15#公开

摘要:本发明公开了一种测试方法以及测试装置,该测试方法包括:获取多个生产数据库对应的基准测试数据以及日志文件;根据每个生产数据库的基准测试数据以及日志文件,创建目标应用服务对应的基准测试用例,以获取多个基准测试用例;依据目标应用服务在待测数据库上的运行方式,将多个基准测试用例进行融合,得到目标测试用例;依据目标测试用例对待测数据库进行测试,得到目标应用服务在待测数据库上运行情况的测试结果。该测试方法将多个基准测试用例进行融合得到目标测试用例,依据目标测试用例对目标应用服务在待测数据库上的运行情况进行测试,提高了目标测试用例的覆盖率,提高了测试的准确性,减小了误判情况的发生。

主权项:1.一种测试方法,其特征在于,目标应用服务在多个生产数据库上运行,所述目标应用服务在每个生产数据库上的运行方式存在差异;所述测试方法包括:获取多个生产数据库对应的基准测试数据以及日志文件;根据每个生产数据库的基准测试数据以及日志文件,创建所述目标应用服务对应的基准测试用例,以获取多个基准测试用例,其中,每个基准测试用例与对应的生产数据库成一一映射关系;依据所述目标应用服务在待测数据库上的运行方式,将多个基准测试用例进行融合,得到目标测试用例;依据所述目标测试用例对所述待测数据库进行测试,得到所述目标应用服务在所述待测数据库上运行情况的测试结果;其中,所述目标应用服务在多个生产数据库上运行,所述目标应用服务在每个生产数据库上运行的时间段互不重合;所述依据所述目标应用服务在待测数据库上的运行方式,将多个基准测试用例进行融合,得到目标测试用例包括:获取所述目标应用服务在所述待测数据库上运行时的访问时间;依据所述访问时间将多个基准测试用例进行有序融合,得到基于时间段界定的目标测试用例;或,所述目标应用服务在多个生产数据库上运行,所述目标应用服务在每个生产数据库上的访问对象互不相同;所述依据所述目标应用服务在待测数据库上的运行方式,将多个基准测试用例进行融合,得到目标测试用例包括:获取所述目标应用服务在所述待测数据库上运行时的目标访问对象;依据所述目标访问对象将多个基准测试用例进行融合,得到基于访问对象界定的目标测试用例。

全文数据:一种测试方法以及测试装置技术领域本发明属于数据库技术领域,更具体地,涉及一种测试方法以及测试装置。背景技术数据库是数据有组织的集合,为各种计算机应用提供数据服务,例如查询、记录、更新等。随着信息化技术的发展,各种计算机应用层出不穷,为了保证数据库性能的稳定性,需要对数据库的性能、功能等进行测试。为了提高数据库系统测试的精准性,保障数据库满足对特定应用场景的功能要求和性能要求,模拟特定计算机应用对待测数据库进行测试成为广泛使用的测试方法。目前,模拟计算机应用服务进行数据库系统测试的传统方法有两种:1搭建计算机应用服务,通过该应用服务对待测试数据库服务进行系统测试;2搭建计算机应用服务,该应用服务连接一个代理程序,代理程序连接生产数据库服务以及待测数据库服务,通过代理程序将应用服务的数据库请求同时发送至生产数据库服务和待测数据库服务进行对比测试。前述方法在实施过程中都需要依托于计算机应用服务的程序集对待测数据库进行测试,但是待测数据库提供的功能愈来愈复杂,使得从数据规模到结构化查询语言SQLStructuredQueryLanguage,简写为SQL的类型可能都不尽相同,由此带来的数据库系统测试范围越来越大,计算机应用服务的程序集的需求也越来越多。此外,在实际使用过程中,同一个应用服务可能在多个生产数据库上运行,且在不同的生产数据库上的运行方式不同。为了节省成本或者基于其他因素的考虑,现需要设计一个数据库,使得应用服务可以在该数据库运行,且能满足多种运行方式。那么,如何获取合适的应用服务的程序集,对数据库进行测试以保证应用服务在数据库上能正常运行,是当前数据库厂商亟待解决的技术问题。但是,作为数据库厂商,往往难以部署第三方所需要的应用服务的程序集,同时,如果应用服务的程序集无法覆盖全部的操作情况时,会引起测试结果不准确的问题,进而导致对待测数据库的性能、功能产生误判情况的发生,测试结果的真实性和全面性存在缺陷。鉴于此,克服该现有技术所存在的缺陷是本技术领域亟待解决的问题。发明内容针对现有技术的以上缺陷或改进需求,本发明提供了一种测试方法以及测试装置,其目的在于基于生产数据库的日志文件创建目标测试用例,模拟目标应用服务的实际使用场景,提高了测试用例的覆盖率以及实用性。另一方面,将多个基准测试用例进行融合得到目标测试用例,依据目标测试用例对目标应用服务在待测数据库上的运行情况进行测试,提高了测试的准确性,减小了误判情况的发生,由此解决难以部署第三方所需要的应用服务的程序集,同时,如果应用服务的程序集与待测数据库不匹配时,会引起测试结果不准确的问题,进而导致对待测数据库的性能、功能产生误判情况的发生,测试结果的真实性和全面性存在缺陷的技术问题。为实现上述目的,本发明实施例采用如下技术方案:第一方面,本发明提供了一种测试方法,目标应用服务在多个生产数据库上运行,所述目标应用服务在每个生产数据库上的运行方式存在差异;所述测试方法包括:获取多个生产数据库对应的基准测试数据以及日志文件;根据每个生产数据库的基准测试数据以及日志文件,创建所述目标应用服务对应的基准测试用例,以获取多个基准测试用例,其中,每个基准测试用例与对应的生产数据库成一一映射关系;依据所述目标应用服务在所述待测数据库上的运行方式,将多个基准测试用例进行融合,得到目标测试用例;依据所述目标测试用例对所述待测数据库进行测试,得到所述目标应用服务在所述待测数据库上运行情况的测试结果。优选地,所述目标应用服务在多个生产数据库上运行,所述目标应用服务在每个生产数据库上运行的时间段互不重合;所述依据所述目标应用服务在所述待测数据库上的运行方式,将多个基准测试用例进行融合,得到目标测试用例包括:获取所述目标应用服务在所述待测数据库上运行时的访问时间;依据所述访问时间将多个基准测试用例进行有序融合,得到基于时间段界定的目标测试用例。优选地,所述目标应用服务在多个生产数据库上运行,所述目标应用服务在每个生产数据库上的访问对象互不相同;所述依据所述目标应用服务在所述待测数据库上的运行方式,将多个基准测试用例进行融合,得到目标测试用例包括:获取所述目标应用服务在所述待测数据库上运行时的目标访问对象;依据所述目标访问对象将多个基准测试用例进行融合,得到基于访问对象界定的目标测试用例。优选地,所述测试方法还包括:判断确定所述目标测试用例是否适用于所述待测数据库;若所述目标测试用例适用于所述待测数据库,则依据所述目标测试用例对所述待测数据库进行测试,得到所述目标应用服务在所述待测数据库上运行情况的测试结果。优选地,所述判断确定所述目标测试用例是否适用于所述待测数据库包括:获取所述生产数据库的基准测试环境以及所述待测数据库的目标测试环境;将所述基准测试环境与所述目标测试环境进行相似度匹配,获取所述基准测试环境和所述目标测试环境之间的相似度;判断确定所述基准测试环境和所述目标测试环境之间的相似度是否大于预设的相似度阈值;若所述基准测试环境和所述目标测试环境之间的相似度大于预设的相似度阈值,则所述目标测试用例适用于所述待测数据库。优选地,所述基准测试环境和所述目标测试环境包括操作系统平台、操作系统版本、数据规模、客户端并发规模、硬件资源中的一项或者多项。优选地,所述测试方法还包括:按照预设的时间间隔重新获取多个生产数据库的基准测试数据以及日志文件;依据重新获取到的基准测试数据以及日志文件,创建新的目标测试用例;判断确定所述新的目标测试用例与历史目标测试用例之间的差异是否大于预设的差异阈值,其中,所述历史目标测试用例为当前对所述待测数据库进行测试的目标测试用例;若所述新的目标测试用例与所述历史目标测试用例之间的差异大于预设的差异阈值,则依据所述新的目标测试用例与所述历史目标测试用例之间的差异获取差异测试用例,依据所述新的目标测试用例和或所述差异测试用例对所述待测数据库进行测试。优选地,所述根据每个生产数据库的基准测试数据以及日志文件,创建所述目标应用服务对应的基准测试用例,以获取多个基准测试用例包括:解析每个生产数据库对应的日志文件,获取每个生产数据库对应的操作命令集;根据每个生产数据库对应的基准测试数据以及相应的操作命令集,创建所述目标应用服务对应的基准测试用例,以获取多个基准测试用例。优选地,所述根据每个生产数据库的基准测试数据以及日志文件,创建所述目标应用服务对应的基准测试用例,以获取多个基准测试用例还包括:按照预设的处理条件对所述操作命令集进行过滤处理,得到第一操作命令集;执行所述第一操作命令集,剔除执行失败的操作命令得到目标操作命令集;所述根据每个生产数据库对应的基准测试数据以及相应的操作命令集,创建所述目标应用服务对应的基准测试用例,以获取多个基准测试用例包括:根据每个生产数据库对应的基准测试数据以及相应的目标操作命令集,创建所述目标应用服务对应的基准测试用例,以获取多个基准测试用例。第二方面,本发明提供一种测试装置,所述测试装置包括至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被程序设置为执行第一方面所述的测试方法。第三方面,本发明还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,用于完成第一方面所述的测试的方法。总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有如下有益效果:本发明的测试方法一方面基于多个生产数据库的日志文件创建目标测试用例,由于日志文件能够真实的反映目标应用服务的实际使用场景,因此,基于日志文件创建的目标测试用例能够很好的模拟目标应用服务的实际使用场景,提高了目标测试用例的覆盖率以及实用性。另一方面,由于目标应用服务在不同的生产数据库上的运行方式不同,为了提高目标测试用例的覆盖率,将多个基准测试用例进行融合得到目标测试用例,依据目标测试用例对目标应用服务在待测数据库上的运行情况进行测试,提高了测试的准确性,减小了误判情况的发生。附图说明图1是本发明实施例提供的一种测试方法的流程示意图;图2是图1中步骤12一具体实施例的流程示意图;图3是图1中步骤12另一具体实施例的流程示意图;图4是本发明实施例提供的另一种测试方法的流程示意图;图5是图4中步骤23一具体实施例的流程示意图;图6是本发明实施例提供的又一种测试方法的流程示意图;图7是本发明实施例提供的一种测试装置的结构示意图。具体实施方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。实施例1:在实际应用场景中,同一个目标应用服务可能在多个生产数据库上运行,且目标应用服务在每个生产数据库上的运行方式存在差异。为了节省成本或者基于其他因素的考虑,现需要设计一个新的数据库,使得目标应用服务可以在该数据库运行,且能满足多种运行方式。那么如何采用合适的测试用例对该数据库进行测试,以保证目标应用服务在数据库上能正常运行,是当前需要解决的问题。本实施例提供了一种测试方法,基于目标应用服务在多个不同数据库上运行时产生的日志文件生成多个基准测试用例,并将多个基准测试用例进行融合,得到目标测试用例,依据目标测试用例对目标应用服务在待测数据库上的运行情况进行测试,以确定目标应用服务在待测数据库上的运行情况,可以有效提高了测试的准确性,减小了误判情况的发生。下面结合图1~图3,具体说明本实施例的测试方法的执行过程。步骤10:获取多个生产数据库对应的基准测试数据以及日志文件。在本实施例中,首先,依次获取每个生产数据库的基准测试数据以及日志文件,进而得到多个生产数据库对应的基准测试数据以及日志文件。其中,基准测试数据文件是直接从生产数据库中导出而得到的,以获取逻辑形式的基准数据文件。具体而言,可以将多个生产数据库的基准测试数据文件导入到待测数据库,即得到待测数据库所需要使用的基准测试数据。在实际应用场景中,生产数据库在运行时,会产生相应的日志文件,并将日志文件存储在本地或远端存储设备上。其中,用户在对应用服务执行操作时,在底层上反映的是应用服务对应的应用程序对数据库的操作行为,而日志文件主要用于记录应用程序对数据库的操作行为。即,通过日志文件可以了解到应用程序对数据库进行了哪些操作以及具体的操作过程。举例说明,应用程序登陆数据库,并基于业务逻辑对数据库的数据进行了查询、修改操作等等,其中,该业务逻辑可能是一个交易行为,涉及货物查询、购物、支付、订单处理等行为。步骤11:根据每个生产数据库的基准测试数据以及日志文件,创建所述目标应用服务对应的基准测试用例,以获取多个基准测试用例,其中,每个基准测试用例与对应的生产数据库成一一映射关系。在本实施例中,由于目标应用服务在每个生产数据库上的运行方式不同,相应的,依据生产数据库的基准测试数据以及日志文件得到的基准测试用例也会相应的存在差异,即每个基准测试用例与对应的生产数据库成一一映射关系。下面以创建一个生产数据库对应的基准测试用例为例解释说明,创建基准测试用例的过程,其他生产数据库的对应的基准测试用例的创建过程类似,在此不再赘述。具体而言,测试装置根据基准测试数据以及日志文件生成基准测试用例。日志文件主要是对操作逻辑、有关数据的记录,不具备控制逻辑,因此测试装置需要根据基准测试数据以及日志文件生成基准测试用例,该基准测试用例实际上是用于对待测数据库进行测试的基准操作脚本。具体而言,解析所述日志文件以获取操作命令集,根据日志文件的结构,分析得到可执行的结构化查询语言SQLStructuredQueryLanguage,简写为SQL语句,并将执行参数与对应的SQL语句相关联得到操作命令集。然后,根据所述基准测试数据以及所述操作命令集创建基准测试用例。在实际应用场景中,由于日志文件中可能记录有重复的操作或者不符合测试条件的操作,为了提高测试的效率,可以按照预设的条件对基于日志文件获取到的操作命令集进行过滤处理后,再创建基准测试用例。在优选的实施例中,按照预设的处理条件对所述操作命令集进行过滤处理得到第一操作命令集,执行所述第一操作命令集,剔除执行失败的操作命令得到目标操作命令集。其中,预设的处理条件包括去重处理和操作对象筛选处理。在实际应用场景中,首先对操作命令集进行去重处理,可以按照如下函数对操作命令集执行去重处理。***@authorAdministrator*描述:用于去除重复类似的sql,减少测试sql数目*publicclassItemFilter{HashMapInteger,ArrayListStringmapFilter=newHashMapInteger,ArrayListString;SqlLoglog=null;SqlLoglog2=null;publicvoidsetDelLogStringfilename{iflog!=null{log.Close;log2.Close;}log=newSqlLogfilename;log2=newSqlLogfilename+".2.log";}publicvoidfinish{iflog!=null{log.Close;log2.Close;}}在对操作命令集进行去重处理之后,再采用过滤器对操作命令集进行过滤处理,例如,每个过滤器包含一个SQL特征如特定的SQL语句类型、操作特定对象的SQL以及处理操作如删除操作、相同或相似的操作保留一个或多个,使用过滤器反复处理操作命令集得到第一操作命令集。在实际应用场景中,可以按照如下函数执行过滤处理。***@Description:判断是否保留该sql*@param:*@return:boolean*publicbooleanisKeepStringsql{booleanflag=true;ifsql==null||sql.trim.length==0{returnfalse;}ifisDeleteSqlsql{如果确认删除sql,那么不需要保留log.logMessageNotPrintsql+"\r\n";returnfalse;}intlen=sql.split"\\s+".length;根据空格分隔sql字符串if!mapFilter.containsKeynewIntegerlen{ifhash-codenotexists,keepsqlArrayListStringtmp=newArrayListString;tmp.addsql;mapFilter.putnewIntegerlen,tmp;returntrue;}ArrayListStringvalues=mapFilter.getnewIntegerlen;IteratorStringit=values.iterator;whileit.hasNext{Stringsqltmp=it.next;ifsql.trim.equalsIgnoreCasesqltmp{找到相同的sql,那么该sql不保留log.logMessageNotPrintsql+"\r\n";flag=false;break;}to-do找到相似的sql,那么不保留,将删除的sql输入至临时文件ifisSimilarSqlsql,sqltmp{log2.logMessageNotPrintsql+"\r\n";flag=false;break;}}ifflag{sqlneedkeepvalues.addsql;mapFilter.putnewIntegerlen,values;}returnflag;}在对操作命令集进行过滤处理后得到的第一操作命令集内的SQL语句可能会存在执行失败的情况,在本实施例中,在得到第一操作命令集之后,还模拟执行所述第一操作命令集,剔除执行失败的操作命令之后得到目标操作命令集。然后,再根据所述基准测试数据以及所述目标操作命令集创建基准测试用例。按照上述方式依次获取每个生产数据库的基准测试用例,以获取多个基准测试用例。在本实施例中,基于日志文件创建测试用例,以得到数据库的操作脚本。由于测试用例可以模拟应用程序对数据库的操作行为,相当于是应用程序对数据库操作行为的回放,由此可以在不依赖应用程序的前提下,对数据库进行真实而全面的测试。步骤12:依据所述目标应用服务在所述待测数据库上的运行方式,将多个基准测试用例进行融合,得到目标测试用例。在本实施例中,测试装置依据所述目标应用服务在所述待测数据库上的运行方式,将多个基准测试用例进行融合,得到目标测试用例。其中,运行方式包括访问时间和访问对象中的一项或多项。在可选的实施例中,所述目标应用服务在多个生产数据库上运行,所述目标应用服务在每个生产数据库上运行的时间段互不重合。参阅图2,步骤12:依据所述目标应用服务在所述待测数据库上的运行方式,将多个基准测试用例进行融合,得到目标测试用例具体包括如下步骤:步骤1211:获取所述目标应用服务在所述待测数据库上运行时的访问时间。步骤1212:依据所述访问时间将多个基准测试用例进行有序融合,得到基于时间段界定的目标测试用例。举例而言,目标应用服务A在三个生产数据库上运行,且目标应用服务A在每个生产数据库上运行的时间段互不重合。例如,目标应用服务A在第一生产数据库上运行的时间段为00:00am~08:00am,目标应用服务A在第二生产数据库上运行的时间段为08:00am~20:00pm,目标应用服务A在第三生产数据库上运行的时间段为20:00pm~24:00pm。如果待测数据库需满足目标应用服务A在00:00am~24:00pm的任一时间段内均能正常运行,则依据目标应用服务A在第一、第二以及第三生产数据库的访问时间的先后顺序,将多个基准测试用例进行融合,得到00:00am~24:00pm时间段对应的目标测试用例。如果待测数据库需满足目标应用服务A在06:00am~22:00pm的任一时间段内均能正常运行,则获取目标应用服务A在第一生产数据库上运行的时间段为06:00am~08:00am对应的基准测试用例、目标应用服务A在第二生产数据库上运行时对应的基准测试用例以及目标应用服务A在第三生产数据库上运行的时间段为20:00pm~22:00pm对应的基准测试用例,并将前述的三个基准测试用例按照时间的先后顺序进行融合,得到06:00am~22:00pm时间段对应的目标测试用例。在另一个可选的实施例中,所述目标应用服务在多个生产数据库上运行,所述目标应用服务在每个生产数据库上的访问对象互不相同。参阅图3,步骤12:依据所述目标应用服务在所述待测数据库上的运行方式,将多个基准测试用例进行融合,得到目标测试用例具体包括如下步骤:步骤1221:获取所述目标应用服务在所述待测数据库上运行时的目标访问对象。步骤1222:依据所述目标访问对象将多个基准测试用例进行融合,得到基于访问对象界定的目标测试用例。举例而言,目标应用服务A在两个生产数据库上运行,且目标应用服务A在每个生产数据库上的访问对象互不相同。例如,目标应用服务A在第一生产数据库上的访问对象为研发人员,目标应用服务A在第二生产数据库上的访问对象为工厂人员。而待测数据库需满足目标应用服务A能够被研发人员和或工厂人员访问,则,依据目标应用服务A在第一、第二生产数据库的访问对象,将多个基准测试用例进行融合,得到基于访问对象界定的目标测试用例。在实际应用场景中,可以设置工号为登录名,依据工号可以判定访问对象的类型。由于研发人员和工厂人员的工作性质不同,在操作目标应用服务A时,二者的操作行为也有所差异,则待测数据库的功能与性能也会相应的不同。通过基于访问对象界定的目标测试用例对待测数据库进行测试,从而确定当访问对象不同时,目标应用服务在待测数据库上是否能够正常运行,提高了测试的全面性。步骤13:依据所述目标测试用例对所述待测数据库进行测试,得到所述目标应用服务在所述待测数据库上运行情况的测试结果。在本实施例中,依据所述目标测试用例对所述待测数据库进行测试,得到所述目标应用服务在所述待测数据库上运行情况的测试结果。实施例2:在实际应用场景中,由于生产数据库与待测数据库之间可能存在差异,依据多个生产数据库的基准测试数据和日志文件创建的目标测试用例可能与待测数据库不匹配,进而导致测试结果与待测数据库的实际性能不符,为了提高测试的准确性。本实施例判断确定目标测试用例是否适用于待测数据库,在目标测试用例适用于待测数据库时,才基于目标测试用例对目标应用服务在待测数据库上运行情况,提高了测试的准确性,减小了误判情况的发生。测试方法的具体流程请参阅图4。步骤20:获取多个生产数据库对应的基准测试数据以及日志文件。步骤21:根据每个生产数据库的基准测试数据以及日志文件,创建所述目标应用服务对应的基准测试用例,以获取多个基准测试用例,其中,每个基准测试用例与对应的生产数据库成一一映射关系。步骤22:依据所述目标应用服务在所述待测数据库上的运行方式,将多个基准测试用例进行融合,得到目标测试用例。其中,步骤20~步骤22与实施例1的步骤10~步骤12相同,具体的实施过程请参照步骤10~步骤12,在此不再赘述。步骤23:判断确定所述目标测试用例是否适用于所述待测数据库。在本实施例中,关于测试用例是否适用于待测数据库可从不同的维度对进行判断确定。在可选的实施例中,可以依据生产数据库的基准测试环境以及待测数据库的目标测试环境进行判断。若所述目标测试用例适用于所述待测数据库,则执行步骤24;若所述目标测试用例不适用于所述待测数据库,则执行步骤25。参阅图5,步骤23:判断确定所述目标测试用例是否适用于所述待测数据库具体包括如下步骤:步骤2311:获取所述生产数据库的基准测试环境以及所述待测数据库的目标测试环境。在本实施例中,获取所述生产数据库的基准测试环境以及所述待测数据库的目标测试环境。其中,基准测试环境为获取基准测试数据以及相应的日志文件时,生产数据库的实际工作环境,基准测试环境包括操作系统平台、操作系统版本、数据规模、客户端并发规模、硬件资源中的一项或者多项。目标测试环境为对待测数据库进行测试的待测数据库的工作环境,基准测试环境包括操作系统平台、操作系统版本、数据规模、客户端并发规模、硬件资源中的一项或者多项。步骤2312:将所述基准测试环境与所述目标测试环境进行相似度匹配,获取所述基准测试环境和所述目标测试环境之间的相似度。在本实施例中,将所述基准测试环境与所述目标测试环境进行相似度匹配,获取所述基准测试环境和所述目标测试环境之间的相似度。为了得到更准确的相似度,可以依据测试环境的类型配置相应的权重,例如,操作系统平台和操作系统版本配置为第一相似度权重值,数据库的客户端并发规模和硬件资源配置为第二相似度权重值。举例而言,首先比对生产数据库和待测数据库的操作系统平台以及操作系统版本,依据生产数据库和待测数据库的操作系统平台以及操作系统版本之间的相似程度确定第一相似度,然后再比对生产数据库和待测数据库的客户端并发规模以及硬件资源,依据生产数据库和待测数据库的客户端并发规模以及硬件资源之间的相似度确定第二相似度,最后第一相似度乘以第一相似度权重值得到第一相似度加权值,第二相似度乘以第二相似度权重值得到第二相似度加权值,将第一相似度加权值和第二相似度加权值相叠加得到生产数据库和待测数据库之间的相似度。其中,第一相似度权重和第二相似度权重依据实际情况而定。例如,生产数据库和待测数据库的操作系统平台以及操作系统版本相同,则第一相似度为1;生产数据库和待测数据库的客户端并发规模以及硬件资源存在差异,并确定第二相似度为0.9。由于操作系统平台以及操作系统版本对测试结果的决定性更大,预设第一相似度权重值为60%,第二相似度权重值为40%,生产数据库和待测数据库之间的相似度为1*60%+0.9*40%=0.96。步骤2313:判断确定所述基准测试环境和所述目标测试环境之间的相似度是否大于预设的相似度阈值。其中,预设的相似度阈值依据实际情况设计,可以为80%或90%,在此不做具体限定。在本实施例中,判断确定所述基准测试环境和所述目标测试环境之间的相似度是否大于预设的相似度阈值。例如,预设的相似度阈值为90%,生产数据库和待测数据库之间的相似度为0.96,则生产数据库和待测数据库之间的相似度大于预设的相似度阈值。若生产数据库和待测数据库之间的相似度大于预设的相似度阈值,则执行步骤2314,若生产数据库和待测数据库之间的相似度小于预设的相似度阈值,则执行步骤2315。步骤2314:若所述基准测试环境和所述目标测试环境之间的相似度大于预设的相似度阈值,则所述目标测试用例适用于所述待测数据库。步骤2315:若所述基准测试环境和所述目标测试环境之间的相似度小于预设的相似度阈值,则所述目标测试用例不适用于所述待测数据库,重新创建目标测试用例。在又一个可选的实施例中,首先,依据生产数据库的基准测试环境以及待测数据库的目标测试环境进行判断得到二者的相似度,在生产数据库的基准测试环境以及待测数据库的目标测试环境的相似度达到预设的相似度阈值时,然后再依据生产数据库与待测数据库之间的关联关系得到二者的测试权重,联合生产数据库的基准测试环境以及待测数据库的目标测试环境的相似度和生产数据库与待测数据库之间的测试权重得到目标测试权重,然后用目标测试权重按照步骤2313~步骤2315的方式判断确定目标测试用例是否适用于待测数据库将测试权重对应的值调整为目标测试权重对应的值。步骤24:若所述目标测试用例适用于所述待测数据库,则依据所述目标测试用例对所述待测数据库进行测试,得到所述目标应用服务在所述待测数据库上运行情况的测试结果。步骤25:若所述目标测试用例适用于所述待测数据库,重新创建目标测试用例。在本实施例中,若所述测试用例适用于所述待测数据库,则依据所述测试用例对所述待测数据库进行测试,并输出测试结果;若所述目标测试用例适用于所述待测数据库,重新创建目标测试用例。实施例3:区别于上述实施例1和实施例2,为了进一步确保测试用例的准确性,在本实施例中,按照预设的时间间隔重新获取多个生产数据库的基准测试数据以及日志文件,并依据重新获取到的基准测试数据以及日志文件创建新的目标测试用例。基于新的目标测试用例与历史目标测试用例的差异,判断确定是否需要更换目标测试用例。具体方法流程请参阅图6。步骤30:按照预设的时间间隔重新获取所述生产数据库的基准测试数据以及日志文件。考虑到应用程序更新或者其他因素会引起作用于数据库操作命令集的改变数据库日志文件也会改变,所以导致测试用例的改变,此时需要重新分析日志,生成测试用例。在本实施例中,按照预设的时间间隔重新获取所述生产数据库的基准测试数据以及日志文件,以创建新的基准测试用例。其中,预设的时间间隔可依据实际情况而定。步骤31:依据重新获取到的基准测试数据以及日志文件,创建新的目标测试用例。其中,依据重新获取到的基准测试数据以及日志文件,创建新的目标测试用例的具体过程,可参阅实施例1的步骤10~步骤12,在此不再赘述。步骤32:判断确定所述新的目标测试用例与历史目标测试用例之间的差异是否大于预设的差异阈值。在本实施例中,判断确定所述新的测试用例与历史测试用例之间的差异是否大于预设的差异阈值,若大于则说明需要更换测试用例,执行步骤33,若小于则说明无需更换测试用例,执行步骤34。其中,预设的差异阈值依据实际情况而定。步骤33:若所述新的目标测试用例与所述历史目标测试用例之间的差异大于预设的差异阈值,则依据所述新的目标测试用例与所述历史目标测试用例之间的差异获取差异测试用例,依据所述新的目标测试用例和或所述差异测试用例对所述待测数据库进行测试。在本实施例中,若所述新的目标测试用例与所述历史目标测试用例之间的差异大于预设的差异阈值,则说明历史目标测试用例无法真实全面的对待测数据库进行测试,则需要更换目标测试用例。举例而言,当依据历史目标测试用例已经输出测试结果时,为了提高测试的效率,可以仅依据差异测试用例对待测数据库进行测试,重点分析差异测试用例对应的测试结果。可选地,为了保证测试的准确性,也可以直接用新的目标测试用例对待测数据库重新进行测试。或者,可以采用差异测试用例和新的目标测试用例对待测数据库进行测试,并输出新的测试用例对应的测试结果以及差异测试用例对应的差异测试结果。关于更换目标测试用例的方式可以依据实际情况而定,在此不做具体限定。步骤34:若所述新的目标测试用例与所述历史目标测试用例之间的差异小于预设的差异阈值,则无需更换目标测试用例。区别于现有技术,本发明的测试方法一方面基于多个生产数据库的日志文件创建目标测试用例,由于日志文件能够真实的反映目标应用服务的实际使用场景,因此,基于日志文件创建的目标测试用例能够很好的模拟目标应用服务的实际使用场景,提高了目标测试用例的覆盖率以及实用性。另一方面,由于目标应用服务在不同的生产数据库上的运行方式不同,为了提高目标测试用例的覆盖率,将多个基准测试用例进行融合得到目标测试用例,依据目标测试用例对目标应用服务在待测数据库上的运行情况进行测试,提高了测试的准确性,减小了误判情况的发生。实施例4:请参阅图7,图7是本发明实施例提供的一种测试装置的结构示意图。本实施例的测试装置括一个或多个处理器71以及存储器72。其中,图7中以一个处理器71为例。处理器71和存储器72可以通过总线或者其他方式连接,图7中以通过总线连接为例。存储器72作为一种基于测试方法的非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如实现如上述实施例任一所述的测试方法以及对应的程序指令。处理器71通过运行存储在存储器72中的非易失性软件程序、指令以及模块,从而执行测试方法的各种功能应用以及数据处理,实现如上述实施例任一所述的测试方法的功能。其中,存储器72可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器72可选包括相对于处理器71远程设置的存储器,这些远程存储器可以通过网络连接至处理器71。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。关于测试方法请参照图1~图6及相关的文字描述,在此不再赘述。值得说明的是,上述装置和系统内的模块、单元之间的信息交互、执行过程等内容,由于与本发明的处理方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。本领域普通技术人员可以理解实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器ReadOnlyMemory,简写为ROM、随机存取存储器RandomAccessMemory,简写为RAM、磁盘或光盘等。本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

权利要求:1.一种测试方法,其特征在于,目标应用服务在多个生产数据库上运行,所述目标应用服务在每个生产数据库上的运行方式存在差异;所述测试方法包括:获取多个生产数据库对应的基准测试数据以及日志文件;根据每个生产数据库的基准测试数据以及日志文件,创建所述目标应用服务对应的基准测试用例,以获取多个基准测试用例,其中,每个基准测试用例与对应的生产数据库成一一映射关系;依据所述目标应用服务在所述待测数据库上的运行方式,将多个基准测试用例进行融合,得到目标测试用例;依据所述目标测试用例对所述待测数据库进行测试,得到所述目标应用服务在所述待测数据库上运行情况的测试结果。2.根据权利要求1所述的测试方法,其特征在于,所述目标应用服务在多个生产数据库上运行,所述目标应用服务在每个生产数据库上运行的时间段互不重合;所述依据所述目标应用服务在所述待测数据库上的运行方式,将多个基准测试用例进行融合,得到目标测试用例包括:获取所述目标应用服务在所述待测数据库上运行时的访问时间;依据所述访问时间将多个基准测试用例进行有序融合,得到基于时间段界定的目标测试用例。3.根据权利要求1所述的测试方法,其特征在于,所述目标应用服务在多个生产数据库上运行,所述目标应用服务在每个生产数据库上的访问对象互不相同;所述依据所述目标应用服务在所述待测数据库上的运行方式,将多个基准测试用例进行融合,得到目标测试用例包括:获取所述目标应用服务在所述待测数据库上运行时的目标访问对象;依据所述目标访问对象将多个基准测试用例进行融合,得到基于访问对象界定的目标测试用例。4.根据权利要求1所述的测试方法,其特征在于,所述测试方法还包括:判断确定所述目标测试用例是否适用于所述待测数据库;若所述目标测试用例适用于所述待测数据库,则依据所述目标测试用例对所述待测数据库进行测试,得到所述目标应用服务在所述待测数据库上运行情况的测试结果。5.根据权利要求4所述的测试方法,其特征在于,所述判断确定所述目标测试用例是否适用于所述待测数据库包括:获取所述生产数据库的基准测试环境以及所述待测数据库的目标测试环境;将所述基准测试环境与所述目标测试环境进行相似度匹配,获取所述基准测试环境和所述目标测试环境之间的相似度;判断确定所述基准测试环境和所述目标测试环境之间的相似度是否大于预设的相似度阈值;若所述基准测试环境和所述目标测试环境之间的相似度大于预设的相似度阈值,则所述目标测试用例适用于所述待测数据库。6.根据权利要求5所述的测试方法,其特征在于,所述基准测试环境和所述目标测试环境包括操作系统平台、操作系统版本、数据规模、客户端并发规模、硬件资源中的一项或者多项。7.根据权利要求4所述的测试方法,其特征在于,所述测试方法还包括:按照预设的时间间隔重新获取多个生产数据库的基准测试数据以及日志文件;依据重新获取到的基准测试数据以及日志文件,创建新的目标测试用例;判断确定所述新的目标测试用例与历史目标测试用例之间的差异是否大于预设的差异阈值,其中,所述历史目标测试用例为当前对所述待测数据库进行测试的目标测试用例;若所述新的目标测试用例与所述历史目标测试用例之间的差异大于预设的差异阈值,则依据所述新的目标测试用例与所述历史目标测试用例之间的差异获取差异测试用例,依据所述新的目标测试用例和或所述差异测试用例对所述待测数据库进行测试。8.根据权利要求1所述的测试方法,其特征在于,所述根据每个生产数据库的基准测试数据以及日志文件,创建所述目标应用服务对应的基准测试用例,以获取多个基准测试用例包括:解析每个生产数据库对应的日志文件,获取每个生产数据库对应的操作命令集;根据每个生产数据库对应的基准测试数据以及相应的操作命令集,创建所述目标应用服务对应的基准测试用例,以获取多个基准测试用例。9.根据权利要求8所述的测试方法,其特征在于,所述根据每个生产数据库的基准测试数据以及日志文件,创建所述目标应用服务对应的基准测试用例,以获取多个基准测试用例还包括:按照预设的处理条件对所述操作命令集进行过滤处理,得到第一操作命令集;执行所述第一操作命令集,剔除执行失败的操作命令得到目标操作命令集;所述根据每个生产数据库对应的基准测试数据以及相应的操作命令集,创建所述目标应用服务对应的基准测试用例,以获取多个基准测试用例包括:根据每个生产数据库对应的基准测试数据以及相应的目标操作命令集,创建所述目标应用服务对应的基准测试用例,以获取多个基准测试用例。10.一种测试装置,其特征在于,所述测试装置包括至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被程序设置为执行如权利要求1~9任一项所述的测试方法。

百度查询: 武汉达梦数据库股份有限公司 一种测试方法以及测试装置

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。