CN105224458A - 一种数据库测试方法及系统 - Google Patents

一种数据库测试方法及系统 Download PDF

Info

Publication number
CN105224458A
CN105224458A CN201510650252.3A CN201510650252A CN105224458A CN 105224458 A CN105224458 A CN 105224458A CN 201510650252 A CN201510650252 A CN 201510650252A CN 105224458 A CN105224458 A CN 105224458A
Authority
CN
China
Prior art keywords
test
database
data base
base manipulation
manipulation statement
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.)
Granted
Application number
CN201510650252.3A
Other languages
English (en)
Other versions
CN105224458B (zh
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.)
SHANGHAI HANYIN INFORMATION TECHNOLOGY Co Ltd
Original Assignee
SHANGHAI HANYIN INFORMATION 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 SHANGHAI HANYIN INFORMATION TECHNOLOGY Co Ltd filed Critical SHANGHAI HANYIN INFORMATION TECHNOLOGY Co Ltd
Priority to CN201510650252.3A priority Critical patent/CN105224458B/zh
Publication of CN105224458A publication Critical patent/CN105224458A/zh
Application granted granted Critical
Publication of CN105224458B publication Critical patent/CN105224458B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种数据库测试方法及系统,属于数据库技术领域;方法包括:根据外部输入的测试请求设置相应的测试脚本以及测试场景,并模拟生成相应的多条测试数据;于软件数据库系统中,依照测试场景,应用测试脚本对测试数据进行测试,以运行关联于测试请求的数据库测试过程;监控数据库测试过程并获取多条测试指标;采用预设的策略并依照预设的关联于测试指标的标准参数,对测试指标进行筛选处理并输出筛选结果;依据筛选结果对软件数据库系统进行优化,随后退出;系统包括:获取单元、配置单元、测试单元、监控单元、筛选单元和处理单元;上述技术方案的有益效果是:发现并分析数据库的出错原因,便于进行错误定位和性能优化。

Description

一种数据库测试方法及系统
技术领域
本发明涉及数据库技术领域,尤其涉及一种数据库测试方法及系统。
背景技术
人们日常使用的各种平台软件、系统软件以及各类应用软件等为了满足用户不断改进的需求,需要在适应数据业务方面进行不断改善和更新,即不断进行版本更新。但是在版本更新的过程中,极有可能使得后台数据库的存储结构发生变化(例如增加、删除、修改数据等),并且发生数据冗余,从而导致前台软件在数据库的支持方面的性能下降,例如软件的操作响应速度变慢,软件运行稳定性变差,以及软件的安全性能降低等。
现有技术中,对于因软件数据库产生的性能方面的问题,通常是通过一些测试工具进行测试和分析,但是现有的测试工具无法测试出实际引起软件在数据库的支持方面导致性能下降的具体原因,因此测试人员只能花费大量的时间和精力用在软件数据库的全面优化而不是针对性的优化上,从而导致人力成本的浪费,以及数据库优化时间的延长。
发明内容
根据现有技术中存在的问题,现提供一种数据库测试方法及系统的技术方案,旨在及时测试发现并分析导致软件数据库系统出现运行问题的原因,便于测试人员进行问题定位和性能优化。
上述技术方案具体包括:
一种数据库测试方法,适用于软件数据库系统;其中,包括:
步骤S1,根据外部输入的测试请求设置相应的测试脚本以及测试场景,并模拟生成相应的多条测试数据;
步骤S2,于所述软件数据库系统中,依照所述测试场景,应用所述测试脚本对所述测试数据进行测试,以运行关联于所述测试请求的数据库测试过程;
步骤S3,监控所述数据库测试过程并获取多条测试指标;
步骤S4,采用预设的策略并依照预设的关联于所述测试指标的标准参数,对所述测试指标进行筛选处理并输出筛选结果;
步骤S5,依据所述筛选结果对所述软件数据库系统进行优化,随后退出。
优选的,该数据库测试方法,其中,执行所述步骤S1之前,预设多个所述测试脚本以及多个所述测试场景;
则所述步骤S1中,根据所述测试请求,选择预设的至少一个所述测试脚本以及相应的至少一个所述测试场景,以运行所述数据库测试过程。
优选的,该数据库测试方法,其中,所述步骤S1中,模拟生成多条测试数据的步骤包括:
步骤S11,设定关联于所述测试请求的数据生成规则;
步骤S12,设定关联于所述测试请求的数据生成规模;
步骤S13,根据所述数据生成规则和所述数据生成规模生成多条所述测试数据。
优选的,该数据库测试方法,其中,所述步骤S1中,所述测试脚本用于以所述测试数据为对象,执行关联于所述软件数据库系统的不同的数据库操作语句。
优选的,该数据库测试方法,其中,所述步骤S3中,所述测试指标包括:
用于表示各个所述数据库操作语句的运行时间的所述测试指标;和/或
用于表示各个所述数据库操作语句的运行次数的所述测试指标;和/或
用于表示各个所述数据库操作语句运行的过程中是否出现死锁的所述测试指标;和/或
用于表示各个所述数据库操作语句运行的过程中的硬件资源占用率的所述测试指标。
优选的,该数据库测试方法,其中,针对用于表示各条所述数据库操作语句的所述运行时间的所述测试指标,所述步骤S4中,采用下述步骤执行所述预设的策略:
步骤S41a,按照所述运行时间由高到低对各条所述数据库操作语句进行排序,输出排序结果;
步骤S42a,根据所述排序结果,选择所述运行时间高于相应的所述标准参数的前N条所述数据库操作语句以及相应的所述测试指标并作为所述筛选结果输出;
N>0,且N为自然数。
优选的,该数据库测试方法,其中,针对用于表示各条所述数据库操作语句的所述运行次数的所述测试指标,所述步骤S4中,采用下述步骤执行所述预设的策略:
步骤S41b,按照所述运行次数由高到低对各条所述数据库操作语句进行排序,输出排序结果;
步骤S42b,根据所述排序结果,选择所述运行次数高于相应的所述标准参数的前N条所述数据库操作语句以及相应的所述测试指标并作为所述筛选结果输出;
N>0,且N为自然数。
优选的,该数据库测试方法,其中,针对用于表示各条所述数据库操作语句运行的过程中是否出现死锁的所述测试指标,所述步骤S4中,采用下述步骤执行所述预设的策略:
将出现死锁的各条所述数据库操作语句以及相应的所述测试指标作为所述筛选结果输出。
优选的,该数据库测试方法,其中,针对用于表示各条所述数据库操作语句运行的过程中的硬件资源占用率,所述步骤S4中,采用下述步骤执行所述预设的策略:
步骤S41c,按照所述硬件资源占用率由高到低对各条所述数据库操作语句进行排序,输出排序结果;
步骤S42c,根据所述排序结果,选择所述硬件资源占用率高于相应的所述标准参数的前N条所述数据库操作语句以及相应的所述测试指标并作为所述筛选结果输出;
N>0,且N为自然数。
优选的,该数据库测试方法,其中,所述测试脚本用于以所述测试数据为对象,执行关联于所述软件数据库系统的不同的数据库操作语句;
则所述步骤S5中,依据所述筛选结果,针对出现异常的各条所述数据库操作语句对所述软件数据库系统进行优化。
优选的,该数据库测试方法,其中,所述步骤S5包括:
步骤S51,将所述筛选结果显示于系统显示屏上,以供测试人员查看;
步骤S52,获取所述测试人员输入的优化指令;
步骤S53,根据所述优化指令,对所述软件数据库系统进行优化。
一种数据库测试系统,与一软件数据库系统连接;其中,所述数据库测试系统包括:
获取单元,用于获取外部输入的测试请求;
配置单元,连接所述获取单元,用于根据所述测试请求,配置关联于所述软件数据库系统的测试脚本以及测试场景,并模拟生成相应的多条测试数据;
测试单元,连接所述配置单元,用于在所述软件数据库系统中,依照所述测试场景,应用所述测试脚本对所述测试数据进行测试,以运行关联于所述测试请求的数据库测试过程;
监控单元,连接所述测试单元,用于监控所述数据库测试过程并获取多条测试指标;
筛选单元,连接所述监控单元,用于采用预设的策略并依照预设的关联于所述测试指标的标准参数,对所述测试指标进行筛选处理并输出筛选结果;
处理单元,连接所述筛选单元,用于依据所述筛选结果处理得到关联于所述数据库测试过程的优化结果并输出。
优选的,该数据库测试系统,其中,所述配置单元中包括:
第一存储模块,其中预设有多个所述测试脚本;
第二存储模块,其中预设有多个所述测试场景;
选择模块,分别连接所述第一存储模块和所述第二存储模块,用于根据所述测试请求,选择预设的至少一个所述测试脚本以及相应的至少一个所述测试场景并输出,以支持运行所述数据库测试过程。
优选的,该数据库测试系统,其中,所述配置单元中还包括:
设定模块,供测试人员设定关联于所述测试请求的数据生成规则以及数据生成规模;
生成模块,连接所述设定模块,用于根据被设定的所述数据生成规则以及所述数据生成规模,模拟生成对应的多条所述测试数据。
优选的,该数据库测试系统,其中,所述测试脚本用于以所述测试数据为对象,执行关联于所述软件数据库系统的不同的数据库操作语句。
优选的,该数据库测试系统,其中,所述测试指标包括:
用于表示各个所述数据库操作语句的运行时间的所述测试指标;和/或
用于表示各个所述数据库操作语句的运行次数的所述测试指标;和/或
用于表示各个所述数据库操作语句运行的过程中是否出现死锁的所述测试指标;和/或
用于表示各个所述数据库操作语句运行的过程中的硬件资源占用率的所述测试指标。
优选的,该数据库测试系统,其中,所述测试指标用于表示各个所述数据库操作语句的运行时间;
则所述筛选单元中包括:
第一排序模块,用于按照所述运行时间由高到低对各条所述数据库操作语句进行排序,输出排序结果;
第一筛选模块,连接所述第一排序模块,用于根据所述排序结果,选择所述运行时间高于相应的所述标准参数的前N条所述数据库操作语句以及相应的所述测试指标并作为所述筛选结果输出;
N>0,且N为自然数。
优选的,该数据库测试系统,其中,所述测试指标用于表示各个所述数据库操作语句的运行次数;
则所述筛选单元中包括:
第二排序模块,用于按照所述运行次数由高到低对各条所述数据库操作语句进行排序,输出排序结果;
第二筛选模块,连接所述第二排序模块,用于根据所述排序结果,选择所述运行次数高于相应的所述标准参数的前N条所述数据库操作语句以及相应的所述测试指标并作为所述筛选结果输出;
N>0,且N为自然数。
优选的,该数据库测试系统,其中,所述测试指标用于表示各个所述数据库操作语句在运行过程中是否出现死锁;
则所述筛选单元中包括:
第三筛选模块,用于将出现死锁的各条所述数据库操作语句以及相应的所述测试指标作为所述筛选结果输出。
优选的,该数据库测试系统,其中,所述测试指标用于表示各个所述数据库操作语句在运行过程中的硬件资源占用率;
则所述筛选单元中包括:
第三排序模块,用于按照所述硬件资源占用率由高到低对各条所述数据库操作语句进行排序,输出排序结果;
第四筛选模块,连接所述第三排序模块,用于根据所述排序结果,选择所述硬件资源占用率高于相应的所述标准参数的前N条所述数据库操作语句以及相应的所述测试指标并作为所述筛选结果输出;
N>0,且N为自然数。
优选的,该数据库测试系统,其中,所述测试脚本用于以所述测试数据为对象,执行关联于所述软件数据库系统的不同的数据库操作语句;
则所述处理单元中包括:
第一优化模块,用于依据所述筛选结果,针对出现异常的各条所述数据库操作语句对所述软件数据库系统进行优化。
优选的,该数据库测试系统,其中,所述处理单元中包括:
展示模块,用于将所述筛选结果显示在系统显示屏上,以供所述测试人员查看;
获取模块,用于获取所述测试人员依据所述筛选结果输入的优化指令;
第二优化模块,连接所述获取模块,用于根据所述优化指令对所述软件数据库系统进行优化。
上述技术方案的有益效果是:
1)提供一种数据库测试方法,能够及时测试发现并分析导致软件数据库系统出现运行问题的原因,便于测试人员进行问题定位和性能优化;
2)提供一种数据库测试系统,能够支持实现上述数据库测试方法。
附图说明
图1是本发明的较佳的实施例中,一种数据库测试方法的总体流程示意图;
图2是本发明的较佳的实施例中,于图1的基础上,模拟生成测试数据的流程示意图;
图3-5是本发明的较佳的实施例中,于图1的基础上,对测试指标进行排序并筛选的流程示意图;
图6是本发明的较佳的实施例中,于图1的基础上,根据筛选结果对软件数据库系统进行优化处理的流程示意图;
图7是本发明的较佳的实施例中,一种数据库测试系统的总体结构示意图;
图8是本发明的较佳的实施例中,于图7的基础上,数据库测试系统中的配置单元的结构示意图;
图9是本发明的较佳的实施例中,于图7的基础上,数据库测试系统中的筛选单元的结构示意图;
图10是本发明的较佳的实施例中,于图7的基础上,数据库测试系统中的处理单元的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。
本发明的较佳的实施例中,基于现有技术中存在的问题,现提供一种数据库测试方法,应用于软件数据库系统中。换言之,上述数据库测试方法提供给测试人员一种能够对特定的软件数据库系统进行性能测试的途径。
则本发明的较佳的实施例中,如图1所示,上述数据库测试方法具体包括:
步骤S1,根据外部输入的测试请求设置相应的测试脚本以及测试场景,并模拟生成相应的多条测试数据;
步骤S2,于软件数据库系统中,依照测试场景,应用测试脚本对测试数据进行测试,以运行关联于测试请求的数据库测试过程;
步骤S3,监控数据库测试过程并获取多条测试指标;
步骤S4,采用预设的策略并依照预设的关联于测试指标的标准参数,对测试指标进行筛选处理并输出筛选结果;
步骤S5,依据筛选结果对所述软件数据库系统进行优化,随后退出。
在一个具体实施例中,可以由软件数据库的使用者根据使用情况向测试系统(即用于对软件数据库系统进行测试的系统,也即上述数据库测试方法所依赖的基础系统,以下简称为系统)发送相应的测试请求。例如使用者认为应用软件的操作响应较慢,则可以向系统发送请求测试操作响应功能的测试请求。
该实施例中,系统接收到上述测试请求后,根据该测试请求设置相应的测试脚本和测试场景。所谓测试脚本,其中包括之后需要运行的测试过程中的一些测试动作,例如执行软件数据库系统中的哪条数据库操作语句等。所谓测试场景,可以为进行软件数据库测试过程所依赖的测试环境。
该实施例中,系统同样根据上述测试请求模拟生成测试过程中需要用到的多条测试数据。所谓测试数据,其可以为测试过程中所针对的测试对象,即多条模拟待测试的软件数据库系统中的真实的数据。因此,测试数据的构成需要与待测试的软件数据库中的真实的数据的存储结构一致。
该实施例中,在设置好测试脚本、测试场景以及测试数据后,系统于软件数据库系统中,依照测试场景,应用测试脚本对测试数据进行测试,以运行关联于测试请求的数据库测试过程。例如,依照设置好的测试场景执行特定的数据库操作语句,以对多条测试数据进行查询。具体地,该实施例中,上述多条模拟生成的测试数据会被临时保存于上述软件数据库系统中(例如在测试之后就被删除),因此,上述测试过程依赖于待测试的软件数据库进行。
该实施例中,依照配置好的环境进行数据库测试的过程中,监控相应的多条测试指标。所谓测试指标,其用于表示关联于测试脚本的不同的测试动作的测试情况,例如不同的数据库操作语句的运行情况等。
则该实施例中,采用预设的策略并依照预设的关联于测试指标的标准参数,对测试指标进行筛选处理并输出筛选结果。换言之,该实施例中,对应不同类别的测试指标,可以设定不同的标准参数,以及不同的预设策略。因此,对于不同类别的测试指标,可以采用不同的预设策略(下文中会详述)以及不同的标准参数对其进行筛选处理,并输出筛选结果。该实施例中,所谓筛选结果,实际为执行对应的测试动作后出现的异常结果,将其筛选出来可以便于进行后续处理。
该实施例中,针对筛选结果,可以对所述软件数据库系统进行优化,随后退出。
则本发明的较佳的实施例中,执行步骤S1之前,预设多个测试脚本以及多个测试场景;
则步骤S1中,根据测试请求,选择预设的至少一个测试脚本以及相应的至少一个测试场景,以运行数据库测试过程。
换言之,本发明的较佳的实施例中,上述测试脚本和测试场景在测试之前就已经预设在系统内部。因此,在获取外部输入的测试请求后,系统可以根据该测试请求选择本次测试所需的至少一个测试脚本,以及测试场景。
同样地,本发明的较佳的实施例中,如图2所示,上述步骤S1中,模拟生成多条测试数据的过程具体包括:
步骤S11,设定关联于测试请求的数据生成规则;
步骤S12,设定关联于测试请求的数据生成规模;
步骤S13,根据数据生成规则和数据生成规模生成多条测试数据。
具体地,本发明的较佳的实施例中:
所谓数据生成规则,是指生成测试数据所依据的属性条件。例如本次测试针对的测试请求为对一个商场收银系统进行测试。则相应的数据生成规则可以为生成多个虚拟用户(用于模拟购买商品的客户),以及多个虚拟的商品二维码(作为商品价格的输入)。
所谓数据生成规模,是指关联于本次测试所需要的数据量的大小。同样以商场收银系统的数据库测试为例,针对该测试请求的相应的数据生成规模可以为:生成虚拟用户500个,以及生成虚拟的商品二维码5000个。
则在设定上述数据生成规则以及数据生成规模后,系统可以自动生成相应的多条测试数据,这些测试数据的生成可以是随机的。
本发明的一个较佳的实施例中,如上文中,上述测试脚本用于以测试数据为对象,执行关联于软件数据库系统的不同的数据库操作语句。下文中以SQL语句为例对本发明技术方案进行解释。
则上述步骤S3中,上述测试指标可以为下文中所述的至少一种:
用于表示各个数据库操作语句的运行时间的测试指标,例如用于表示不同的SQL语句的运行时间的测试指标;
用于表示各个数据库操作语句的运行次数的测试指标,例如用于表示不同的SQL语句的运行次数的测试指标;
用于表示各个数据库操作语句运行的过程中是否出现死锁的测试指标,例如用于表示是否存在SQL语句运行出现死锁的测试指标;
用于表示各个数据库操作语句运行的过程中的硬件资源占用率的测试指标,例如用于表示不同的SQL语句在运行过程中占用的硬件资源状况的测试指标。
则本发明的一个较佳的实施例中,如图3所示,针对测试指标用于表示SQL语句的运行时间时,上述步骤S4中的预设策略可以为:
步骤S41a,按照运行时间由高到低对各条数据库操作语句进行排序,输出排序结果;
步骤S42a,根据排序结果,选择运行时间高于相应的标准参数的前N条数据库操作语句以及相应的测试指标并作为筛选结果输出。
其中N>0,且N为自然数。
该实施例中,首先获取每条被运行的SQL语句的运行时间,随后根据运行时间将所有被运行的SQL语句进行排序,并输出排序结果。
该实施例中,对应于SQL语句的运行时间,可以预先在系统内部设定一个标准参数,即设定一个标准运行时间。随后,根据上述排序结果,选择运行时间位于上述标准参数之上的前N条SQL语句及其测试指标并作为筛选结果输出。
例如,根据排序结果,当前有5条SQL语句的运行时间长于标准运行时间,则可以将其中前3条SQL语句及其运行时间作为筛选结果输出,或者将所有5条SQL语句及其运行时间作为筛选结果输出。
本发明的一个较佳的实施例中,如图4所示,针对测试指标用于表示SQL语句的运行次数时,上述步骤S4中的预设策略又可以为:
步骤S41b,按照运行次数由高到低对各条数据库操作语句进行排序,输出排序结果;
步骤S42b,根据排序结果,选择运行次数高于相应的标准参数的前N条数据库操作语句以及相应的测试指标并作为筛选结果输出;
N>0,且N为自然数。
具体地,该实施例中,首先获取每条被运行的SQL语句的运行次数,随后根据运行次数将所有被运行的SQL语句进行排序,并输出排序结果。
该实施例中,对应于SQL语句的运行次数,可以预先在系统内部设定一个标准参数,即设定一个标准运行次数。随后,根据上述排序结果,选择运行次数位于上述标准参数之上的前N条SQL语句及其测试指标并作为筛选结果输出。
例如,根据排序结果,当前有10条SQL语句的运行次数长于标准运行次数,则可以将其中前5条SQL语句及其运行次数作为筛选结果输出,或者将所有10条SQL语句及其运行次数作为筛选结果输出。
该实施例中,获取一条SQL语句的运行次数的过程可以为:
首先监控到一条正在运行的SQL语句并获取其信息,随后继续监控并为其添加一个计数器:若监控到该SQL语句又被执行了一次,则计数器加1。在测试结束时,输出本次测试过程中运行过的所有SQL语句的运行次数(相应的计数器的计数值)。
本发明的一个较佳的实施例中,针对测试指标用于表示SQL语句的运行过程中是否出现死锁时,上述步骤S4中的预设策略又可以为:
将出现死锁的各条SQL语句以及相应的测试指标作为筛选结果输出。
该实施例中,由于死锁问题是一个较为严重的问题,并且不存在排序过程,因此可以将监控得到的所有出现死锁的SQL语句及其测试指标输出以作为筛选结果。
本发明的一个较佳的实施例中,如图5所示,针对测试指标用于表示SQL语句运行过程中的硬件资源占用率时,上述步骤S4中的预设策略可以为:
步骤S41c,按照硬件资源占用率由高到低对各条数据库操作语句进行排序,输出排序结果;
步骤S42c,根据排序结果,选择硬件资源占用率高于相应的标准参数的前N条数据库操作语句以及相应的测试指标并作为筛选结果输出;
N>0,且N为自然数。
具体地,该实施例中,首先获取每条被运行的SQL语句的硬件资源占用率,随后根据硬件资源占用率将所有被运行的SQL语句进行排序,并输出排序结果。
该实施例中,对应于SQL语句的硬件资源占用率,可以预先在系统内部设定一个标准参数,即设定一个标准硬件资源占用率。随后,根据上述排序结果,选择硬件资源占用率位于上述标准参数之上的前N条SQL语句及其测试指标并作为筛选结果输出。
例如,根据排序结果,当前有8条SQL语句的硬件资源占用率长于标准硬件资源占用率,则可以将其中前6条SQL语句及其硬件资源占用率作为筛选结果输出,或者将所有8条SQL语句及其硬件资源占用率作为筛选结果输出。
本发明的一个较佳的实施例中,针对上述测试脚本用于以测试数据为对象执行关联于软件数据库系统的不同的数据库操作语句的情况,在上述步骤S5中,可以依据筛选结果,针对出现异常的各条数据库操作语句对软件数据库系统进行优化。
例如,根据筛选结果得到某几条SQL语句的运行时间过长,则可以将这几条SQL语句中一些不必要的计算、类型转换以及查询结果反馈等处理代码去除。
又例如,根据筛选结果得到某几条SQL语句的运行次数过多,则可以去除一些关联于这些SQL语句的不必要的索引,即对软件数据库系统的索引进行合并优化。
又例如,根据筛选结果得到某几条SQL语句出现死锁,则可以采用将软件数据库系统中的数据表进行分区的方式,将关联于这几条SQL语句的读写I/O进行分离,以防止I/O阻塞引起的SQL语句运行死锁的情况。
本发明的另一个较佳的实施例中,如图6所示,上述步骤S5中,对软件数据库系统的优化处理的过程还可以包括:
步骤S51,将筛选结果显示于系统显示屏上,以供测试人员查看;
步骤S52,获取测试人员输入的优化指令;
步骤S53,根据优化指令,对软件数据库系统进行优化。
该实施例中,对于一些比较复杂的数据库优化操作而言,可以将优化指令的控制权交给测试人员,即将分析筛选结果并下发优化指令的过程交由测试人员来处理,系统只需要输出筛选结果,并且根据测试人员输入的优化指令对软件数据库系统进行优化即可。
综上所述,本发明的较佳的实施例中,对于一些简单的软件数据库优化处理,可以由系统在得到筛选结果后经过分析直接进行。例如在系统内部预设一系列简单的优化方案,若筛选结果触发哪个优化方案,便由系统调用该优化方案对软件数据库系统进行优化。而对于一些比较复杂的软件数据库优化处理,或者无法在系统内部找到对应的优化方案的优化处理,可以交由测试人员来分析和处理。系统根据测试人员输入的优化指令直接对软件数据库系统进行优化。
本发明的较佳的实施例中,基于上文中所述的数据库测试方法,现提供一种数据库测试系统(对应于上文中所述的“系统”)。如图7所示,该数据库测试系统A连接一软件数据库系统B,并用于对该软件数据库系统B进行测试。
具体地,仍然如图7所示,上述数据库测试系统A中包括:
获取单元A1,用于获取外部输入的测试请求;
配置单元A2,连接获取单元A1,用于根据测试请求,配置关联于软件数据库系统的测试脚本以及测试场景,并模拟生成相应的多条测试数据;
测试单元A3,连接配置单元A2,用于在软件数据库系统中,依照测试场景,应用测试脚本对测试数据进行测试,以运行关联于测试请求的数据库测试过程;
监控单元A4,连接测试单元A3,用于监控数据库测试过程并获取多条测试指标;
筛选单元A5,连接监控单元A4,用于采用预设的策略并依照预设的关联于测试指标的标准参数,对测试指标进行筛选处理并输出筛选结果;
处理单元A6,连接筛选单元A5,用于依据筛选结果处理得到关联于数据库测试过程的优化结果并输出。
本发明的较佳的实施例中,如图8所示,上述配置单元A2中具体包括:
第一存储模块A21,其中预设有多个测试脚本;
第二存储模块A22,其中预设有多个测试场景;
选择模块A23,分别连接第一存储模块A21和第二存储模块A22,用于根据测试请求,选择预设的至少一个测试脚本以及相应的至少一个测试场景并输出,以支持运行数据库测试过程。
本发明的较佳的实施例中,仍然如图8所示,上述配置单元A2中还包括:
设定模块A24,供测试人员设定关联于测试请求的数据生成规则以及数据生成规模;
生成模块A25,连接设定模块A24,用于根据被设定的数据生成规则以及数据生成规模,模拟生成对应的多条测试数据。
本发明的较佳的实施例中,测试脚本用于以测试数据为对象,执行关联于软件数据库系统的不同的数据库操作语句。
则测试指标可以包括下文中的至少一种:
用于表示各个数据库操作语句的运行时间的测试指标;
用于表示各个数据库操作语句的运行次数的测试指标;
用于表示各个数据库操作语句运行的过程中是否出现死锁的测试指标;
用于表示各个数据库操作语句运行的过程中的硬件资源占用率的测试指标。
因此,本发明的较佳的实施例中,如图9所示:
1)测试指标用于表示各个数据库操作语句的运行时间,则上述筛选单元A5中包括:
第一排序模块A51,用于按照运行时间由高到低对各条数据库操作语句进行排序,输出排序结果;
第一筛选模块A52,连接第一排序模块A51,用于根据排序结果,选择运行时间高于相应的标准参数的前N条数据库操作语句以及相应的测试指标并作为筛选结果输出;
N>0,且N为自然数。
2)测试指标用于表示各个数据库操作语句的运行次数,则上述筛选单元A5中包括:
第二排序模块A53,用于按照运行次数由高到低对各条数据库操作语句进行排序,输出排序结果;
第二筛选模块A54,连接第二排序模块A53,用于根据排序结果,选择运行次数高于相应的标准参数的前N条数据库操作语句以及相应的测试指标并作为筛选结果输出;
N>0,且N为自然数。
3)测试指标用于表示各个数据库操作语句在运行过程中是否出现死锁,则上述筛选单元A5中包括:
第三筛选模块A55,用于将出现死锁的各条数据库操作语句以及相应的测试指标作为筛选结果输出。
4)测试指标用于表示各个数据库操作语句在运行过程中的硬件资源占用率,则上述筛选单元A5中包括:
第三排序模块A56,用于按照硬件资源占用率由高到低对各条数据库操作语句进行排序,输出排序结果;
第四筛选模块A57,连接第三排序模块A56,用于根据排序结果,选择硬件资源占用率高于相应的标准参数的前N条数据库操作语句以及相应的测试指标并作为筛选结果输出;
N>0,且N为自然数。
图9中示出包含上述1)—4)情况下的筛选单元A5的结构,在不同的实施例中,可以选择在筛选单元A5中设置一部分功能模块,或者根据需要处理的测试指标的不同增设相应的功能模块。
本发明的一个较佳的实施例中,如图10所示,上述处理单元A6中具体包括:
第一优化模块A61,用于依据筛选结果,针对出现异常的各条数据库操作语句对软件数据库系统进行优化。
该实施例针对一些比较简单的数据库优化处理而言,第一优化模块A61可以依据筛选结果,从系统中预设的多个优化方案中选择一个或几个对软件数据库系统进行优化。
本发明的另一个较佳的实施例中,仍然如图10所示,上述处理单元A6中具体包括:
展示模块A62,用于将筛选结果显示在系统显示屏上,以供测试人员查看;
获取模块A63,用于获取测试人员依据筛选结果输入的优化指令;
第二优化模块A64,连接获取模块A63,用于根据优化指令对软件数据库系统进行优化。
该实施例针对一些比较复杂的数据库优化处理,即需要测试人员来进行分析和判断并下发优化指令才能进行的优化处理。
图10中示出了能够同时实现上述两种优化处理方式的处理单元A6。在实践中,可以根据需要只选择其中一个优化处理方式,即处理单元A6中可以只包括实现上述一种优化处理方式所需的功能模块。
以上所述仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本发明说明书及图示内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。

Claims (22)

1.一种数据库测试方法,适用于软件数据库系统;其特征在于,包括:
步骤S1,根据外部输入的测试请求设置相应的测试脚本以及测试场景,并模拟生成相应的多条测试数据;
步骤S2,于所述软件数据库系统中,依照所述测试场景,应用所述测试脚本对所述测试数据进行测试,以运行关联于所述测试请求的数据库测试过程;
步骤S3,监控所述数据库测试过程并获取多条测试指标;
步骤S4,采用预设的策略并依照预设的关联于所述测试指标的标准参数,对所述测试指标进行筛选处理并输出筛选结果;
步骤S5,依据所述筛选结果对所述软件数据库系统进行优化,随后退出。
2.如权利要求1所述的数据库测试方法,其特征在于,执行所述步骤S1之前,预设多个所述测试脚本以及多个所述测试场景;
则所述步骤S1中,根据所述测试请求,选择预设的至少一个所述测试脚本以及相应的至少一个所述测试场景,以运行所述数据库测试过程。
3.如权利要求1所述的数据库测试方法,其特征在于,所述步骤S1中,模拟生成多条测试数据的步骤包括:
步骤S11,设定关联于所述测试请求的数据生成规则;
步骤S12,设定关联于所述测试请求的数据生成规模;
步骤S13,根据所述数据生成规则和所述数据生成规模生成多条所述测试数据。
4.如权利要求1所述的数据库测试方法,其特征在于,所述步骤S1中,所述测试脚本用于以所述测试数据为对象,执行关联于所述软件数据库系统的不同的数据库操作语句。
5.如权利要求4所述的数据库测试方法,其特征在于,所述步骤S3中,所述测试指标包括:
用于表示各个所述数据库操作语句的运行时间的所述测试指标;和/或
用于表示各个所述数据库操作语句的运行次数的所述测试指标;和/或
用于表示各个所述数据库操作语句运行的过程中是否出现死锁的所述测试指标;和/或
用于表示各个所述数据库操作语句运行的过程中的硬件资源占用率的所述测试指标。
6.如权利要求5所述的数据库测试方法,其特征在于,针对用于表示各条所述数据库操作语句的所述运行时间的所述测试指标,所述步骤S4中,采用下述步骤执行所述预设的策略:
步骤S41a,按照所述运行时间由高到低对各条所述数据库操作语句进行排序,输出排序结果;
步骤S42a,根据所述排序结果,选择所述运行时间高于相应的所述标准参数的前N条所述数据库操作语句以及相应的所述测试指标并作为所述筛选结果输出;
N>0,且N为自然数。
7.如权利要求5所述的数据库测试方法,其特征在于,针对用于表示各条所述数据库操作语句的所述运行次数的所述测试指标,所述步骤S4中,采用下述步骤执行所述预设的策略:
步骤S41b,按照所述运行次数由高到低对各条所述数据库操作语句进行排序,输出排序结果;
步骤S42b,根据所述排序结果,选择所述运行次数高于相应的所述标准参数的前N条所述数据库操作语句以及相应的所述测试指标并作为所述筛选结果输出;
N>0,且N为自然数。
8.如权利要求5所述的数据库测试方法,其特征在于,针对用于表示各条所述数据库操作语句运行的过程中是否出现死锁的所述测试指标,所述步骤S4中,采用下述步骤执行所述预设的策略:
将出现死锁的各条所述数据库操作语句以及相应的所述测试指标作为所述筛选结果输出。
9.如权利要求5所述的数据库测试方法,其特征在于,针对用于表示各条所述数据库操作语句运行的过程中的硬件资源占用率,所述步骤S4中,采用下述步骤执行所述预设的策略:
步骤S41c,按照所述硬件资源占用率由高到低对各条所述数据库操作语句进行排序,输出排序结果;
步骤S42c,根据所述排序结果,选择所述硬件资源占用率高于相应的所述标准参数的前N条所述数据库操作语句以及相应的所述测试指标并作为所述筛选结果输出;
N>0,且N为自然数。
10.如权利要求1所述的数据库测试方法,其特征在于,所述测试脚本用于以所述测试数据为对象,执行关联于所述软件数据库系统的不同的数据库操作语句;
则所述步骤S5中,依据所述筛选结果,针对出现异常的各条所述数据库操作语句对所述软件数据库系统进行优化。
11.如权利要求1所述的数据库测试方法,其特征在于,所述步骤S5包括:
步骤S51,将所述筛选结果显示于系统显示屏上,以供测试人员查看;
步骤S52,获取所述测试人员输入的优化指令;
步骤S53,根据所述优化指令,对所述软件数据库系统进行优化。
12.一种数据库测试系统,与一软件数据库系统连接;其特征在于,所述数据库测试系统包括:
获取单元,用于获取外部输入的测试请求;
配置单元,连接所述获取单元,用于根据所述测试请求,配置关联于所述软件数据库系统的测试脚本以及测试场景,并模拟生成相应的多条测试数据;
测试单元,连接所述配置单元,用于在所述软件数据库系统中,依照所述测试场景,应用所述测试脚本对所述测试数据进行测试,以运行关联于所述测试请求的数据库测试过程;
监控单元,连接所述测试单元,用于监控所述数据库测试过程并获取多条测试指标;
筛选单元,连接所述监控单元,用于采用预设的策略并依照预设的关联于所述测试指标的标准参数,对所述测试指标进行筛选处理并输出筛选结果;
处理单元,连接所述筛选单元,用于依据所述筛选结果处理得到关联于所述数据库测试过程的优化结果并输出。
13.如权利要求12所述的数据库测试系统,其特征在于,所述配置单元中包括:
第一存储模块,其中预设有多个所述测试脚本;
第二存储模块,其中预设有多个所述测试场景;
选择模块,分别连接所述第一存储模块和所述第二存储模块,用于根据所述测试请求,选择预设的至少一个所述测试脚本以及相应的至少一个所述测试场景并输出,以支持运行所述数据库测试过程。
14.如权利要求12所述的数据库测试系统,其特征在于,所述配置单元中还包括:
设定模块,供测试人员设定关联于所述测试请求的数据生成规则以及数据生成规模;
生成模块,连接所述设定模块,用于根据被设定的所述数据生成规则以及所述数据生成规模,模拟生成对应的多条所述测试数据。
15.如权利要求12所述的数据库测试系统,其特征在于,所述测试脚本用于以所述测试数据为对象,执行关联于所述软件数据库系统的不同的数据库操作语句。
16.如权利要求15所述的数据库测试系统,其特征在于,所述测试指标包括:
用于表示各个所述数据库操作语句的运行时间的所述测试指标;和/或
用于表示各个所述数据库操作语句的运行次数的所述测试指标;和/或
用于表示各个所述数据库操作语句运行的过程中是否出现死锁的所述测试指标;和/或
用于表示各个所述数据库操作语句运行的过程中的硬件资源占用率的所述测试指标。
17.如权利要求16所述的数据库测试系统,其特征在于,所述测试指标用于表示各个所述数据库操作语句的运行时间;
则所述筛选单元中包括:
第一排序模块,用于按照所述运行时间由高到低对各条所述数据库操作语句进行排序,输出排序结果;
第一筛选模块,连接所述第一排序模块,用于根据所述排序结果,选择所述运行时间高于相应的所述标准参数的前N条所述数据库操作语句以及相应的所述测试指标并作为所述筛选结果输出;
N>0,且N为自然数。
18.如权利要求16所述的数据库测试系统,其特征在于,所述测试指标用于表示各个所述数据库操作语句的运行次数;
则所述筛选单元中包括:
第二排序模块,用于按照所述运行次数由高到低对各条所述数据库操作语句进行排序,输出排序结果;
第二筛选模块,连接所述第二排序模块,用于根据所述排序结果,选择所述运行次数高于相应的所述标准参数的前N条所述数据库操作语句以及相应的所述测试指标并作为所述筛选结果输出;
N>0,且N为自然数。
19.如权利要求16所述的数据库测试系统,其特征在于,所述测试指标用于表示各个所述数据库操作语句在运行过程中是否出现死锁;
则所述筛选单元中包括:
第三筛选模块,用于将出现死锁的各条所述数据库操作语句以及相应的所述测试指标作为所述筛选结果输出。
20.如权利要求16所述的数据库测试系统,其特征在于,所述测试指标用于表示各个所述数据库操作语句在运行过程中的硬件资源占用率;
则所述筛选单元中包括:
第三排序模块,用于按照所述硬件资源占用率由高到低对各条所述数据库操作语句进行排序,输出排序结果;
第四筛选模块,连接所述第三排序模块,用于根据所述排序结果,选择所述硬件资源占用率高于相应的所述标准参数的前N条所述数据库操作语句以及相应的所述测试指标并作为所述筛选结果输出;
N>0,且N为自然数。
21.如权利要求12所述的数据库测试系统,其特征在于,所述测试脚本用于以所述测试数据为对象,执行关联于所述软件数据库系统的不同的数据库操作语句;
则所述处理单元中包括:
第一优化模块,用于依据所述筛选结果,针对出现异常的各条所述数据库操作语句对所述软件数据库系统进行优化。
22.如权利要求12所述的数据库测试系统,其特征在于,所述处理单元中包括:
展示模块,用于将所述筛选结果显示在系统显示屏上,以供所述测试人员查看;
获取模块,用于获取所述测试人员依据所述筛选结果输入的优化指令;
第二优化模块,连接所述获取模块,用于根据所述优化指令对所述软件数据库系统进行优化。
CN201510650252.3A 2015-10-09 2015-10-09 一种数据库测试方法及系统 Active CN105224458B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510650252.3A CN105224458B (zh) 2015-10-09 2015-10-09 一种数据库测试方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510650252.3A CN105224458B (zh) 2015-10-09 2015-10-09 一种数据库测试方法及系统

Publications (2)

Publication Number Publication Date
CN105224458A true CN105224458A (zh) 2016-01-06
CN105224458B CN105224458B (zh) 2018-02-09

Family

ID=54993443

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510650252.3A Active CN105224458B (zh) 2015-10-09 2015-10-09 一种数据库测试方法及系统

Country Status (1)

Country Link
CN (1) CN105224458B (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105760286A (zh) * 2016-02-17 2016-07-13 中国工商银行股份有限公司 应用数据库动态性能检测方法及检测装置
CN106354619A (zh) * 2016-08-31 2017-01-25 天津南大通用数据技术股份有限公司 一种测试数据库并发性能的系统
CN106604312A (zh) * 2016-11-10 2017-04-26 上海斐讯数据通信技术有限公司 一种路由器测试数据可视化的方法及系统
CN107741901A (zh) * 2016-09-28 2018-02-27 腾讯科技(深圳)有限公司 一种关联数据库语句的测试方法和装置
CN107885654A (zh) * 2017-05-05 2018-04-06 平安科技(深圳)有限公司 数据库测试方法及系统
CN108255712A (zh) * 2017-12-29 2018-07-06 曙光信息产业(北京)有限公司 数据系统的测试系统和测试方法
CN108595502A (zh) * 2018-03-19 2018-09-28 网宿科技股份有限公司 评估数据库服务性能的方法、装置及计算机可读存储介质
CN108763081A (zh) * 2018-05-29 2018-11-06 郑州云海信息技术有限公司 一种数据库测试方法及其装置、计算机可读存储介质
CN109376139A (zh) * 2018-08-15 2019-02-22 中国平安人寿保险股份有限公司 数据库集中监控方法、计算机装置及存储介质
CN110083542A (zh) * 2019-05-06 2019-08-02 百度在线网络技术(北京)有限公司 一种推荐系统中模型测试方法、装置及电子设备
CN110543418A (zh) * 2019-08-23 2019-12-06 苏州浪潮智能科技有限公司 一种数据库性能测试方法、系统及存储介质
CN110554958A (zh) * 2019-08-01 2019-12-10 北京百度网讯科技有限公司 图数据库测试方法、系统、设备和存储介质
CN112948266A (zh) * 2021-03-31 2021-06-11 建信金融科技有限责任公司 一种数据库语法测试系统、方法、装置、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080244476A1 (en) * 2007-04-02 2008-10-02 Athena Design Systems, Inc. System and method for simultaneous optimization of multiple scenarios in an integrated circuit design
CN101887465A (zh) * 2010-07-30 2010-11-17 南开大学 一种关系数据库系统纯xml引擎的评测方法
CN104932974A (zh) * 2015-05-28 2015-09-23 国家计算机网络与信息安全管理中心 一种脚本转换方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080244476A1 (en) * 2007-04-02 2008-10-02 Athena Design Systems, Inc. System and method for simultaneous optimization of multiple scenarios in an integrated circuit design
CN101887465A (zh) * 2010-07-30 2010-11-17 南开大学 一种关系数据库系统纯xml引擎的评测方法
CN104932974A (zh) * 2015-05-28 2015-09-23 国家计算机网络与信息安全管理中心 一种脚本转换方法和装置

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105760286B (zh) * 2016-02-17 2018-09-07 中国工商银行股份有限公司 应用数据库动态性能检测方法及检测装置
CN105760286A (zh) * 2016-02-17 2016-07-13 中国工商银行股份有限公司 应用数据库动态性能检测方法及检测装置
CN106354619A (zh) * 2016-08-31 2017-01-25 天津南大通用数据技术股份有限公司 一种测试数据库并发性能的系统
CN107741901A (zh) * 2016-09-28 2018-02-27 腾讯科技(深圳)有限公司 一种关联数据库语句的测试方法和装置
CN106604312A (zh) * 2016-11-10 2017-04-26 上海斐讯数据通信技术有限公司 一种路由器测试数据可视化的方法及系统
CN107885654A (zh) * 2017-05-05 2018-04-06 平安科技(深圳)有限公司 数据库测试方法及系统
CN108255712A (zh) * 2017-12-29 2018-07-06 曙光信息产业(北京)有限公司 数据系统的测试系统和测试方法
CN108595502B (zh) * 2018-03-19 2021-06-22 网宿科技股份有限公司 评估数据库服务性能的方法、装置及计算机可读存储介质
CN108595502A (zh) * 2018-03-19 2018-09-28 网宿科技股份有限公司 评估数据库服务性能的方法、装置及计算机可读存储介质
CN108763081A (zh) * 2018-05-29 2018-11-06 郑州云海信息技术有限公司 一种数据库测试方法及其装置、计算机可读存储介质
CN109376139A (zh) * 2018-08-15 2019-02-22 中国平安人寿保险股份有限公司 数据库集中监控方法、计算机装置及存储介质
CN110083542A (zh) * 2019-05-06 2019-08-02 百度在线网络技术(北京)有限公司 一种推荐系统中模型测试方法、装置及电子设备
CN110083542B (zh) * 2019-05-06 2023-11-07 百度在线网络技术(北京)有限公司 一种推荐系统中模型测试方法、装置及电子设备
CN110554958A (zh) * 2019-08-01 2019-12-10 北京百度网讯科技有限公司 图数据库测试方法、系统、设备和存储介质
CN110543418A (zh) * 2019-08-23 2019-12-06 苏州浪潮智能科技有限公司 一种数据库性能测试方法、系统及存储介质
CN110543418B (zh) * 2019-08-23 2023-01-10 苏州浪潮智能科技有限公司 一种数据库性能测试方法、系统及存储介质
CN112948266A (zh) * 2021-03-31 2021-06-11 建信金融科技有限责任公司 一种数据库语法测试系统、方法、装置、设备及存储介质
CN112948266B (zh) * 2021-03-31 2023-06-20 建信金融科技有限责任公司 一种数据库语法测试系统、方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN105224458B (zh) 2018-02-09

Similar Documents

Publication Publication Date Title
CN105224458A (zh) 一种数据库测试方法及系统
CN109634728B (zh) 作业调度方法、装置、终端设备及可读存储介质
CN107273286B (zh) 针对任务应用的场景自动化测试平台及方法
CN107908550B (zh) 一种软件缺陷统计处理方法及装置
CN104252481A (zh) 主从数据库一致性的动态校验方法和装置
CN107016019B (zh) 数据库索引创建方法及装置
CN109376139A (zh) 数据库集中监控方法、计算机装置及存储介质
CN110737594A (zh) 自动生成测试用例的数据库标准符合性测试方法及装置
CN111026670B (zh) 测试用例的生成方法、测试用例的生成装置及存储介质
CN114021156A (zh) 漏洞自动化聚合的整理方法、装置、设备以及存储介质
CN112732237B (zh) 一种无代码开发技术模型构建的方法及系统
CN111339560B (zh) 一种数据隔离方法、装置及系统
CN111158827A (zh) 一种图形组态工具关联计算值信息的方法及装置
US20120046773A1 (en) Mold design system and method
CN115455091A (zh) 数据生成方法、装置、电子设备和存储介质
CN115016321A (zh) 一种硬件在环自动化测试方法、装置及系统
CN113238901A (zh) 多设备的自动化测试方法及装置、存储介质、计算机设备
CN110688299A (zh) 一种核电厂应用软件自动化测试平台
JP2021105866A (ja) プログラム開発支援システム及びプログラム開発支援方法
CN111143406A (zh) 数据库数据比对方法和比对系统
CN111767233B (zh) 基于智能快递柜的业务测试方法及装置
CN111026307B (zh) 一种用于快速关联图形组态工具中图元的方法及装置
CN111240920B (zh) 性能测试方法、装置、服务器及存储介质
CN113609145B (zh) 数据库处理方法、装置、电子设备、存储介质及产品
CN111400118B (zh) 一种针对在线功能文件的串口命令创建方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant