CN111143196A - 数据库的测试方法以及装置 - Google Patents

数据库的测试方法以及装置 Download PDF

Info

Publication number
CN111143196A
CN111143196A CN201911232018.3A CN201911232018A CN111143196A CN 111143196 A CN111143196 A CN 111143196A CN 201911232018 A CN201911232018 A CN 201911232018A CN 111143196 A CN111143196 A CN 111143196A
Authority
CN
China
Prior art keywords
test
database
task
definition information
set definition
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
Application number
CN201911232018.3A
Other languages
English (en)
Inventor
梁俊杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Wind Gather Intelligence Technology Co ltd
Original Assignee
Wuhan Wind Gather Intelligence Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuhan Wind Gather Intelligence Technology Co ltd filed Critical Wuhan Wind Gather Intelligence Technology Co ltd
Priority to CN201911232018.3A priority Critical patent/CN111143196A/zh
Publication of CN111143196A publication Critical patent/CN111143196A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques

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

数据库的测试方法以及装置
技术领域
本申请涉及测试领域,尤其涉及数据库的测试方法以及装置。
背景技术
数据库的数据库测试,一种方式是通过手动方式,由工作人员通过人工操作模拟,或者说还原数据库的实际使用场景,对数据库进行测试;另一种方式则可以采用测试脚本,在测试脚本中写入本次数据库测试任务的相关信息,自动化地对数据库进行测试。
容易看出,通过测试脚本,可极大地提高数据库测试的测试效率,因此,除非是特殊情况,例如测试脚本测试难以模拟某些使用场景、某些数据需要人工进行配置等,才考虑人工介入完成数据库测试。
然而,在便捷地完成数据库测试的同时,也应看到的,通过测试脚本进行数据库测试之前,仍需工作人员去配置测试脚本,若能减少测试脚本的配置成本,则可进一步提高数据库测试的测试效率。
发明内容
本申请实施例提供了数据库的测试方法以及装置,用于在对目标数据库进行测试的过程中,简化测试脚本的配置成本,进一步提高数据库测试的测试效率。
第一方面,本申请实施例提供了一种数据库的测试方法,方法包括:
接收测试请求,测试请求用于请求对目标数据库执行数据库测试任务;
根据数据库测试任务的任务信息,获取数据库测试任务对应的测试用例;
根据测试用例以及初始测试脚本,生成数据库测试任务对应的测试脚本;
通过测试脚本,对目标数据库发起数据库测试。
在示例性的实施例中,根据数据库测试任务的任务信息,获取数据库测试任务对应的测试用例包括:
根据数据库测试任务的任务信息,调取数据库测试任务对应的表集定义信息、集合定义信息以及测试用例生成策略,其中,表集定义信息用于定义测试用例需要使用的表的范围,集合定义信息用于定义用例分组以及组内用例存在的依赖关系,测试用例生成策略为用于生成测试用例的实参;
根据表集定义信息、集合定义信息以及测试用例生成策略,生成数据库测试任务对应的测试用例。
在示例性的实施例中,测试用例生成策略包括:
不引用表中数据,根据参数定义采用随机函数随机生成;或者,
顺序选择表中数据,生成参数的多个值;或者,
随机选择表中数据,生成参数值的多个值;或者,
指定表中的目标数据,生成参数固定值;或者,
单个语句内存在多个输入参数且后一参数与前一参数存在依赖关系时,可以选择同一记录的不同字段值或者同一字段值;或者,
多个语句间存在依赖关系时,后执行的语句的输入参数使用先执行语句的返回记录集的结果。
在示例性的实施例中,根据数据库测试任务的任务信息,调取数据库测试任务对应的表集定义信息、集合定义信息以及测试用例生成策略包括:
根据数据库测试任务的任务信息获取测试环境标识,测试环境标识用于标识数据库测试任务对应的测试环境;
从测试用例结构信息中调取与测试环境标识具有对应关系的表集定义信息、集合定义信息以及测试用例生成策略;
方法还包括:
从测试脚本信息中调取与测试环境标识具有对应关系的初始测试脚本。
在示例性的实施例中,通过测试脚本,对目标数据库发起数据库测试包括:
通过测试脚本,生成多个测试事务并向目标数据库发送多个测试事务;
通过测试脚本,监测以及收集目标数据库对于多个测试事务的响应;
通过测试脚本,在目标数据库对于多个测试事务的响应的基础上生成目标数据库的测试结果。
第二方面,本申请实施例提供了一种数据库的测试装置,装置包括:
接收单元,用于接收测试请求,测试请求用于请求对目标数据库执行数据库测试任务;
获取单元,用于根据数据库测试任务的任务信息,获取数据库测试任务对应的测试用例;
生成单元,用于根据测试用例以及初始测试脚本,生成数据库测试任务对应的测试脚本;
测试单元,用于通过测试脚本,对目标数据库发起数据库测试。
在示例性的实施例中,获取单元,具体用于:
根据数据库测试任务的任务信息,调取数据库测试任务对应的表集定义信息、集合定义信息以及测试用例生成策略,其中,表集定义信息用于定义测试用例需要使用的表的范围,集合定义信息用于定义用例分组以及组内用例存在的依赖关系,测试用例生成策略为用于生成测试用例的实参;
根据表集定义信息、集合定义信息以及测试用例生成策略,生成数据库测试任务对应的测试用例。
在示例性的实施例中,测试用例生成策略包括:
不引用表中数据,根据参数定义采用随机函数随机生成;或者,
顺序选择表中数据,生成参数的多个值;或者,
随机选择表中数据,生成参数值的多个值;或者,
指定表中的目标数据,生成参数固定值;或者,
单个语句内存在多个输入参数且后一参数与前一参数存在依赖关系时,可以选择同一记录的不同字段值或者同一字段值;或者,
多个语句间存在依赖关系时,后执行的语句的输入参数使用先执行语句的返回记录集的结果。
在示例性的实施例中,获取单元,具体用于:
根据数据库测试任务的任务信息获取测试环境标识,测试环境标识用于标识数据库测试任务对应的测试环境;
从测试用例结构信息中调取与测试环境标识具有对应关系的表集定义信息、集合定义信息以及测试用例生成策略;
获取单元,还用于:
从测试脚本信息中调取与测试环境标识具有对应关系的初始测试脚本。
在示例性的实施例中,其特征在于,测试单元,具体用于:
通过测试脚本,生成多个测试事务并向目标数据库发送多个测试事务;
通过测试脚本,监测以及收集目标数据库对于多个测试事务的响应;
通过测试脚本,在目标数据库对于多个测试事务的响应的基础上生成目标数据库的测试结果。
第三方面,本申请实施例提供了数据库的测试设备,包括处理器,处理器用于执行存储器中存储的计算机程序时实现如上述第一方面的任一步骤。
第四方面,本申请实施例提供了可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上述第一方面的任一步骤。
从以上技术方案可以看出,本申请实施例具有以下优点:
一方面,每次在执行数据库测试任务的过程中,根据本次数据库测试任务的任务信息,生成对应的测试脚本,因此可保证该测试脚本精确完成本次的数据库测试任务,即精确地对目标数据库发起数据库测试,并得到对应的测试结果。
另一方面,由于将测试脚本拆分为初始测试脚本以及测试用例,可以理解,初始测试脚本为不包含测试用例的脚本框架,而测试用例则由本次数据库测试任务的任务信息获取得到,因此,仅需生成本次数据库测试任务对应的测试用例,即可结合测试用例以及初始测试脚本两者快速生成最终的测试脚本,并根据该测试脚本对目标数据库发起数据库测试,高效率且自动化地完成本次的数据库测试任务。
附图说明
图1为本申请实施例数据库的测试方法的一种流程示意图;
图2为本申请图1对应实施例步骤S102的一种流程示意图;
图3为本申请图2对应实施例步骤S201的一种流程示意图;
图4为图1对应实施例步骤S104的一种流程示意图;
图5为本申请实施例数据库的测试方法的一种结构示意图;
图6为本申请实施例数据库的测试方法的一种结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块。在本申请中出现的对步骤进行的命名或者编号,并不意味着必须按照命名或者编号所指示的时间/逻辑先后顺序执行方法流程中的步骤,已经命名或者编号的流程步骤可以根据要实现的技术目的变更执行次序,只要能达到相同或者相类似的技术效果即可。
本申请中所出现的模块的划分,是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式,例如多个模块可以结合成或集成在另一个***中,或一些特征可以忽略,或不执行,另外,所显示的或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,模块之间的间接耦合或通信连接可以是电性或其他类似的形式,本申请中均不作限定。并且,作为分离部件说明的模块或子模块可以是也可以不是物理上的分离,可以是也可以不是物理模块,或者可以分布到多个电路模块中,可以根据实际的需要选择其中的部分或全部模块来实现本申请方案的目的。
在介绍本申请实施例提供的测试数据的处理方法之前,先介绍本申请实施例涉及的应用背景。
本申请实施例提供的数据库的测试方法,其执行主体可以为数据库的测试装置,或者集成了该数据库的测试装置的服务器设备或者物理主机等不同类型的数据库的测试设备,其中,数据库的测试装置可以采用硬件或者软件的方式实现。数据库的测试设备可以为一个设备,也可以为多个设备组成,随实际需要配置。
其中,数据库具体可以为Oracle、MySQL、SQLServer、达梦、金仓、南大通用等类型的数据库。需要说明的是,基于简洁说明的目的,本申请实施例所称的数据库实际所指的是数据库管理***,也就是说,数据库测试针对的是数据库管理***。
以TPC-E测试为例,数据库的测试设备可以为驱动器设备,驱动器设备上通过测试脚本,运行CE Server组件、MEE Server组件以及Driver组件,其中,Driver组件用于控制CEServer组件以及MEE Server组件,CE Server组件用于模拟客户操作型事务,MEE Server用于模拟市场操作型事务,通过Driver组件、CE Server组件以及MEE Server组件,向数据库发起测试事务,测试数据库对于这些测试事务的事务处理能力,进而得到数据库在TPC-E测试基准下的性能。
数据库测试除了可以为TPC-E测试,还可以为TPC-C、TPC-DS或者TPC-H等类型的数据库测试,随实际需要而定,具体在此不做限定。
在现有的相关技术中,由于仍需工作人员配置测试脚本,人工操作意味着不小的配置时间以及人工成本,在一定程度上限制了数据库测试的测试效率。
基于现有的相关技术存在的上述缺陷,本申请实施例提供了数据库的测试方法,至少在一定程度上克服现有的相关技术所存在的缺陷。
图1示出了本申请实施例数据库的测试方法的一种流程示意图,如图1示出的,本申请实施例提供的数据库的测试方法,具体可包括如下步骤:
步骤S101,接收测试请求,测试请求用于请求对目标数据库执行数据库测试任务;
步骤S102,根据数据库测试任务的任务信息,获取数据库测试任务对应的测试用例;
步骤S103,根据测试用例以及初始测试脚本,生成数据库测试任务对应的测试脚本;
步骤S104,通过测试脚本,对目标数据库发起数据库测试。
在图1所示实施例提出的技术方案中,一方面,每次在执行数据库测试任务的过程中,根据本次数据库测试任务的任务信息,生成对应的测试脚本,因此可保证该测试脚本精确完成本次的数据库测试任务,即精确地对目标数据库发起数据库测试,并得到对应的测试结果。
另一方面,由于将测试脚本拆分为初始测试脚本以及测试用例,可以理解,初始测试脚本为不包含测试用例的脚本框架,而测试用例则由本次数据库测试任务的任务信息获取得到,因此,仅需生成本次数据库测试任务对应的测试用例,即可结合测试用例以及初始测试脚本两者快速生成最终的测试脚本,并根据该测试脚本对目标数据库发起数据库测试,高效率且自动化地完成本次的数据库测试任务。
以下继续对图1所示实施例的各个步骤的具体实施方式进行详细阐述:
在示例性的实施例中,作为图1对应实施例步骤S102的具体实现方式,参阅图2示出的本申请图1对应实施例步骤S102的一种流程示意图,可包括步骤S201以及步骤S202:
步骤S201,根据数据库测试任务的任务信息,调取数据库测试任务对应的表集定义信息、集合定义信息以及测试用例生成策略,其中,表集定义信息用于定义测试用例需要使用的表的范围,集合定义信息用于定义用例分组以及组内用例存在的依赖关系,测试用例生成策略为用于生成测试用例的实参;
可以理解,为了针对每次数据库测试任务,实现测试用例的自动生成,可设计一套结构,可定义用例、用例间的依赖关系以及参数定义。
举例而言,可结合三层的定义模式,实现该结构,即上述提出的表集定义信息、集合定义信息以及测试用例生成策略。
其中,分组的目的是为了解决不同测试用例之间的依赖关系定义,存在依赖关系的不同测试用例可以放在一个组内,方便相互引用。
集合定义信息中具体可包括:
(1)测试用例分组;
(2)组内的测试用例的依赖关系;
(3)测试用例的生成数量、混合比例、参数列表或者结果集处理方式等。
在实际应用中,可为不同的数据库测试任务,配置相对应的不同的表集定义信息、集合定义信息以及测试用例生成策略,具体的,可在数据库测试任务的任务信息中携带匹配标识(Identification,ID),用于匹配与该匹配标识具有对应关系的表集定义信息、集合定义信息以及测试用例生成策略。当然,也可从任务信息的预设字段中分别提取其特征信息,例如脚本类型、测试用例类型、模拟用户类型等特征信息,匹配相对应的表集定义信息、集合定义信息以及测试用例生成策略。
例如,可预先配置不同的任务信息、表集定义信息、集合定义信息以及测试用例生成策略,以及四者之间的对应关系,并将这些信息输入初始模型进行正向传播,并根据损失函数进行反向传播,调节模型中的参数,如此训练得到一个可根据当前数据库测试任务的任务信息匹配出当前数据库测试任务对应的表集定义信息、集合定义信息以及测试用例生成策略的匹配模型,不仅便于灵活学习以及调节匹配关系,还可精准快速地得到匹配的表集定义信息、集合定义信息以及测试用例生成策略。
步骤S202,根据表集定义信息、集合定义信息以及测试用例生成策略,生成数据库测试任务对应的测试用例。
在得到本次数据库测试任务对应的表集定义信息、集合定义信息以及测试用例生成策略后,即可根据三者,生成本次数据库测试任务所需的测试用例。
在示例性的实施例中,上述提及的测试用例生成策略,具体可包括:
不引用表中数据,根据参数定义采用随机函数随机生成;或者,
顺序选择表中数据,生成参数的多个值;或者,
随机选择表中数据,生成参数值的多个值;或者,
指定表中的目标数据,生成参数固定值;或者,
单个语句内存在多个输入参数且后一参数与前一参数存在依赖关系时,可以选择同一记录的不同字段值或者同一字段值;或者,
多个语句间存在依赖关系时,后执行的语句的输入参数使用先执行语句的返回记录集的结果。
举例而言,测试用例生成策略可以以列表的形式存在,例如可参考下面列出的表1。
表1-测试用例生成策略
Figure BDA0002303820880000091
在获取测试用例生成策略时,可直接根据不同测试用例生成策略对应的代码进行查询以及具体策略内容的读取。
需要说明的是,上述的测试用例生成策略仅为举例,不应理解为全部的测试用例生成策略,还可采用其他具体的测试用例生成策略。
在示例性的实施例中,作为上述图2对应实施例步骤S201的具体实现方式,参阅图3示出的本申请图2对应实施例步骤S201的一种流程示意图,具体可包括:
步骤S301,根据数据库测试任务的任务信息获取测试环境标识,测试环境标识用于标识数据库测试任务对应的测试环境;
在上述图2对应实施例步骤S201的说明中,已提及了匹配标识,而在进一步的实现方式中,则可针对不同的测试环境配置不同的测试环境标识,以此标识本次数据库测试任务的测试环境。
步骤S302,从测试用例结构信息中调取与测试环境标识具有对应关系的表集定义信息、集合定义信息以及测试用例生成策略。
可以理解,对于不同的表集定义信息、集合定义信息以及测试用例生成策略,可预先将这些信息封装于测试用例结构信息中,该测试用例结构信息还封装不同的测试环境标识、表集定义信息、集合定义信息以及测试用例生成策略四者之间的对应关系。如此在获取表集定义信息、集合定义信息以及测试用例生成策略时,可根据测试环境标识从测试用例结构信息进行查找以及读取。
与上述测试环境标识的应用对应的,本申请实施例提供的数据库的测试方法,还可包括:
从测试脚本信息中调取与测试环境标识具有对应关系的初始测试脚本。
举例而言,不仅测试用例可与测试环境相对应,初始测试脚本也可与测试环境相对应,由此,可根据测试环境标识从测试脚本信息中获取相对应的初始测试脚本,该测试脚本信息用于封装不同的初始测试脚本。
在示例性的实施例中,作为图1对应实施例步骤S104的具体实现方式,参阅图4示出的本申请图1对应实施例步骤S104的一种流程示意图,具体的,可包括:
步骤S401,通过测试脚本,生成多个测试事务并向目标数据库发送多个测试事务;
步骤S402,通过测试脚本,监测以及收集目标数据库对于多个测试事务的响应;
步骤S403,通过测试脚本,在目标数据库对于多个测试事务的响应的基础上生成目标数据库的测试结果。
容易理解,在根据初始测试脚本以及测试用例生成本次数据库测试任务的测试脚本后,可通过该测试脚本,执行数据库测试,取得测试结果。
以TPC-E测试为例,可向目标数据库发起经纪人交易统计事务、客户价值统计事务、市场观察事务、证券信息事务、交易查询事务、交易执行事务、交易状态事务以及交易修正事务、市场跟踪事务以及交易结果更新事务共10种类型的测试事务,并监测目标数据库对于这些测试事务的响应,例如处理状态、处理结果等,在根据监测得到的响应结果,生成目标数据库的测试结果,例如JSON格式的测试报告。
以上是对本申请实施例数据库的测试方法的介绍,下面开始介绍本申请实施例提供的数据库的测试装置。
参阅图5,图5示出了本申请实施例数据库的测试装置的一种结构示意图,具体的,本申请提供的数据库的测试装置500,具体可包括如下结构:
接收单元501,用于接收测试请求,测试请求用于请求对目标数据库执行数据库测试任务;
获取单元502,用于根据数据库测试任务的任务信息,获取数据库测试任务对应的测试用例;
生成单元503,用于根据测试用例以及初始测试脚本,生成数据库测试任务对应的测试脚本;
测试单元504,用于通过测试脚本,对目标数据库发起数据库测试。
在示例性的实施例中,获取单元502,具体用于:
根据数据库测试任务的任务信息,调取数据库测试任务对应的表集定义信息、集合定义信息以及测试用例生成策略,其中,表集定义信息用于定义测试用例需要使用的表的范围,集合定义信息用于定义用例分组以及组内用例存在的依赖关系,测试用例生成策略为用于生成测试用例的实参;
根据表集定义信息、集合定义信息以及测试用例生成策略,生成数据库测试任务对应的测试用例。
在示例性的实施例中,测试用例生成策略包括:
不引用表中数据,根据参数定义采用随机函数随机生成;或者,
顺序选择表中数据,生成参数的多个值;或者,
随机选择表中数据,生成参数值的多个值;或者,
指定表中的目标数据,生成参数固定值;或者,
单个语句内存在多个输入参数且后一参数与前一参数存在依赖关系时,可以选择同一记录的不同字段值或者同一字段值;或者,
多个语句间存在依赖关系时,后执行的语句的输入参数使用先执行语句的返回记录集的结果。
在示例性的实施例中,获取单元502,具体用于:
根据数据库测试任务的任务信息获取测试环境标识,测试环境标识用于标识数据库测试任务对应的测试环境;
从测试用例结构信息中调取与测试环境标识具有对应关系的表集定义信息、集合定义信息以及测试用例生成策略;
获取单元502,还用于:
从测试脚本信息中调取与测试环境标识具有对应关系的初始测试脚本。
在示例性的实施例中,其特征在于,测试单元503,具体用于:
通过测试脚本,生成多个测试事务并向目标数据库发送多个测试事务;
通过测试脚本,监测以及收集目标数据库对于多个测试事务的响应;
通过测试脚本,在目标数据库对于多个测试事务的响应的基础上生成目标数据库的测试结果。
参阅图6,图6示出了本申请实施例数据库的测试设备的一种结构示意图,具体的,本申请实施例数据库的测试设备包括处理器601,处理器601用于执行存储器602中存储的计算机程序时实现如图1至图4对应任意实施例中实施例数据库的测试方法的各步骤;或者,处理器601用于执行存储器502中存储的计算机程序时实现如图5对应实施例中各单元的功能。
示例性的,计算机程序可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器602中,并由处理器601执行,以完成本申请。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序在计算机装置中的执行过程。
数据库的测试设备可包括,但不仅限于处理器601、存储器602。本领域技术人员可以理解,示意仅仅是数据库的测试设备的示例,并不构成对数据库的测试设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如数据库的测试设备还可以包括输入输出设备、网络接入设备、总线等,处理器601、存储器602、输入输出设备以及网络接入设备等通过总线相连。
处理器601可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,处理器是数据库的测试设备的控制中心,利用各种接口和线路连接整个数据库的测试设备的各个部分。
存储器602可用于存储计算机程序和/或模块,处理器601通过运行或执行存储在存储器602内的计算机程序和/或模块,以及调用存储在存储器602内的数据,实现计算机装置的各种功能。存储器602可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据数据库的测试设备的使用所创建的数据(比如音频数据、视频数据等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
本申请还提供了可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如图1至图4对应任意实施例中的数据库的测试方法。
可以理解,集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各方法实施例的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的数据库的测试装置、设备及其单元的具体工作过程,可以参考图1至图4对应实施例中数据库的测试方法的说明,具体在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的数据库的测试装置、设备及其单元,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (10)

1.一种数据库的测试方法,其特征在于,所述方法包括:
接收测试请求,所述测试请求用于请求对目标数据库执行数据库测试任务;
根据所述数据库测试任务的任务信息,获取所述数据库测试任务对应的测试用例;
根据所述测试用例以及初始测试脚本,生成所述数据库测试任务对应的测试脚本;
通过所述测试脚本,对所述目标数据库发起数据库测试。
2.根据权利要求1所述的方法,其特征在于,所述根据所述数据库测试任务的任务信息,获取所述数据库测试任务对应的测试用例包括:
根据所述数据库测试任务的任务信息,调取所述数据库测试任务对应的表集定义信息、集合定义信息以及测试用例生成策略,其中,所述表集定义信息用于定义测试用例需要使用的表的范围,所述集合定义信息用于定义用例分组以及组内用例存在的依赖关系,所述测试用例生成策略为用于生成测试用例的实参;
根据所述表集定义信息、所述集合定义信息以及所述测试用例生成策略,生成所述数据库测试任务对应的测试用例。
3.根据权利要求2所述的方法,其特征在于,所述测试用例生成策略包括:
不引用表中数据,根据参数定义采用随机函数随机生成;或者,
顺序选择表中数据,生成参数的多个值;或者,
随机选择表中数据,生成参数值的多个值;或者,
指定表中的目标数据,生成参数固定值;或者,
单个语句内存在多个输入参数且后一参数与前一参数存在依赖关系时,可以选择同一记录的不同字段值或者同一字段值;或者,
多个语句间存在依赖关系时,后执行的语句的输入参数使用先执行语句的返回记录集的结果。
4.根据权利要求2所述的方法,其特征在于,所述根据所述数据库测试任务的任务信息,调取所述数据库测试任务对应的表集定义信息、集合定义信息以及测试用例生成策略包括:
根据所述数据库测试任务的任务信息获取测试环境标识,所述测试环境标识用于标识所述数据库测试任务对应的测试环境;
从测试用例结构信息中调取与所述测试环境标识具有对应关系的所述表集定义信息、所述集合定义信息以及所述测试用例生成策略;
所述方法还包括:
从测试脚本信息中调取与所述测试环境标识具有对应关系的所述初始测试脚本。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述通过所述测试脚本,对所述目标数据库发起数据库测试包括:
通过所述测试脚本,生成多个测试事务并向所述目标数据库发送所述多个测试事务;
通过所述测试脚本,监测以及收集所述目标数据库对于所述多个测试事务的响应;
通过所述测试脚本,在所述目标数据库对于所述多个测试事务的响应的基础上生成所述目标数据库的测试结果。
6.一种数据库的测试装置,其特征在于,所述装置包括:
接收单元,用于接收测试请求,所述测试请求用于请求对目标数据库执行数据库测试任务;
获取单元,用于根据所述数据库测试任务的任务信息,获取所述数据库测试任务对应的测试用例;
生成单元,用于根据所述测试用例以及初始测试脚本,生成所述数据库测试任务对应的测试脚本;
测试单元,用于通过所述测试脚本,对所述目标数据库发起数据库测试。
7.根据权利要求6所述的装置,其特征在于,所述获取单元,具体用于:
根据所述数据库测试任务的任务信息,调取所述数据库测试任务对应的表集定义信息、集合定义信息以及测试用例生成策略,其中,所述表集定义信息用于定义测试用例需要使用的表的范围,所述集合定义信息用于定义用例分组以及组内用例存在的依赖关系,所述测试用例生成策略为用于生成测试用例的实参;
根据所述表集定义信息、所述集合定义信息以及所述测试用例生成策略,生成所述数据库测试任务对应的测试用例。
8.根据权利要求7所述的装置,其特征在于,所述测试用例生成策略包括:
不引用表中数据,根据参数定义采用随机函数随机生成;或者,
顺序选择表中数据,生成参数的多个值;或者,
随机选择表中数据,生成参数值的多个值;或者,
指定表中的目标数据,生成参数固定值;或者,
单个语句内存在多个输入参数且后一参数与前一参数存在依赖关系时,可以选择同一记录的不同字段值或者同一字段值;或者,
多个语句间存在依赖关系时,后执行的语句的输入参数使用先执行语句的返回记录集的结果。
9.根据权利要求7所述的装置,其特征在于,所述获取单元,具体用于:
根据所述数据库测试任务的任务信息获取测试环境标识,所述测试环境标识用于标识所述数据库测试任务对应的测试环境;
从测试用例结构信息中调取与所述测试环境标识具有对应关系的所述表集定义信息、所述集合定义信息以及所述测试用例生成策略;
所述获取单元,还用于:
从测试脚本信息中调取与所述测试环境标识具有对应关系的所述初始测试脚本。
10.根据权利要求1至9中任一项所述的装置,其特征在于,所述测试单元,具体用于:
通过所述测试脚本,生成多个测试事务并向所述目标数据库发送所述多个测试事务;
通过所述测试脚本,监测以及收集所述目标数据库对于所述多个测试事务的响应;
通过所述测试脚本,在所述目标数据库对于所述多个测试事务的响应的基础上生成所述目标数据库的测试结果。
CN201911232018.3A 2019-12-05 2019-12-05 数据库的测试方法以及装置 Pending CN111143196A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911232018.3A CN111143196A (zh) 2019-12-05 2019-12-05 数据库的测试方法以及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911232018.3A CN111143196A (zh) 2019-12-05 2019-12-05 数据库的测试方法以及装置

Publications (1)

Publication Number Publication Date
CN111143196A true CN111143196A (zh) 2020-05-12

Family

ID=70517547

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911232018.3A Pending CN111143196A (zh) 2019-12-05 2019-12-05 数据库的测试方法以及装置

Country Status (1)

Country Link
CN (1) CN111143196A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114077449A (zh) * 2020-08-20 2022-02-22 网联清算有限公司 数据库服务器的测试方法、装置、电子设备和存储介质
CN114138677A (zh) * 2021-12-24 2022-03-04 北京华大九天科技股份有限公司 测试方法及装置、测试***、电子设备
CN117093473A (zh) * 2023-07-14 2023-11-21 领悦数字信息技术有限公司 用于大数据测试的方法和***

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110147319A (zh) * 2019-04-19 2019-08-20 平安普惠企业管理有限公司 数据库测试方法、装置及计算机设备
CN110389900A (zh) * 2019-07-10 2019-10-29 深圳市腾讯计算机***有限公司 一种分布式数据库集群测试方法、装置及存储介质
CN110457188A (zh) * 2019-06-28 2019-11-15 武汉迎风聚智科技有限公司 可保持事务类型比例的tpc-e测试方法及测试***

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110147319A (zh) * 2019-04-19 2019-08-20 平安普惠企业管理有限公司 数据库测试方法、装置及计算机设备
CN110457188A (zh) * 2019-06-28 2019-11-15 武汉迎风聚智科技有限公司 可保持事务类型比例的tpc-e测试方法及测试***
CN110389900A (zh) * 2019-07-10 2019-10-29 深圳市腾讯计算机***有限公司 一种分布式数据库集群测试方法、装置及存储介质

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114077449A (zh) * 2020-08-20 2022-02-22 网联清算有限公司 数据库服务器的测试方法、装置、电子设备和存储介质
CN114077449B (zh) * 2020-08-20 2023-08-01 网联清算有限公司 数据库服务器的测试方法、装置、电子设备和存储介质
CN114138677A (zh) * 2021-12-24 2022-03-04 北京华大九天科技股份有限公司 测试方法及装置、测试***、电子设备
CN114138677B (zh) * 2021-12-24 2024-07-02 北京华大九天科技股份有限公司 测试方法及装置、测试***、电子设备
CN117093473A (zh) * 2023-07-14 2023-11-21 领悦数字信息技术有限公司 用于大数据测试的方法和***

Similar Documents

Publication Publication Date Title
CN111221726A (zh) 一种测试数据生成方法、装置、存储介质和智能设备
US20200412526A1 (en) Method and apparatus for verifying smart contracts in blockchain, and storage medium
CN111143196A (zh) 数据库的测试方法以及装置
CN110737594B (zh) 自动生成测试用例的数据库标准符合性测试方法及装置
CN110833693B (zh) 游戏运行方法和装置、存储介质及电子装置
CN112631846A (zh) 一种故障演练方法、装置、计算机设备及存储介质
CN110046088A (zh) 一种接口测试方法、装置及设备
CN105204986A (zh) 产品的自动化测试方法、服务器及移动设备
CN112306471A (zh) 一种任务的调度方法和装置
CN104866402A (zh) 一种测试服务器的方法及装置
CN114124694A (zh) 物联网设备的配置方法、配置装置、电子设备及介质
EP3161661A1 (en) Documentation notification
CN113220597B (zh) 测试方法、测试装置、电子设备及存储介质
CN114201346A (zh) 一种can通讯接口的hil测试方法、装置及电子设备
CN110058995B (zh) 一种可避免数据库类型的干扰的数据库测试方法以及***
CN111143092B (zh) 故障录波数据处理方法、***及终端设备
CN110457202B (zh) 快速建立odbc连接的tpc-e测试方法以及驱动器设备
CN112732556A (zh) 分布式***的自动化测试方法、装置、设备及存储介质
CN110377502A (zh) 基于脚本的功能测试方法、装置及终端设备
US10169216B2 (en) Simulating sensors
CN116009889A (zh) 深度学习模型的部署方法、装置、电子设备及存储介质
CN116319492A (zh) 交换机的测试方法、装置、存储介质及电子设备
CN113254332A (zh) 一种存储***多场景测试方法、***、终端及存储介质
CN113127369A (zh) 一种执行脚本的处理方法以及装置
CN110704301A (zh) Tpc-e自动化测试方法以及tpc-e测试***

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20200512