CN111309596A - 数据库测试方法、装置、终端设备及存储介质 - Google Patents
数据库测试方法、装置、终端设备及存储介质 Download PDFInfo
- Publication number
- CN111309596A CN111309596A CN202010059952.6A CN202010059952A CN111309596A CN 111309596 A CN111309596 A CN 111309596A CN 202010059952 A CN202010059952 A CN 202010059952A CN 111309596 A CN111309596 A CN 111309596A
- Authority
- CN
- China
- Prior art keywords
- test
- target
- statement
- database
- information
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
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)
- Debugging And Monitoring (AREA)
Abstract
本申请实施例适用于测试技术领域,提供了一种数据库测试方法、装置、终端设备及存储介质,所述方法包括:获取针对目标数据库的测试语句,将所述测试语句分割为多个语句段;采用预置的正则表达式分别对所述多个语句段进行正则匹配,获得所述目标数据库的测试信息,所述测试信息包括测试类型信息;获取与所述测试类型信息相匹配的目标配置语句;根据所述测试信息和所述目标配置语句,生成目标测试语句;采用所述目标测试语句对所述目标数据库进行测试。本实施例可以采用一种语法对应的测试语句实现对不同类型数据库的测试。
Description
技术领域
本申请属于测试技术领域,特别是涉及一种数据库测试方法、装置、终端设备及存储介质。
背景技术
MongoDB是一种基于分布式文件存储的数据库,具有高性能、易部署、易使用等特性。随着MongoDB在软件行业的日益流行,越来越多的系统开始采用MongoDB作为存储。
通常,用户在使用接口平台进行接口测试时,许多测试场景都要求结合数据库进行验证。虽然业内大部分接口平台都提供了执行数据库语句的功能,但对MongoDB数据库的支持仍然较少,或者只能按照接口平台提供的非原生态语法执行对MongoDB数据库的操作。例如,接口平台需要通过非原生态语法MongoClient远程去操作MongoDB数据库。由于MongoDB原生态语法与MongoClient执行的语句存在一定差异,如果接口平台只支持MongoClient语法,测试人员不仅需要重新去学习MongoClient语法,增加测试人员的学习成本,还需要同时维护两套数据库语句,增加维护成本,不利于项目快速迭代的要求。另一方面,由于接口平台缺少对MongoDB数据库的支持,在对测试接口进行比对时,事先设计的自动化场景也容易因为无法对比而不能得到有效保证,更严重地还会导致依赖数据库返回值作为入参的接口无法实现自动化。
发明内容
有鉴于此,本申请实施例提供了一种数据库测试方法、装置、终端设备及存储介质,以解决现有技术中无法使用MongoClient执行语句直接对MongoDB数据库进行测试的问题。
本申请实施例的第一方面提供了一种数据库测试方法,包括:
获取针对目标数据库的测试语句,将所述测试语句分割为多个语句段;
采用预置的正则表达式分别对所述多个语句段进行正则匹配,获得所述目标数据库的测试信息,所述测试信息包括测试类型信息;
获取与所述测试类型信息相匹配的目标配置语句;
根据所述测试信息和所述目标配置语句,生成目标测试语句;
采用所述目标测试语句对所述目标数据库进行测试。
本申请实施例的第二方面提供了一种数据库测试装置,包括:
语句段分割模块,用于获取针对目标数据库的测试语句,将所述测试语句分割为多个语句段;
正则匹配模块,用于采用预置的正则表达式分别对所述多个语句段进行正则匹配,获得所述目标数据库的测试信息,所述测试信息包括测试类型信息;
目标配置语句获取模块,用于获取与所述测试类型信息相匹配的目标配置语句;
目标测试语句生成模块,用于根据所述测试信息和所述目标配置语句,生成目标测试语句;
数据库测试模块,用于采用所述目标测试语句对所述目标数据库进行测试。
本申请实施例的第三方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述数据库测试方法的步骤。
本申请实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述数据库测试方法的步骤。
与现有技术相比,本申请实施例包括以下优点:
本申请实施例,通过获取针对目标数据库的测试语句,在将测试语句分割为多个语句段后,可以采用预置的正则表达式分别对多个语句段进行正则匹配,获得目标数据库的测试信息;然后,通过获取与测试信息中的测试类型信息相匹配的目标配置语句,可以根据测试信息和目标配置语句,生成目标测试语句,使得测试设备可以采用上述目标测试语句对目标数据库进行测试。本实施例通过采用正则匹配的方式从仅仅适于数据库的语句中匹配出用于执行测试的测试信息,然后可以基于上述信息生成适于测试设备的执行语句,解决了使用某些类型数据库的用户在采用测试设备执行测试任务时,由于测试设备不支持该类型数据库语句而需要重新学习测试语法的问题,使得用户在测试时,可以直接使用与日常操作数据库相同的语法执行测试,方便了测试人员直接把数据库原生态语句直接迁移到测试设备上,减少了用户的学习成本以及维护成本,提高了测试效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个实施例的一种数据库测试方法的步骤流程示意图;
图2是本申请一个实施例的另一种数据库测试方法的步骤流程示意图;
图3是本申请一个实施例的一种数据库测试装置的示意图;
图4是本申请一个实施例的一种终端设备的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域技术人员应当清楚,在没有这些具体细节的其他实施例中也可以实现本申请。在其他情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
下面通过具体实施例来说明本申请的技术方案。
参照图1,示出了本申请一个实施例的一种数据库测试方法的步骤流程示意图,具体可以包括如下步骤:
S101、获取针对目标数据库的测试语句,将所述测试语句分割为多个语句段;
需要说明的是,本方法可以适用于终端设备,该终端设备可以是能够对数据库进行测试的设备或工具。
一般地,测试设备对数据库的测试都是通过一定的测试语句来实现的。在建立测试设备与数据库之间的通信连接后,测试设备通过向数据库发送一条或数条测试语句,以验证数据库是否具备某些功能,或者检测数据库的性能是否稳定。
通常,测试设备所提供的测试语句都是某种编程语言写成的,如果需要进行测试的数据库也是基于该语言开发的,那么就可以直接使用相同的语言编写测试语句。但是,若开发数据库所使用的编程语言与测试设备所使用的语言不同,则无法直接测试设备所提供的测试语句对数据库进行测试,需要将数据库适用的语句转换为测试设备能够理解的语句,以方便接口测试工具准确地执行。本实施例即是通过获取适用于数据库的测试语句,经过一系列的处理,从而将其转换为适用于测试设备的目标测试语句。
因此,针对目标数据库的测试语句可以是按照开发该目标数据库时使用的编程语言所编写的测试语句。如果测试测试所使用的编程语言与数据库所使用的编程语言不通,这类测试语句则不能直接在测试设备中进行使用。
在本实施例中,测试语句可以是由测试人员通过测试设备的前端界面输入的。测试设备在获取到上述测试语句后,可以按照一定的规则将语句分割为多个语句段。
在具体实现中,可以根据测试语句所使用的语法规则对语句进行分割。例如,某些编程语言使用点分隔符(.)来间隔同一个语句中的不同部分,而另外一些编程语言则可能直接使用空格来间隔同一个语句中的不同部分。因此,在对测试语句进行分隔时,就可以按照点分隔符或者空格来完成语句段的划分。
或者,也可以使用类似于分词的方式,通过对测试语句中的各个英文词语或词组进行识别,将测试语句分割为多个语句段,本实施例对此不作限定。
S102、采用预置的正则表达式分别对所述多个语句段进行正则匹配,获得所述目标数据库的测试信息,所述测试信息包括测试类型信息;
预置的正则表达式可以是与数据库所采用的编程语言相匹配的表达式,即通过正则表达式的匹配,可以识别出测试语句中各个语句段的具体内容。
通常,对于不同的编程语言,正则表达式一般是不同的。因此,若希望采用同一测试设备对使用多种不同编程语言的数据库进行测试时,需要分别针对每一种编程语言编写相应的正则表达式。
在具体实现中,采用正则表达式对测试语句进行正则匹配时,可以逐个地对各个语句段来进行匹配和识别,所识别出的内容即是测试语句中携带的测试信息。
例如,通过对测试语句的各个语句段进行正则匹配,可以获得相应的数据表信息、测试类型信息和测试对象信息,等等。
上述数据表信息可以是指数据库中需要进行测试的是哪一张表,测试类型信息则表示应当采用何种测试方式进行测试,而测试对象信息又可以具体指明数据表中的哪一个字段需要进行测试。
当然,根据实际需求的不同,通过正则匹配获得的测试信息还可以包括其他信息,如测试时间信息等等。
S103、获取与所述测试类型信息相匹配的目标配置语句;
在本实施例中,可以根据测试设备所使用的编程语言预先编写多个配置语言,每一个配置语言可以表示一种具体的测试方式或测试类型。
通常,针对数据库的测试语句除了包括能够让测试设备理解的具体的测试所使用的内容外,还包括数据库的一些参数信息。因此,在编写配置语言时,可以预先确定测试设备能够实现的测试类型包括哪些,然后针对每一类型分别编写出配置语句,并将其中用于写入数据库的参数信息的位置用模板语言进行代替。
在正则匹配获得测试类型信息后,可以直接从预先编写的配置语句中查找出与该类型相匹配的目标配置语句。
例如,针对测试类型为find(查找),可以遍历多个配置语言,将其中属于查找这一类型的配置语句提取出来。
S104、根据所述测试信息和所述目标配置语句,生成目标测试语句;
在匹配出测试信息,并查找出相应类型的目标配置语句后,便可以采用上述信息生成目标测试语句。目标测试语句可以是指采用适于在测试设备中使用的编程语言所写成的。
S105、采用所述目标测试语句对所述目标数据库进行测试。
需要说明的是,在正式采用目标测试语句对目标数据库进行测试前,测试设备还可以对生成的目标测试语句进行检查,判断该语句是否符合相应的语法规则。
如果目标测试语句不符合测试设备的语法规则,则可以生成提示信息反馈至测试设备的前端界面,不进入执行阶段,避免不必要的数据库资源操作。
在本申请实施例中,通过获取针对目标数据库的测试语句,在将测试语句分割为多个语句段后,可以采用预置的正则表达式分别对多个语句段进行正则匹配,获得目标数据库的测试信息;然后,通过获取与测试信息中的测试类型信息相匹配的目标配置语句,可以根据测试信息和目标配置语句,生成目标测试语句,使得测试设备可以采用上述目标测试语句对目标数据库进行测试。本实施例通过采用正则匹配的方式从仅仅适于数据库的语句中匹配出用于执行测试的测试信息,然后可以基于上述信息生成适于测试设备的执行语句,解决了使用某些类型数据库的用户在采用测试设备执行测试任务时,由于测试设备不支持该类型数据库语句而需要重新学习测试语法的问题,使得用户在测试时,可以直接使用与日常操作数据库相同的语法执行测试,方便了测试人员直接把数据库原生态语句直接迁移到测试设备上,减少了用户的学习成本以及维护成本,提高了测试效率。
参照图2,示出了本申请一个实施例的另一种数据库测试方法的步骤流程示意图,具体可以包括如下步骤:
S201、获取针对目标数据库的测试语句,识别所述测试语句中包含的分隔符;根据所述分隔符,将所述测试语句分割为多个语句段;
需要说明的是,本方法可以适用于测试设备。即,通过测试设备对测试人员输入的测试语句进行处理,生成能够适于测试设备直接执行的目标测试语句,从而供测试设备采用目标测试语句完成对数据库的测试。
为了便于理解,本实施例以目标数据库为MongoDB数据库,测试设备所使用执行语句为基于MongoClient语法编写的MongoClient语句为例进行后续介绍。
因此,针对目标数据库的测试语句可以是指针对MongoDB数据库进行测试的MongoDB执行语句。由于MongoClient语法与MongoDB数据库所采用的MongoDB语法存在一定差异,在采用基于MongoClient语法的测试设备进行测试时,需要将MongoDB语句转换为MongoClient语句,以方便测试设备准确地执行。
在本实施例中,MongoDB语句可以是由测试人员通过测试设备的前端界面输入的。例如,db.getCollection(‘abc’).find({“sname”:”sun”})
当然,在输入上述MongoDB语句前,测试人员还需要通过前端界面选择需要执行的数据库类型以及需要执行的数据库地址。
测试设备在接收到上述MongoDB语句后,可以根据预设规则将该语句分割为多个语句段。后续可以通过对各个语句段进行转换、拼接得到符合MongoClient语法的目标测试语句。
针对MongoDB语法的特性,在具体实现中,可以通过点分隔符(.)将MongoDB语句分割为多个语句段。
例如,对于上述示例,通过点分隔符分割后可以得到三个不同的语句段:
db;
getCollection(‘abc’);和,
find({“sname”:”sun”})。
S202、针对所述多个语句段中的任一目标语句段,识别所述目标语句段是否为所述测试语句的语句头;
通常,用于执行数据库测试的MongoDB语句都是由多个部分组成的,例如,语句头、数据表执行语句和测试信息执行语句。
对于上述示例,db为语句头,getCollection(‘abc’)为数据表执行语句,find({“sname”:”sun”})为测试信息执行语句。
其中,语句头仅仅用于表示该语句所适用的语法,而无其他具体含义。
因此,针对分割后获得的多个语句段中的任一目标语句段,可以首先识别该目标语句段是否为测试语句中的语句头,上述目标语句段即是当前正在进行识别的任意一个语句段。若是,则可以直接舍弃掉该语句头;若某一语句段不属于语句头,则可以继续执行步骤S203,将所述目标语句段与预置的多个正则表达式逐个进行正则匹配。
S203、将所述目标语句段与预置的多个正则表达式逐个进行正则匹配;
通常,对于不同的编程语言,正则表达式一般是不同的。因此,可以针对数据库适用的每一种编程语言编写相应的正则表达式。
对于测试语句中的各个语句段,可以逐个地对各个语句段来进行匹配和识别,所识别出的内容即是测试语句中携带的测试信息。
本实施例所采用的正则表达式匹配方法可以是match()方法,该方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。
根据编程规则,所有的MongoDB语句均以db作为语句头。因此在分割得到语句段为db时,可以不对该语句段进行match匹配。
S204、当所述目标语句段命中任一正则表达式时,获取当前命中的正则表达式对应的测试信息,并将所述当前命中的正则表达式对应的测试信息作为所述目标数据库的测试信息,所述测试信息包括测试类型信息;
在本实施例中,若某一语句段经过match匹配,命中了一条正在表达式,则可以直接提取该表达式对应的测试信息。
例如,在采用match()方法对分割得到的语句段进行识别后,可以确定当前执行测试的数据表名称为“abc”,相应的测试信息为find({“sname”:”sun”})。
需要说明的是,写入MongoDB语句中的测试类型信息一般包括执行测试时的具体类型和具体的测试对象。因此,在对测试类型信息进行识别时,可以执行多次match匹配过程。
在具体实现中,当目标语句段命中预置的测试类型表达式时,可以直接获取测试类型表达式对应的测试类型信息,然后采用预置的测试对象表达式再次对目标语句段进行正则匹配,获取测试对象表达式对应的测试对象信息。
当然,采用测试对象表达式对目标语句段进行正则匹配的过程可以包括多次,以便识别出原测试语句中的多个测试对象。
在上述示例中,经过两次match匹配可以获得执行测试的测试类型为find(查找),相应的测试对象为{“sname”:”sun”}。
S205、获取与所述测试类型信息相匹配的目标配置语句;
在本实施例中,针对不同的测试类型,可以采用MongoClient语法预先为各个测试类型编写对应的配置语句。
通常,针对数据库的测试语句除了包括能够让测试设备理解的具体的测试所使用的内容外,还包括数据库的一些参数信息。因此,在编写配置语言时,可以预先确定测试设备能够实现的测试类型包括哪些,然后针对每一类型分别编写出配置语句,并将其中用于写入数据库的参数信息的位置用模板语言进行代替。
例如,针对find(查找)这一测试类型,其对应的MongoClient配置语句可以表示为:
dbo.collection(databaseName).find(optionStr).toArray(function(err,result))。
S206、以所述数据表信息、所述测试类型信息和所述测试对象信息为参数,将所述参数传入所述目标配置语句,生成目标测试语句;
在本实施例中,对于步骤S204中获得的数据表信息、测试类型信息和测试对象信息等,可以将其作为参数传入步骤S205中获得的目标配置语句中,生成用于执行针对MongoDB数据库的测试的MongoClient执行语句,
在具体实现中,可以首先识别各个参数在目标配置语句中的位置,然后将上述获得的数据表信息、测试类型信息和测试对象信息分别写入目标配置语句中对应的位置,生成目标测试语句。
S207、采用所述目标测试语句对所述目标数据库进行测试。
在将使用MongoDB语法编写的MongoDB测试语句转换为使用MongoClient语法编写的MongoClient目标测试语句后,测试工具便可以采用上述目标测试语句对MongoDB数据库进行测试。
本申请实施例通过采用正则表达式匹配的方式从MongoDB语句中匹配出用于执行测试的数据表、测试类型和测试对象信息后,可以基于上述信息生成MongoClient执行语句,解决了使用MongoDB数据库的用户在采用测试设备执行测试任务时,由于测试设备不支持MongoDB语句而需要重新学习MongoClient语法的问题,使得用户在测试时,可以直接使用与日常操作数据库相同的MongoDB语法,方便了测试人员直接把MongoDB原生态语句直接迁移到测试设备中,减少了用户的学习成本以及维护成本。
需要说明的是,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
参照图3,示出了本申请一个实施例的一种数据库测试装置的示意图,具体可以包括如下模块:
语句段分割模块301,用于获取针对目标数据库的测试语句,将所述测试语句分割为多个语句段;
正则匹配模块302,用于采用预置的正则表达式分别对所述多个语句段进行正则匹配,获得所述目标数据库的测试信息,所述测试信息包括测试类型信息;
目标配置语句获取模块303,用于获取与所述测试类型信息相匹配的目标配置语句;
目标测试语句生成模块304,用于根据所述测试信息和所述目标配置语句,生成目标测试语句;
数据库测试模块305,用于采用所述目标测试语句对所述目标数据库进行测试。
在本申请实施例中,所述语句段分割模块301具体可以包括如下子模块:
分隔符识别子模块,用于获取针对目标数据库的测试语句,识别所述测试语句中包含的分隔符;
语句段分割子模块,用于根据所述分隔符,将所述测试语句分割为多个语句段。
在本申请实施例中,所述正则匹配模块302具体可以包括如下子模块:
语句头识别子模块,用于针对所述多个语句段中的任一目标语句段,识别所述目标语句段是否为所述测试语句的语句头;
正则匹配子模块,用于若否,则将所述目标语句段与预置的多个正则表达式逐个进行正则匹配;
测试信息获取子模块,用于在所述目标语句段命中任一正则表达式时,获取当前命中的正则表达式对应的测试信息,并将所述当前命中的正则表达式对应的测试信息作为所述目标数据库的测试信息。
在本申请实施例中,所述正则表达式可以包括测试类型表达式和测试对象表达式,所述测试信息获取子模块具体可以包括如下单元:
测试类型信息获取单元,用于在所述目标语句段命中预置的测试类型表达式时,获取所述测试类型表达式对应的测试类型信息;
测试对象信息获取单元,用于采用预置的测试对象表达式再次对所述目标语句段进行正则匹配,获取所述测试对象表达式对应的测试对象信息。
在本申请实施例中,所述测试信息还可以包括数据表信息,所述目标测试语句生成模块304具体可以包括如下子模块:
目标测试语句生成子模块,用于以所述数据表信息、所述测试类型信息和所述测试对象信息为参数,将所述参数传入所述目标配置语句,生成目标测试语句。
在本申请实施例中,所述目标测试语句生成子模块具体可以包括如下单元:
参数位置识别单元,用于识别各个参数在所述目标配置语句中的位置;
测试信息写入单元,用于将所述数据表信息、所述测试类型信息和所述测试对象信息分别写入所述目标配置语句中对应的位置,生成目标测试语句。
在本申请实施例中,所述目标数据库可以为MongoDB数据库,所述测试语句可以为针对所述MongoDB数据库进行测试的MongoDB执行语句,所述目标测试语句可以为针对所述MongoDB数据库进行测试的MongoClient执行语句。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述得比较简单,相关之处参见方法实施例部分的说明即可。
参照图4,示出了本申请一个实施例的一种终端设备的示意图。如图4所示,本实施例的终端设备400包括:处理器410、存储器420以及存储在所述存储器420中并可在所述处理器410上运行的计算机程序421。所述处理器410执行所述计算机程序421时实现上述数据库测试方法各个实施例中的步骤,例如图1所示的步骤S101至S105。或者,所述处理器410执行所述计算机程序421时实现上述各装置实施例中各模块/单元的功能,例如图3所示模块301至305的功能。
示例性的,所述计算机程序421可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器420中,并由所述处理器410执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段可以用于描述所述计算机程序421在所述终端设备400中的执行过程。例如,所述计算机程序421可以被分割成语句段分割模块、正则匹配模块、目标配置语句获取模块、目标测试语句生成模块和数据库测试模块,各模块具体功能如下:
语句段分割模块,用于获取针对目标数据库的测试语句,将所述测试语句分割为多个语句段;
正则匹配模块,用于采用预置的正则表达式分别对所述多个语句段进行正则匹配,获得所述目标数据库的测试信息,所述测试信息包括测试类型信息;
目标配置语句获取模块,用于获取与所述测试类型信息相匹配的目标配置语句;
目标测试语句生成模块,用于根据所述测试信息和所述目标配置语句,生成目标测试语句;
数据库测试模块,用于采用所述目标测试语句对所述目标数据库进行测试。
所述终端设备400可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备400可包括,但不仅限于,处理器410、存储器420。本领域技术人员可以理解,图4仅仅是终端设备400的一种示例,并不构成对终端设备400的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备400还可以包括输入输出设备、网络接入设备、总线等。
所述处理器410可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器420可以是所述终端设备400的内部存储单元,例如终端设备400的硬盘或内存。所述存储器420也可以是所述终端设备400的外部存储设备,例如所述终端设备400上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等等。进一步地,所述存储器420还可以既包括所述终端设备400的内部存储单元也包括外部存储设备。所述存储器420用于存储所述计算机程序421以及所述终端设备400所需的其他程序和数据。所述存储器420还可以用于暂时地存储已经输出或者将要输出的数据。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制。尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种数据库测试方法,其特征在于,包括:
获取针对目标数据库的测试语句,将所述测试语句分割为多个语句段;
采用预置的正则表达式分别对所述多个语句段进行正则匹配,获得所述目标数据库的测试信息,所述测试信息包括测试类型信息;
获取与所述测试类型信息相匹配的目标配置语句;
根据所述测试信息和所述目标配置语句,生成目标测试语句;
采用所述目标测试语句对所述目标数据库进行测试。
2.根据权利要求1所述的方法,其特征在于,所述获取针对目标数据库的测试语句,将所述测试语句分割为多个语句段,包括:
获取针对目标数据库的测试语句,识别所述测试语句中包含的分隔符;
根据所述分隔符,将所述测试语句分割为多个语句段。
3.根据权利要求1所述的方法,其特征在于,所述采用预置的正则表达式分别对所述多个语句段进行正则匹配,获得所述目标数据库的测试信息,包括:
针对所述多个语句段中的任一目标语句段,识别所述目标语句段是否为所述测试语句的语句头;
若否,则将所述目标语句段与预置的多个正则表达式逐个进行正则匹配;
当所述目标语句段命中任一正则表达式时,获取当前命中的正则表达式对应的测试信息,并将所述当前命中的正则表达式对应的测试信息作为所述目标数据库的测试信息。
4.根据权利要求3所述的方法,其特征在于,所述正则表达式包括测试类型表达式和测试对象表达式,所述当所述目标语句段命中任一正则表达式时,获取当前命中的正则表达式对应的测试信息,包括:
当所述目标语句段命中预置的测试类型表达式时,获取所述测试类型表达式对应的测试类型信息;
采用预置的测试对象表达式再次对所述目标语句段进行正则匹配,获取所述测试对象表达式对应的测试对象信息。
5.根据权利要求4所述的方法,其特征在于,所述测试信息还包括数据表信息,所述根据所述测试信息和所述目标配置语句,生成目标测试语句,包括:
以所述数据表信息、所述测试类型信息和所述测试对象信息为参数,将所述参数传入所述目标配置语句,生成目标测试语句。
6.根据权利要求5所述的方法,其特征在于,所述以所述数据表信息、所述测试类型信息和所述测试对象信息为参数,将所述参数传入所述目标配置语句,生成目标测试语句,包括:
识别各个参数在所述目标配置语句中的位置;
将所述数据表信息、所述测试类型信息和所述测试对象信息分别写入所述目标配置语句中对应的位置,生成目标测试语句。
7.根据权利要求1所述的方法,其特征在于,所述目标数据库为MongoDB数据库,所述测试语句为针对所述MongoDB数据库进行测试的MongoDB执行语句,所述目标测试语句为针对所述MongoDB数据库进行测试的MongoClient执行语句。
8.一种数据库测试装置,其特征在于,包括:
语句段分割模块,用于获取针对目标数据库的测试语句,将所述测试语句分割为多个语句段;
正则匹配模块,用于采用预置的正则表达式分别对所述多个语句段进行正则匹配,获得所述目标数据库的测试信息,所述测试信息包括测试类型信息;
目标配置语句获取模块,用于获取与所述测试类型信息相匹配的目标配置语句;
目标测试语句生成模块,用于根据所述测试信息和所述目标配置语句,生成目标测试语句;
数据库测试模块,用于采用所述目标测试语句对所述目标数据库进行测试。
9.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述数据库测试方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述数据库测试方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010059952.6A CN111309596A (zh) | 2020-01-19 | 2020-01-19 | 数据库测试方法、装置、终端设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010059952.6A CN111309596A (zh) | 2020-01-19 | 2020-01-19 | 数据库测试方法、装置、终端设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111309596A true CN111309596A (zh) | 2020-06-19 |
Family
ID=71158323
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010059952.6A Pending CN111309596A (zh) | 2020-01-19 | 2020-01-19 | 数据库测试方法、装置、终端设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111309596A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111773728A (zh) * | 2020-07-09 | 2020-10-16 | 网易(杭州)网络有限公司 | 数据表测试方法、装置、设备及存储介质 |
CN112035373A (zh) * | 2020-09-08 | 2020-12-04 | 厦门亿联网络技术股份有限公司 | 基本测试脚本的测试方法、装置、服务器及介质 |
CN113434413A (zh) * | 2021-06-28 | 2021-09-24 | 平安银行股份有限公司 | 基于数据差异的数据测试方法、装置、设备及存储介质 |
-
2020
- 2020-01-19 CN CN202010059952.6A patent/CN111309596A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111773728A (zh) * | 2020-07-09 | 2020-10-16 | 网易(杭州)网络有限公司 | 数据表测试方法、装置、设备及存储介质 |
CN112035373A (zh) * | 2020-09-08 | 2020-12-04 | 厦门亿联网络技术股份有限公司 | 基本测试脚本的测试方法、装置、服务器及介质 |
CN113434413A (zh) * | 2021-06-28 | 2021-09-24 | 平安银行股份有限公司 | 基于数据差异的数据测试方法、装置、设备及存储介质 |
CN113434413B (zh) * | 2021-06-28 | 2023-06-06 | 平安银行股份有限公司 | 基于数据差异的数据测试方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109086199B (zh) | 一种自动化生成测试脚本的方法、终端和可存储介质 | |
CN105701008B (zh) | 用于测试用例生成的系统和方法 | |
CN107688803B (zh) | 字符识别中识别结果的校验方法和装置 | |
JP6909832B2 (ja) | オーディオにおける重要語句を認識するための方法、装置、機器及び媒体 | |
CN111309596A (zh) | 数据库测试方法、装置、终端设备及存储介质 | |
US11031009B2 (en) | Method for creating a knowledge base of components and their problems from short text utterances | |
US11327874B1 (en) | System, method, and computer program for orchestrating automatic software testing | |
CN107221328B (zh) | 修改源的定位方法及装置、计算机设备及可读介质 | |
US9766868B2 (en) | Dynamic source code generation | |
WO2022227314A1 (zh) | 动态同步测试方法、装置、设备及存储介质 | |
US11307975B2 (en) | Machine code analysis for identifying software defects | |
US10839308B2 (en) | Categorizing log records at run-time | |
US9619209B1 (en) | Dynamic source code generation | |
US20160162385A1 (en) | Correlation of violating change sets in regression testing of computer software | |
WO2018153316A1 (zh) | 获取文本提取模型的方法及装置 | |
CN109947651B (zh) | 人工智能引擎优化方法和装置 | |
CN114792089A (zh) | 用于管理计算机系统的方法、设备和程序产品 | |
CN111897946A (zh) | 漏洞补丁推荐方法、系统、计算机设备和存储介质 | |
CN110750440A (zh) | 数据测试方法及终端设备 | |
CN111325031A (zh) | 简历解析方法及装置 | |
CN112749079B (zh) | 软件测试的缺陷分类方法、装置及计算设备 | |
KR20220036099A (ko) | 자동통역 오류 유형을 자동으로 진단 및 교정하는 방법 | |
CN110134435A (zh) | 一种代码修复案例获取方法、装置、设备及存储介质 | |
US11989560B2 (en) | Method and device for executing instructions to perform artificial intelligence | |
US20220058530A1 (en) | Method and device for optimizing deep learning model conversion, and storage medium |
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 |