一种数据库系统应用基准测试规范设计方法和测试方法
文献发布时间:2023-06-19 09:52:39
技术领域
本发明涉及数据库测试技术,尤其涉及一种针对多应用系统进行基准测试的数据库系统应用基准测试规范设计方法和测试方法。
背景技术
数据库系统是指在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统等构成,其质量对应用系统整体能力有至关重要的影响。基准测试是通过设计科学的测试内容、测试工具,实现对一类测试对象的性能指标进行定量对比测试。
TPC-E、TPC-H等为代表的通用基准测试规范,是国内外厂商广泛采用的数据库系统基准测试实施依据,但这些通用基准测试规范的环境要求、业务关系、模拟负载比较固定,不能完全代表不同真实应用系统的使用需求。
而且,当需要测试的应用系统较多,如针对每个应用系统单独的全面测试,则全覆盖测试的成本高,且不利于结果分析。
可见,现阶段,缺乏有效使用需求信息简约方法,用最小集合的典型应用系统,代表大部分使用需求。
发明内容
有鉴于此,本发明提供了一种数据库系统应用基准规范设计方法和测试方法,采用有效的使用需求信息简约方法,用最小集合的典型应用系统,代表大部分使用需求,在保证覆盖全面的基础上,降低测试的成本,提高测试效率。
为了解决上述技术问题,本发明是这样实现的:
一种数据库系统应用基准测试规范设计方法,用于多应用系统进行基准测试,包括:
步骤1、针对多应用系统中的每一个应用系统收集使用需求;如果一条使用需求包括两个以上的操作场景,则将这条使用需求按照操作场景进行分解;
步骤2、根据指定的关键变量,从使用需求中提取关键变量值;没有指定关键变量的使用需求被删除;
步骤3、针对每一种关键变量进行归一化操作;利用应用系统、操作场景、关键变量归一化值构建一条数据;
步骤4、对所有条数据进行聚类,聚类仅针对关键变量归一化值进行;
步骤5、确定每个类别所涉及的应用系统,将能够覆盖所有类别的最小应用系统集合作为典型应用系统;
步骤6、对典型应用系统设计基准测试方案。
其中,所述归一化采用极差归一化或标准差归一化。
其中,所述聚类采用K-means算法或统计产品与服务解决方案(SPSS)软件实现。
优选地,在步骤1进行使用需求分解之后,进一步对使用需求进行数据清洗,将所需的关键变量不完整的使用需求删除。
优选地,所述步骤6具体为:
首先每个典型应用系统对应一个测试项,根据典型应用系统的重要性为每个测试项配置一个测试项权值W-Si,每个测试项的能力评分加权后得到能力总评分,即测试目标;
每个测试项由前提条件、基本用例和扩展用例组成;前提条件定义了基本用例测试项实施前所必需具备的条件、状态;基本用例由至少一个基准用例组成,是测试项实施的必测内容;扩展用例为测试项实施的选测内容;为每个基准用例配置一个用例权值W-Ti,采用基准用例对相应的典型应用系统进行测试,获得能力评分,每个基准用例的能力评分加权后得到测试项的能力评分。
优选地,所述基准测试用例包括用例目标、环境要求、事务要求、执行要求和评价方法;
所述用例目标:对基准测试用例模拟的典型应用系统进行说明;
所述环境要求:定义测试执行前的系统状态;
所述事务要求:描述每项事务的概念及要求,定义事务的每个操作样本、操作类型、影响域、预期结果、关键阈值;
所述执行要求:定义测试运行过程要求;
所述评价方法:以用户需求满足程度为评价标准,是在某些参量固定的情况下,度量数据库系统提供服务的能力。
本发明还提供了一种数据库系统应用基准测试方法,该方法采用上述数据库系统应用基准测试规范设计方法获得基准测试方案,利用基准测试方案对典型应用系统进行测试,完成测试目标。
有益效果:
(1)本发明使用需求信息简约方法,用最小集合的典型应用系统,代表大部分使用需求,在保证覆盖全面的基础上,降低测试的成本,提高测试效率。
(2)在环境要求、业务关系、模拟负载方面的要求比较灵活,满足了针对不同真实应用系统的使用需求,提高了应用基准测试规范的灵活性。
附图说明
图1为本发明流程图。
图2为使用需求集的示意图。
图3为对典型应用系统进行基准测试的示意图。
图4为基准用例的示意图。
具体实施方式
下面结合附图并举实施例,对本发明进行详细描述。
本发明提供了一种数据库系统应用基准测试方法,对所有应用系统的使用需求按照操作场景进行分解,然后将不同应用系统不同操作场景的使用需求进行聚类,根据聚类结果,将每一类均涉及到的应用系统作为典型应用系统,从而得到最小集合的典型应用系统。采用典型应用系统代表大部分使用需求,仅针对典型应用系统进行基准测试,从而降低测试的成本。
参见图1,本发明数据库系统应用基准测试方法的具体实现过程包括如下步骤:
步骤1、针对多应用系统中的每一个应用系统收集使用需求。如果一条使用需求包括两个以上的操作场景,则将这条使用需求按照操作场景进行分解,形成使用需求集,如图2所示。
使用需求集是基准测试规范的信息源头。有些使用需求可能由多个操作组成。操作场景包括常用的查询、增加、修改、删除,还可以包括其他动作,例如导入、导出、排序等。
一般来说,一条使用需求只包含一个操作场景。但是也有些用户给出的操作场景包含多个操作场景。再例如,为了避免重复写入,某信息系统向数据库中增加信息前执行查询操作,判断该信息是否已存在,则该系统写入信息使用需求包括了查询、增加两个操作。为了配合后续聚合操作,需要令每一条使用需求对应一个应用系统和一个操作场景。因此需要对包含多种操作场景的使用需求进行分解,使得使用需求所表达的内容尽量单一化,不要交叉在一起。
表1为作为一个举例的使用需求收集结果。第7、8、9、10条使用需求,因为是新增操作,所以增加了查询信息是否存在的操作。对于这几条使用需求需要进行分解。分解结果如表2的第7-10和第11-14条数据。由于增加了4条使用需求,因此原14条变为18条。
表1使用需求收集结果
表2使用需求分解结果
上表中,操作场景按查询(R)、增加(A)、修改(M)、删除(D)进行划分,并集中编写,这样便于查看。
步骤2、根据指定的关键变量,从使用需求中提取关键变量值;没有指定关键变量的使用需求被删除。
本步骤包含两层操作:
第一层操作是需要清理掉不完整的使用需求。其中,使用需求是否完整需要看使用需求是否包含所有的指定关键变量。例如,表1中指定关键变量包含初始数据量、用户数、响应时间和输入数据量。而新增的第11-14条数据分解出来的查询操作即第7-10条不包含响应时间,第16条数据不包含初始数据量和输入数据量,因此需要将这5条数据清理掉。最终剩下13条数据。
第二层操作是提取关键变量值。关键变量可以由外部指定。关键变量是操作场景的特征画像,一般不覆盖操作场景的所有信息项。可以从操作场景中选取出具有显著影响的信息项,例如:用户负载、初始数量、输入数据块大小、结果记录集大小、响应时间等,设定为合适的量化变量类型(数值型),能够有效地减少计算量,并提高聚类效果。一些操作场景信息项是文本类型,需要分解为多个量化变量,例如:库表模式一般是文本信息,可以将其分解为表数量、表列数、表关系复杂度等作为备选变量。
本实例指定的关键变量包含初始数据量、用户数、响应时间和输入数据量。从使用需求中提取关键变量值的结果参见表3,共13条数据。其中,S1R1表示应用系统S1的查询操作场景。
表3关键变量值提取结果
上述关键变量可以写成矩阵,经过上述数据预处理,具有N条数据、D个关键变量的集合X={x
其中,x
本实例中,将上表3数值量化为合适的量化变量类型(数值型),得出关键变量矩阵如下:
步骤3、针对每一种关键变量进行归一化操作。利用应用系统、操作场景、关键变量归一化值构建一条数据。
当各关键变量单位不统一,取值范围相差较大时,将影响后续分组效果,可以使用极差归一化或标准差归一化替换原值,将关键变量的数值进行归一处理,替代原值。两种算法公式分别如下:
其中:x
其中:μ
本实例中,采用第一种归一化方法处理后的关键变量矩阵如下:
经本步骤处理,关键变量矩阵中的每一行4个参数配合应用系统、操作场景的表达(例如S1R1)组成一条数据。
步骤4、对步骤3得到的所有条数据进行聚类,聚类仅针对关键变量归一化值进行,获得K个类别。
由于数据库系统的使用需求可能存在不断扩充的情况,所以操作场景分组方法应是能从场景数据出发,不依赖预先定义的类或带类标记,自动进行分类的方法。聚类模式发现是利用不同的样本数据,动态得到聚类结果的方法,处于相同聚类中的数据实例彼此相同,处于不同聚类中的实例彼此不同。
聚类可以采用K-means算法或统计产品与服务解决方案(SPSS)软件实现。其中,当关键变量矩阵的行数量较大,列值不存在或极少孤立点时,数据库系统分组优选采用K-means算法。k-means算法的组均值初始化通过在数据空间中随机生成k个点进行,进行组赋值、中心点更新这两个步骤的持续迭代,直至满足要求。k可以由用户给定。
在本实例中,采用两种聚类方式对X中的所有数据进行聚类。
方法(一)采用K-means算法进行分组
1、首先确定一个k值,即希望将数据集经过聚类得到k个集合。将矩阵X按照行分为13个组,即A={A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13},确定k值为5。
2、从数据集中随机选择k个数据点作为质心。
选择A1、A3、A5、A7、A12五个点为质心。
3、对数据集中每一个点,计算其与每一个质心的距离(如欧式距离),离哪个质心近,就划分到那个质心所属的集合。分别计算A2、A4、A6、A8、A9、A10、A11、A13到A1、A3、A5、A7、A12五个质心的的距离。
针对A2进行计算,A2与A1、A3、A5、A7、A12的欧式距离分别为d1、d2、d3、d4和d5,d5最小,则将A2划分到A12组,其他组以此类推,其他组以此类推。
4、把所有数据归好集合后,一共有k个集合。然后重新计算每个集合的质心。
5、如果新计算出来的质心和原来的质心之间的距离小于某一个设置的阈值(表示重新计算的质心的位置变化不大,趋于稳定,或者说收敛),可以认为聚类已经达到期望的结果,算法终止。
6、如果新质心和原质心距离变化很大,需要迭代3~5步骤。
迭代3-5步,最终得到聚类分析分组结果:C={A1、A9、A4}{A2、A12}{A3、A5、A6、A7、A8、A10}{A11}{A13}即C={C1,C2,C3,C4,C5}组。
方法(二)利用SPSS Statistics工具对X矩阵进行聚类分析,得出分组结果也是:
C1={A1、A9、A4}
C2={A2、A12}
C3={A3、A5、A6、A7、A8、A10}
C4={A11}
C5={A13}
即C={C1,C2,C3,C4,C5}组。
根据A1-A13对应的应用系统和操作场景,将分组写为如下形式:
C1={A1、A9、A4}={S1R1,S2A1,S1A1}
C2={A2、A12}={S1R2,S3A1}
C3={A3、A5、A6、A7、A8、A10}={S1R3,S1M1,S1D1,S2R2,S2A2}
C4={A11}={S3R1}
C5={A13}={S3D1}
从上述分组可以看出:
描述如下:
1)该领域应用信息系统对数据库系统的使用需求集中在增加和查询操作;
2)在查询操作R分组方面,C1组在数据量一般情况下,用户数要求较高,并且需要较低的查询性能;C2组在数据量一般情况下,要求查询性能一般;C3组是数据量较低情况下,用户数要求较低,查询性能要求较高;C4组是少量孤立场景,在大数据情况下,用户数要求很高,查询性能要求一般。
3)在新增操作A分组方面,C2组用户数要求一般,对于写入吞吐量要求一般;C1组对于用户数要求一般,对于写入吞吐量要求较低;C3组用户数要求一般,对于写入吞吐量要求较高。
4)在修改操作M分组方面,C3组数据量要求一般,用户数要求一般的情况下,对于写入吞吐量要求较高。
5)在删除操作D分组方面,C3组数据量要求一般,用户数要求一般的情况下,对于写入吞吐量要求一般。C5组少量孤立场景,在大数据情况下,用户数要求一般,查询性能要求较高。
可见,采用K-means算法和SPSS软件获得的分组结果合理,属于同一组的数据特征相似。
步骤5、确定每个类别所涉及的应用系统,将能够覆盖所有类别的最小应用系统集合作为典型应用系统。
本实例中,C1涉及S1和S2,C2涉及S1和S3,C3涉及S1和S2,C4涉及S3,C5涉及S3。可见,S1和S3的集合能够覆盖所有类别。因此,本步骤选择S1和S3作为典型应用系统。
步骤6、对典型应用系统设计基准测试方案。
参见图3,一种优选的基准测试框架包含如下6个部分。应用基准测试模型框架包括了6类关键信息组:
(1)测试目标。应用基准测试规范是自底向上构建的,是对其下各测试项的用例目标综合表述,也是基准测试的顶层需求。
(2)测试项。测试项是来源于同一典型应用系统的测试用例集合,具有相同前提条件、库表结构等。W-S
(3)前提要求。前提条件隶属于某测试项,是该测试项实施前所必需具备的条件、状态,否则测试结果不可被采信。前提条件来源于该测试项的关键功能、安全、标准要求等前提要求。比如:基本用例是数据库性能相关的测试,那么前提条件就是需要先把数据库相关的功能先测试了,才能保证基本用例的测试是有效的。
(4)基准用例。基本用例集隶属于某测试项,是该测试项实施的必测内容,并对测试项的评价有直接影响。基本用例来源于该领域的核心业务场景,一般含有代表较多操作的典型操作场景。W-T
如图4所示,基准用例包括用例目标、环境要求、事务要求、执行要求和评价方法。
①用例目标。对测试用例模拟的典型应用系统进行简单的说明,包括典型应用系统特征、业务流程、事务、数据关系概述等。
②环境要求:定义测试执行前的系统状态,包括测试硬件环境部署要求(例如:一些典型应用系统需要数据库系统双机热备模式)、软件基础环境配置要求、数据库表模式、表字段定义,前提数据量、数据增长空间等。
③事务要求:描述每项事务的概念及要求,定义事务的每个操作样本、操作类型、影响域(操作影响的表单数据项)、预期结果、关键阈值(例如:某操作响应时间阈值为10秒,被测对象的结果超过10秒,则该对象未通过测试)等。
④执行要求:定义测试运行过程要求,包括模拟用户数量、事务负载分配比例、各输入项取值分布(例如:要求输入值在某区间内近似正态分布)、事务间隔时间、服务响应时间、表单数据变化、服务稳定性要求,以及运行监控要求等。
⑤评价方法:与一般基准测试规范的峰值压力度量法不同,应用基准测试是以用户需求满足程度为评价标准,所以一般是在压力或响应时间固定情况下,度量数据库系统提供服务的能力,例如:在模拟用户数固定情况下,度量数据库系统的响应时间/吞吐量情况。
(5)扩展用例。扩展用例为测试项实施的选测内容。
可见,每个典型应用系统对应一个测试项,根据典型应用系统的重要性为每个测试项配置一个测试项权值W-Si,每个测试项的能力评分加权后得到能力总评分,即测试目标;每个测试项由前提条件、基本用例和扩展用例组成;前提条件定义了基本用例测试项实施前所必需具备的条件、状态;基本用例由至少一个基准用例组成,是测试项实施的必测内容;扩展用例为测试项实施的选测内容;为每个基准用例配置一个用例权值W-Ti,采用基准用例对相应的典型应用系统进行测试,获得能力评分,每个基准用例的能力评分加权后得到测试项的能力评分。
步骤7、利用基准测试方案对典型应用系统进行基准测试,完成测试目标。
本步骤针对每个典型应用系统进行测试:根据前提条件做好准备,完成测试项实施前所必需具备的条件、状态。采用基准用例进行测试,每个基准用例测试结果(即能力评分)加权后得到测试项的能力评分。扩展用例为测试项实施的选测内容,根据需要进行测试。而后,根据测试项权值W-Si,将每个测试项的能力评分加权后得到能力总评分,即测试目标。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
- 一种数据库系统应用基准测试规范设计方法和测试方法
- 基于交易场景的数据库基准测试方法及装置