CN108459951A - 测试方法和装置 - Google Patents
测试方法和装置 Download PDFInfo
- Publication number
- CN108459951A CN108459951A CN201710093930.XA CN201710093930A CN108459951A CN 108459951 A CN108459951 A CN 108459951A CN 201710093930 A CN201710093930 A CN 201710093930A CN 108459951 A CN108459951 A CN 108459951A
- Authority
- CN
- China
- Prior art keywords
- test
- feature
- databases
- environment
- test environment
- 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
Links
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/3664—Environments for testing or debugging software
-
- 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
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
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)如果现网业务或数据具备一定的敏感型,这种技术将不能实现;3)这种技术会对现网造成一定的压力,一定程度上消耗了现网的资源。
因此,需要一种新的技术,在脱离现网环境的情况下,对多种现网场景进行测试。
发明内容
有鉴于此,本发明的目的在于提供一种测试方法和装置,以在脱离现网环境的情况下,对多种现网场景进行测试。
本发明解决上述技术问题所采用的技术方案如下:
根据本发明的一个方面,提供的一种测试方法,该方法包括:
获取现网场景中多个原数据库的特征及所述特征的特征值;
根据所述特征及所述特征值对测试环境中的多个测试数据库进行配置;
通过所述测试环境的多个测试数据库执行预设的操作,得到测试结果。
根据本发明的另一个方面,提供一种测试装置,该装置包括:
特征获取模块,用于获取现网场景中多个原数据库的特征及所述特征的特征值;
场景还原模块,用于根据所述特征及所述特征值对测试环境中的多个测试数据库进行配置;
测试模块,用于通过所述测试环境的多个测试数据库执行预设的操作,得到测试结果。
根据以上技术方案,可知本发明的测试方法和装置至少具有以下有益效果:
根据本发明的技术方案,在不依赖现网环境的情况下,通过对现网环境进行特征提取,并根据提取的特征配置与现网环境对应的测试环境,则利用测试环境下可以模拟多种现网场景,从而实现对多种现网场景的测试;本发明的技术方案能够根据场景特点模拟对应场景,利用测试环境对现网环境仿真并进行测试,既能覆盖到现网测试,也不会对现网集群及数据造成干扰,而且可根据场景特征和数据库类型进行配置,通用性强。
附图说明
图1为本发明实施例提供的一种测试方法的流程图;
图2为本发明实施例提供的一种测试方法的原理流程图;
图3为本发明实施例提供的一种测试方法的整体流程图;
图4为本发明实施例提供的一种测试方法的流程图;
图5为本发明实施例提供的一种测试方法的原理流程图;
图6为本发明实施例提供的一种测试方法的原理流程图;
图7为本发明实施例提供的一种测试方法的原理流程图;
图8为本发明实施例提供的一种测试方法的整体框架图;
图9为本发明实施例提供的一种测试装置的框图;
图10为本发明实施例提供的一种测试装置的框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。本实施例的技术方案应用于对现网环境的数据库集群的仿真测试,测试环境中同样具有一定规模的数据库集群,以下通过实施例详细描述本发明的技术方案。
如图1所示,本发明的一个实施例中提供了一种测试方法。本实施例的核心是实现一种对数据库现网场景进行仿真的实现方案,由于数据库的现网场景很难模拟,但是现网场景测试又是测试中很重要的一环,这就给数据库测试工作带来了很大的困难。本实施例针对这一现状对现网场景进行仿真,旨在为数据库现网场景测试提供方便,从而提升测试覆盖率和测试质量。本实施例的方法包括:
步骤S110,获取现网场景中多个原数据库的特征及特征值。在本实施例中,场景特征提取支持自动获取和人工输入两种方式:(1)自动获取:对于环境及数据不敏感的现网场景,可通过***自动获取现网的场景特征及特征值,并可即时获取现网的变更并应用于测试环境,从而及时对测试集群进行更新和同步;(2)人工输入:当环境及数据比较敏感时,可人工将现网的场景特征及特征值输入测试环境。人工输入还可用于测试非现网的其他场景测试。
具体地,现网场景的特征包括但不限于:数据库集群规模、数据量、数据库配置、数据库访问特点、数据库语句特点、业务逻辑特点、数据库连接特点和/或流量压力值。
本实施例中通过将数据库应用场景的主要特征进行提取,通过特征值还原指定的场景,不同的特征值对应的不同的场景,所以在本实施例中基于不同特征值可以配置不同场景以进行测试。数据库现网应用场景的主要特征包括:数据库集群规模(分布式数据库)、数据量、现网数据库配置、数据库访问特点、sql特点、业务逻辑特点、数据库连接特点、流量压力值。一般情况下,在分布式数据库测试过程中,测试集群规模会比现网集群规模小的多,所以本实施例在特征提取过程中,对于集群规模、数据量、流量压力值等值的处理上需要进行等比缩容,在场景还原过程中,使处理后的特征与测试集群匹配。通过特征配置场景,可使场景配置更简洁、方便。对于非敏感现网环境,可直接自动提取现网特征。特征提取过程的示意图为图2,从现网场景获取的记录多个特征的特征值输入到一预设的特征入口,之后对该特征入口接收的数据进行解析、分类,划分出集群规模、数量等多个特征,基于该多个特征的特征值生成对应的配置指令以将上述特征配置到测试环境中。本实施例中的接口通用、复用性强,使得测试场景可配置,适用于多种数据库场景测试。
步骤S120,根据特征及特征值对测试环境中的多个测试数据库进行配置。
在本实施例中,具体可以采用的配置方式可以为:
按测试环境的多个测试数据库对应的配置方式,将特征及特征值发送给测试环境的多个测试数据库以进行配置。在本实施例中,对获取的场景特征及特征值进行解析,并通过正确的配置方式下发到测试环境,使测试环境还原到与现网环境一致。
在提取到场景特征之后,首先需要通过特征及特征值进行场景还原。在场景仿真实现过程中,将获取的各项特征的特征值通过变量形式进行存储,并将各个特征的特征值按符合测试环境要求的方式传入,并按各个特征配置测试环境,即通过这些特征还原与现网相同的场景。
本实施例的技术方案支持多种数据库场景测试,因此在场景还原部分,会根据数据库类型对sql和配置指令以及下发路径等做相应的转换,例如,如果现网环境的数据库与测试环境的数据库在sql语法中存在差异,则将应用于现网环境的sql语句应用于测试环境中时,需要根据语法差异对sql语句进行相应修改,使场景能应用于目标数据库。
步骤S130,通过测试环境的多个测试数据库执行预设的操作,得到测试结果。在本实施例中,可以对测试结果进行收集,这部分结果包括操作流执行结果(例如数据库sql语句后的反馈状态)、数据结果(执行sql语句后得到的值)、以及各项指标结果(数据库执行sql语句后的状态参数)。本实施例中可以将测试结果通过邮件等形式进行输出。这部分包括正常的测试结果输出,以及异常结果的告警。
在上述实施例的基础上,本发明的另一实施例进一步包括:记录测试环境的多个原数据库的配置信息,以及记录测试环境的多个测试数据库执行的操作信息,配置信息包括配置参数,操作信息包括操作步骤;根据记录的配置信息和操作信息,控制测试环境的多个测试数据库重复进行配置配置参数以及重复执行操作步骤。即在本实施例的技术方案中,可以收集和存储测试过程中动作和配置,使相同的场景可重复执行,可用于故障重现,则本实施例的技术方案整体流程如图3所示。
进一步地,本发明的另一实施例进一步包括:将测试环境的多个测试数据库恢复至配置前的初始状态。即在本实施例的技术方案中,将测试环境恢复至初始状态,使本实施例的技术方案闭环运行,提高自动化程度。
现有的关于数据库的现网场景测试技术主要缺点是通用性不高,而本实施例的技术方案主要有以下几点技术优势:1)通用性强:既支持自动获取场景特征的特征值,又支持人工输入特征的特征值,使***不但可用于现网场景测试,还可用于人工设计的场景测试;***分层设计,接口灵活,可应用于多种数据库测试,通用性较高;2)安全性高:将现网场景和配置在测试环境进行模拟,避免对现网环境造成直接干扰,既保证了测试场景覆盖率,又保证了现网环境和敏感数据的安全性;3)降低测试人力成本:本技术方案的自动化程度高,从特征提取、结果分析到环境复位,整套***形成一个闭环,无需过多测试人力投入。
如图4所示,本发明的一个实施例提供的一种测试方法,该方法包括:
步骤S410,获取现网场景中多个原数据库的特征及特征值。
在本实施例中,获取的现网场景特征(支持人工输入特征)包括现网数据库配置、数据库访问特点、sql特点、业务逻辑特点、数据库连接特点、流量压力值等。
步骤S420,根据特征及特征值对测试环境中的多个测试数据库进行配置。
步骤S430,获取现网场景的多个原数据库执行的动态操作流,动态操作流包括具有预定时序的多个操作,以及通过测试环境的多个测试数据库,按预定时序依次执行多个操作。
现网场景除了静态配置之外,还有动态操作流,在本实施例中还收集或人工配置动态操作流,并还原动态操作流的执行过程,即在测试环境的数据库中按指定的时序进行动态操作流中的多个动作。
在本实施例中,将现网模拟操作流以指定的时序输入测试环境进行模拟,更加真实的模拟现网的动态场景,本实施例中场景还原的流程图如图5所示,特征和动作指令(包括sql和修改配置的指令)输入后,动作指令经解析、转换形成目标数据库可执行的指令,这其中需要:1)sql处理:去掉sql的非法冗余内容,例如注释,例如,可以查找标明注释的符号,删除符号对应的注释部分;2)在现网环境的数据库与测试环境的数据库存在sql语法差异时,需要修改语法使其适用于测试环境的数据库。对于用于配置的指令,如果其中需要重启生效的指令,为其添加一条重启指令,以在配置完成后进行重启使配置生效。生成测试环境的过程包括:准备源数据、建用户、建表等,在源数据、用户、表建立完成的情况下,可以执行sql语句来开始测试过程,在环境生成之前下发的指令需要加入等待队列。测试环境配置完成后,队列中的指令下发到环境中的数据库集群执行,并记录日志用于场景回放。
由此可见,本实施例的技术方案支持场景回放,真实还原现网场景,可辅助开发人员进行错误定位及调试。
本实施例中,测试结果包括以下几个部分:1)数据部分:数据正确性、一致性等。2)指标部分:数据库***指标、机器指标、性能指标等。将上述结果进行收集后,可以进行数据分析,例如分析数据的正确性是否存在问题,最终将分析结果通过邮件、短信、电话等形式进行输出。
步骤S440,调整动态操作流中操作的并发量,以改变测试环境中的多个测试数据库负载的压力;调整测试环境中的多个测试数据库对应的客户端数量,以改变测试环境中的多个数据库负载的压力。在本实施例中,可以对测试环境压力进行调节,以从现网获取的流量压力特征为阈值,分别验证低于阈值和高于阈值N倍的数据库状态;本实施例中进行压力测试的流程如图6所示,client1-n为多个客户端,通过控制客户端的数量以及客户端发出的指令并发量可以调整测试环境中数据库的访问量,即调整数据库承受的压力,在本实施例中可以监控数据库在不同压力大小下的状态,直至压力达到预设的最大压力则停止调整。
数据库测试中,压力测试是很重要的一部分。本实施例中,首先获取现网的平均压力值,以此作为阈值,验证数据库***的稳定性。除此之外,还需要预测当压力大于此值时,数据库***的稳定性和相关性能指标的变化,有时还需要验证压力小于此值时的状态。本实施例中,压力调节主要通过以下几种手段实现:1)调整执行客户端数量:本实施例支持多机部署及运行,可根据调整客户端数量来调整集群压力。2)调整业务并发量:在进行动作流还原过程中,可通过调整这部分操作的并发量来进行压力调整。
在本实施例中,不但可以根据场景的特征真实还原场景,而且可自动调整测试环境压力,提前预知数据库的抗压极限及在不同压力下的表现。
步骤S450,根据测试环境的多个测试数据库执行的操作,计算测试环境的多个测试数据库的预期测试结果,将测试结果与预期测试结果进行比对,得到对比结果以用于提供给用户。
在本实施例中,根据原数据库的历史工作记录或特定的算法,可以对测试结果进行估算。在本实施例中,对预期测试结果以及测试环境输出的实际测试结果进行对比,以此判断数据库功能是否正常,这部分主要是对数据的分析,以及各项指标与阈值的比较,其具体流程如图7所示,提供三种对比方式:存量数据结果对比、增量数据结果对比、主备数据结果对比,由于三种对比方式涉及的数据量依次增大,所以对比准确性依次增大,通过sql语句来从数据库中查询所需的存量、增量或主备数据,且可以通过sql语句来控制查询数据的条数,以控制查询结果的数据量;用于进行多版本对比的数据包括连接测试环境数据库的连接时长、在测试环境中执行sql语句的sql执行时长等;进行对比的实时状态包括:数据库集群各节点指标、机器指标、***指标,上述指标可以通过从测试环境的数据库中获取,其中多种指标数据可以从数据库的工作日志中获取。利用本实施例的技术方案,可以实现一种现网预演***,在现网环境的数据库功能上线前,利用测试环境进行仿真测试,并预测新功能上线后可能出现的情况。
本实施例的技术方案的整体框架如图8所示,基于提取的特征、动作流进行场景还原,以在用于测试的数据库集群上形成测试环境;基于用于测试的源数据,在测试环境中完成测试过程得到测试结果,包括反映sql语句执行情况的执行结果、sql语句执行后的查询结果、测试环境中数据库集群对应的机器(硬件)指标和***(软件)指标、;对在测试环境上得到的测试结果经对比、分析后,可以将对比或分析的结果通知用户,也可以存储至数据库,或者形成图表以展示给用户。
综上可知,本实施例的技术方案有利于提高对现网环境的测试质量,有效降低漏测率,并能够提高测试效率,降低测试人力成本。
如图9所示,本发明的一个实施例中提供了一种测试装置。本实施例的核心是实现一种对数据库现网场景进行仿真的实现方案,由于数据库的现网场景很难模拟,但是现网场景测试又是测试中很重要的一环,这就给数据库测试工作带来了很大的困难。本实施例针对这一现状对现网场景进行仿真,旨在为数据库现网场景测试提供方便,从而提升测试覆盖率和测试质量。本实施例的方法包括:
特征获取模块910,获取现网场景中多个原数据库的特征及特征值。
在本实施例中,场景特征提取支持自动获取和人工输入两种方式:(1)自动获取:对于环境及数据不敏感的现网场景,可通过***自动获取现网的场景特征及特征值,并可即时获取现网的变更并应用于测试环境,从而及时对测试集群进行更新和同步;(2)人工输入:当环境及数据比较敏感时,可人工将现网的场景特征及特征值输入测试环境。人工输入还可用于测试非现网的其他场景测试。
具体地,现网场景的特征包括但不限于:数据库集群规模、数据量、数据库配置、数据库访问特点、数据库语句特点、业务逻辑特点、数据库连接特点和/或流量压力值。
本实施例中通过将数据库应用场景的主要特征进行提取,通过特征值还原指定的场景,不同的特征值对应的不同的场景,所以在本实施例中基于不同特征值可以配置不同场景以进行测试。数据库现网应用场景的主要特征包括:数据库集群规模(分布式数据库)、数据量、现网数据库配置、数据库访问特点、sql特点、业务逻辑特点、数据库连接特点、流量压力值。一般情况下,在分布式数据库测试过程中,测试集群规模会比现网集群规模小的多,所以本实施例在特征提取过程中,对于集群规模、数据量、流量压力值等值的处理上需要进行等比缩容,在场景还原过程中,使处理后的特征与测试集群匹配。通过特征配置场景,可使场景配置更简洁、方便。对于非敏感现网环境,可直接自动提取现网特征。特征提取过程的示意图为图2,从现网场景获取的记录多个特征的特征值输入到一预设的特征入口,之后对该特征入口接收的数据进行解析、分类,划分出集群规模、数量等多个特征,基于该多个特征的特征值生成对应的配置指令以将上述特征配置到测试环境中。本实施例中的接口通用、复用性强,使得测试场景可配置,适用于多种数据库场景测试。
场景还原模块920,根据特征及特征值对测试环境中的多个测试数据库进行配置。
在本实施例中,具体可以采用的配置方式可以为:
按测试环境的多个测试数据库对应的配置方式,将特征及特征值发送给测试环境的多个测试数据库以进行配置。在本实施例中,对获取的场景特征及特征值进行解析,并通过正确的配置方式下发到测试环境,使测试环境还原到与现网环境一致。
在提取到场景特征之后,首先需要通过特征及特征值进行场景还原。在场景仿真实现过程中,将获取的各项特征的特征值通过变量形式进行存储,并将各个特征的特征值按符合测试环境要求的方式传入,并按各个特征配置测试环境,即通过这些特征还原与现网相同的场景。
本实施例的技术方案支持多种数据库场景测试,因此在场景还原部分,会根据数据库类型对sql和配置指令以及下发路径等做相应的转换,例如,如果现网环境的数据库与测试环境的数据库在sql语法中存在差异,则将应用于现网环境的sql语句应用于测试环境中时,需要根据语法差异对sql语句进行相应修改,使场景能应用于目标数据库。
测试模块930,通过测试环境的多个测试数据库执行预设的操作,得到测试结果。在本实施例中,可以对测试结果进行收集,这部分结果包括操作流执行结果(例如数据库sql语句后的反馈状态)、数据结果(执行sql语句后得到的值)、以及各项指标结果(数据库执行sql语句后的状态参数)。本实施例中可以将测试结果通过邮件等形式进行输出。这部分包括正常的测试结果输出,以及异常结果的告警。
在上述实施例的基础上,本发明的另一实施例进一步包括:记录模块,:记录测试环境的多个原数据库的配置信息,以及记录测试环境的多个测试数据库执行的操作信息,配置信息包括配置参数,操作信息包括操作步骤;测试模块根据记录的配置信息和操作信息,控制测试环境的多个测试数据库重复进行配置配置参数以及重复执行操作步骤。即在本实施例的技术方案中,可以收集和存储测试过程中动作和配置,使相同的场景可重复执行,可用于故障重现,则本实施例的技术方案整体流程如图3所示。
进一步地,本发明的另一实施例进一步包括:恢复模块,将测试环境的多个测试数据库恢复至配置前的初始状态。即在本实施例的技术方案中,将测试环境恢复至初始状态,使本实施例的技术方案闭环运行,提高自动化程度。
现有的关于数据库的现网场景测试技术主要缺点是通用性不高,而本实施例的技术方案主要有以下几点技术优势:1)通用性强:既支持自动获取场景特征的特征值,又支持人工输入特征的特征值,使***不但可用于现网场景测试,还可用于人工设计的场景测试;***分层设计,接口灵活,可应用于多种数据库测试,通用性较高;2)安全性高:将现网场景和配置在测试环境进行模拟,避免对现网环境造成直接干扰,既保证了测试场景覆盖率,又保证了现网环境和敏感数据的安全性;3)降低测试人力成本:本技术方案的自动化程度高,从特征提取、结果分析到环境复位,整套***形成一个闭环,无需过多测试人力投入。
如图10所示,本发明的一个实施例提供的一种测试装置,该装置包括:
特征获取模块1010,获取现网场景中多个原数据库的特征及特征值。在本实施例中,获取的现网场景特征(支持人工输入特征)包括现网数据库配置、数据库访问特点、sql特点、业务逻辑特点、数据库连接特点、流量压力值等。
场景还原模块1020,根据特征及特征值对测试环境中的多个测试数据库进行配置。
测试模块1030,获取现网场景的多个原数据库执行的动态操作流,动态操作流包括具有预定时序的多个操作,以及通过测试环境的多个测试数据库,按预定时序依次执行多个操作。
现网场景除了静态配置之外,还有动态操作流,在本实施例中还收集或人工配置动态操作流,并还原动态操作流的执行过程,即在测试环境的数据库中按指定的时序进行动态操作流中的多个动作。
在本实施例中,将现网模拟操作流以指定的时序输入测试环境进行模拟,更加真实的模拟现网的动态场景,本实施例中场景还原的流程图如图5所示,特征和动作指令(包括sql和修改配置的指令)输入后,动作指令经解析、转换形成目标数据库可执行的指令,这其中需要:1)sql处理:去掉sql的非法冗余内容,例如注释,例如,可以查找标明注释的符号,删除符号对应的注释部分;2)在现网环境的数据库与测试环境的数据库存在sql语法差异时,需要修改语法使其适用于测试环境的数据库。对于用于配置的指令,如果其中需要重启生效的指令,为其添加一条重启指令,以在配置完成后进行重启使配置生效。生成测试环境的过程包括:准备源数据、建用户、建表等,在源数据、用户、表建立完成的情况下,可以执行sql语句来开始测试过程,在环境生成之前下发的指令需要加入等待队列。测试环境配置完成后,队列中的指令下发到环境中的数据库集群执行,并记录日志用于场景回放。
由此可见,本实施例的技术方案支持场景回放,真实还原现网场景,可辅助开发人员进行错误定位及调试。
本实施例中,测试结果包括以下几个部分:1)数据部分:数据正确性、一致性等。2)指标部分:数据库***指标、机器指标、性能指标等。将上述结果进行收集后,可以进行数据分析,例如分析数据的正确性是否存在问题,最终将分析结果通过邮件、短信、电话等形式进行输出。
测试模块1030调整动态操作流中操作的并发量,以改变测试环境中的多个测试数据库负载的压力;调整测试环境中的多个测试数据库对应的客户端数量,以改变测试环境中的多个数据库负载的压力。在本实施例中,可以对测试环境压力进行调节,以从现网获取的流量压力特征为阈值,分别验证低于阈值和高于阈值N倍的数据库状态;本实施例中进行压力测试的流程如图6所示,client1-n为多个客户端,通过控制客户端的数量以及客户端发出的指令并发量可以调整测试环境中数据库的访问量,即调整数据库承受的压力,在本实施例中可以监控数据库在不同压力大小下的状态,直至压力达到预设的最大压力则停止调整。
数据库测试中,压力测试是很重要的一部分。本实施例中,首先获取现网的平均压力值,以此作为阈值,验证数据库***的稳定性。除此之外,还需要预测当压力大于此值时,数据库***的稳定性和相关性能指标的变化,有时还需要验证压力小于此值时的状态。本实施例中,压力调节主要通过以下几种手段实现:1)调整执行客户端数量:本实施例支持多机部署及运行,可根据调整客户端数量来调整集群压力。2)调整业务并发量:在进行动作流还原过程中,可通过调整这部分操作的并发量来进行压力调整。
在本实施例中,不但可以根据场景的特征真实还原场景,而且可自动调整测试环境压力,提前预知数据库的抗压极限及在不同压力下的表现。
结果分析模块1040,根据测试环境的多个测试数据库执行的操作,计算测试环境的多个测试数据库的预期测试结果,将测试结果与预期测试结果进行比对,得到对比结果以用于提供给用户。
在本实施例中,根据原数据库的历史工作记录或特定的算法,可以对测试结果进行估算。在本实施例中,对预期测试结果以及测试环境输出的实际测试结果进行对比,以此判断数据库功能是否正常,这部分主要是对数据的分析,以及各项指标与阈值的比较,其具体流程如图7所示,提供三种对比方式:存量数据结果对比、增量数据结果对比、主备数据结果对比,由于三种对比方式涉及的数据量依次增大,所以对比准确性依次增大,通过sql语句来从数据库中查询所需的存量、增量或主备数据,且可以通过sql语句来控制查询数据的条数,以控制查询结果的数据量;用于进行多版本对比的数据包括连接测试环境数据库的连接时长、在测试环境中执行sql语句的sql执行时长等;进行对比的实时状态包括:数据库集群各节点指标、机器指标、***指标,上述指标可以通过从测试环境的数据库中获取,其中多种指标数据可以从数据库的工作日志中获取。利用本实施例的技术方案,可以实现一种现网预演***,在现网环境的数据库功能上线前,利用测试环境进行仿真测试,并预测新功能上线后可能出现的情况。
本实施例的技术方案的整体框架如图8所示,基于提取的特征、动作流进行场景还原,以在用于测试的数据库集群上形成测试环境;基于用于测试的源数据,在测试环境中完成测试过程得到测试结果,包括反映sql语句执行情况的执行结果、sql语句执行后的查询结果、测试环境中数据库集群对应的机器(硬件)指标和***(软件)指标、;对在测试环境上得到的测试结果经对比、分析后,可以将对比或分析的结果通知用户,也可以存储至数据库,或者形成图表以展示给用户。
综上可知,本实施例的技术方案有利于提高对现网环境的测试质量,有效降低漏测率,并能够提高测试效率,降低测试人力成本。
另外,本领域普通技术人员可以理解实现上述各方法实施例中的全部或部分步骤是可以通过程序来指令相关的硬件完成,相应的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上参照附图说明了本发明的优选实施例,并非因此局限本发明的权利范围。本领域技术人员不脱离本发明的范围和实质,可以有多种变型方案实现本发明,比如作为一个实施例的特征可用于另一实施例而得到又一实施例。凡在运用本发明的技术构思之内所作的任何修改、等同替换和改进,均应在本发明的权利范围之内。
Claims (10)
1.一种测试方法,其特征在于,该方法包括:
获取现网场景中多个原数据库的特征及所述特征的特征值;
根据所述特征及所述特征值对测试环境中的多个测试数据库进行配置;
通过所述测试环境的多个测试数据库执行预设的操作,得到测试结果。
2.根据权利要求1所述的方法,其特征在于,所述现网场景中多个原数据库的特征包括:
数据库集群规模、数据量、数据库配置、数据库访问特点、数据库语句特点、业务逻辑特点、数据库连接特点和/或流量压力值。
3.根据权利要求1所述的方法,其特征在于,通过所述测试环境的多个测试数据库执行预设的操作,具体包括:
获取所述现网场景的多个原数据库执行的动态操作流,所述动态操作流包括具有预定时序的多个操作;
通过所述测试环境的多个测试数据库,按所述预定时序依次执行所述多个操作。
4.根据权利要求1所述的方法,其特征在于,根据所述特征及所述特征值对测试环境中的多个测试数据库进行配置,具体包括:
按所述测试环境的多个测试数据库对应的配置方式,将所述特征及所述特征值发送给所述测试环境的多个测试数据库以进行配置。
5.根据权利要求3所述的方法,其特征在于,通过所述测试环境的多个测试数据库执行预设的多个操作,得到测试结果,还包括:
调整所述动态操作流中操作的并发量,以改变所述测试环境中的多个测试数据库负载的压力。
6.根据权利要求1所述的方法,其特征在于,通过所述测试环境的多个测试数据库执行预设的多个操作,得到测试结果,具体包括:
调整所述测试环境中的多个测试数据库对应的客户端数量,以改变所述测试环境中的多个测试数据库负载的压力。
7.根据权利要求1所述的方法,其特征在于,还包括:
根据所述测试环境的多个测试数据库执行的操作,计算所述测试环境的多个测试数据库的预期测试结果,将所述测试结果与所述预期测试结果进行比对,得到对比结果以用于提供给用户。
8.根据权利要求1所述的方法,其特征在于,还包括:
记录所述测试环境的多个原数据库的配置信息,以及记录所述测试环境的多个测试数据库执行的操作信息,所述配置信息包括配置参数,所述操作信息包括操作步骤;
根据记录的所述配置信息和所述操作信息,控制所述测试环境的多个测试数据库重复进行配置所述配置参数以及重复执行所述操作步骤。
9.根据权利要求1至8中任一项所述的方法,其特征在于,还包括:
将所述测试环境的多个测试数据库恢复至配置前的初始状态。
10.一种测试装置,其特征在于,该装置包括:
特征获取模块,用于获取现网场景中多个原数据库的特征及所述特征的特征值;
场景还原模块,用于根据所述特征及所述特征值对测试环境中的多个测试数据库进行配置;
测试模块,用于通过所述测试环境的多个测试数据库执行预设的操作,得到测试结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710093930.XA CN108459951B (zh) | 2017-02-21 | 2017-02-21 | 测试方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710093930.XA CN108459951B (zh) | 2017-02-21 | 2017-02-21 | 测试方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108459951A true CN108459951A (zh) | 2018-08-28 |
CN108459951B CN108459951B (zh) | 2022-07-29 |
Family
ID=63222029
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710093930.XA Active CN108459951B (zh) | 2017-02-21 | 2017-02-21 | 测试方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108459951B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110659202A (zh) * | 2019-08-12 | 2020-01-07 | 网宿科技股份有限公司 | 客户端自动化测试方法及装置 |
CN110825512A (zh) * | 2019-11-08 | 2020-02-21 | 东南数字经济发展研究院 | 一种通用的分布式***设计及其c++实现 |
CN110995524A (zh) * | 2019-10-28 | 2020-04-10 | 北京三快在线科技有限公司 | 流量数据监控方法、装置、电子设备和计算机可读介质 |
CN111190811A (zh) * | 2019-12-05 | 2020-05-22 | 东方微银科技(北京)有限公司 | 一种资源分配***的测试方法、装置、设备及存储介质 |
CN112100052A (zh) * | 2020-08-07 | 2020-12-18 | 北京奇艺世纪科技有限公司 | 一种接口测试场景的回放方法及装置 |
CN112231324A (zh) * | 2019-06-26 | 2021-01-15 | 中兴通讯股份有限公司 | 一种实现增量数据比对的***及方法 |
CN114546823A (zh) * | 2021-12-27 | 2022-05-27 | 芯华章科技股份有限公司 | 用于重现逻辑***设计的调试场景的方法及相关设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040017385A1 (en) * | 2002-07-19 | 2004-01-29 | Cosman Michael A. | System and method for combining independent scene layers to form computer generated environments |
CN104866580A (zh) * | 2015-05-26 | 2015-08-26 | 梁猛 | 一种数据库变更对现有业务影响的快速侦测方法 |
CN105095325A (zh) * | 2014-05-23 | 2015-11-25 | 中兴通讯股份有限公司 | 一种测试数据的生成方法及装置 |
CN105488539A (zh) * | 2015-12-16 | 2016-04-13 | 百度在线网络技术(北京)有限公司 | 分类模型的生成方法及装置、***容量的预估方法及装置 |
CN105824745A (zh) * | 2015-01-04 | 2016-08-03 | ***通信集团湖南有限公司 | 一种灰度发布方法及装置 |
-
2017
- 2017-02-21 CN CN201710093930.XA patent/CN108459951B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040017385A1 (en) * | 2002-07-19 | 2004-01-29 | Cosman Michael A. | System and method for combining independent scene layers to form computer generated environments |
CN105095325A (zh) * | 2014-05-23 | 2015-11-25 | 中兴通讯股份有限公司 | 一种测试数据的生成方法及装置 |
CN105824745A (zh) * | 2015-01-04 | 2016-08-03 | ***通信集团湖南有限公司 | 一种灰度发布方法及装置 |
CN104866580A (zh) * | 2015-05-26 | 2015-08-26 | 梁猛 | 一种数据库变更对现有业务影响的快速侦测方法 |
CN105488539A (zh) * | 2015-12-16 | 2016-04-13 | 百度在线网络技术(北京)有限公司 | 分类模型的生成方法及装置、***容量的预估方法及装置 |
Non-Patent Citations (1)
Title |
---|
李捷: "短信***中的Oracle数据库性能优化研究及实施", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112231324A (zh) * | 2019-06-26 | 2021-01-15 | 中兴通讯股份有限公司 | 一种实现增量数据比对的***及方法 |
CN112231324B (zh) * | 2019-06-26 | 2023-03-24 | 金篆信科有限责任公司 | 一种实现增量数据比对的***及方法 |
CN110659202A (zh) * | 2019-08-12 | 2020-01-07 | 网宿科技股份有限公司 | 客户端自动化测试方法及装置 |
CN110995524A (zh) * | 2019-10-28 | 2020-04-10 | 北京三快在线科技有限公司 | 流量数据监控方法、装置、电子设备和计算机可读介质 |
CN110995524B (zh) * | 2019-10-28 | 2022-06-14 | 北京三快在线科技有限公司 | 流量数据监控方法、装置、电子设备和计算机可读介质 |
CN110825512A (zh) * | 2019-11-08 | 2020-02-21 | 东南数字经济发展研究院 | 一种通用的分布式***设计及其c++实现 |
CN110825512B (zh) * | 2019-11-08 | 2024-05-24 | 东南数字经济发展研究院 | 一种通用的分布式***设计及其c++实现 |
CN111190811A (zh) * | 2019-12-05 | 2020-05-22 | 东方微银科技(北京)有限公司 | 一种资源分配***的测试方法、装置、设备及存储介质 |
CN112100052A (zh) * | 2020-08-07 | 2020-12-18 | 北京奇艺世纪科技有限公司 | 一种接口测试场景的回放方法及装置 |
CN112100052B (zh) * | 2020-08-07 | 2023-08-18 | 北京奇艺世纪科技有限公司 | 一种接口测试场景的回放方法及装置 |
CN114546823A (zh) * | 2021-12-27 | 2022-05-27 | 芯华章科技股份有限公司 | 用于重现逻辑***设计的调试场景的方法及相关设备 |
CN114546823B (zh) * | 2021-12-27 | 2023-09-12 | 芯华章科技股份有限公司 | 用于重现逻辑***设计的调试场景的方法及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN108459951B (zh) | 2022-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108459951A (zh) | 测试方法和装置 | |
US6941546B2 (en) | Method and apparatus for testing a software component using an abstraction matrix | |
US6986125B2 (en) | Method and apparatus for testing and evaluating a software component using an abstraction matrix | |
CN109813999B (zh) | 一种配电网故障诊断算法自动测试平台、方法及应用 | |
CN110750458A (zh) | 大数据平台测试方法、装置、可读存储介质及电子设备 | |
CN110297470B (zh) | 一种轻量级跨平台的轨道交通蓄电池数据监控上位机平台 | |
CN103605556A (zh) | 虚拟试验对象一体化构建***及方法 | |
CN103646104A (zh) | 一种强实时故障诊断方法及*** | |
CN109977012B (zh) | ***的联调测试方法、装置、设备及计算机可读存储介质 | |
CN104635507A (zh) | 飞机运行实时监控***的仿真验证*** | |
CN107003931B (zh) | 将测试验证从测试执行分离 | |
CN113868120A (zh) | 工业软件调试方法、装置、计算机设备和存储介质 | |
CN111309734A (zh) | 自动生成表数据的方法及*** | |
CN111159034A (zh) | 软件的测试方法及装置 | |
WO2017084388A1 (zh) | 一种网络巡检方法及装置 | |
CN112860587B (zh) | Ui自动测试方法和装置 | |
US11586976B2 (en) | Method and apparatus for creating tests for execution in a storage environment | |
CN116756021A (zh) | 基于事件分析的故障定位方法、装置、电子设备及介质 | |
JP2007249949A (ja) | フォーマットする試験結果の文脈を提供する変数値を格納する装置 | |
CN106066820B (zh) | 验证挂载恢复卷的自动化测试方法及*** | |
CN112256554B (zh) | 一种基于场景测试用例进行测试的方法及设备 | |
CN114647568A (zh) | 自动化测试方法、装置、电子设备及可读存储介质 | |
CN113434387A (zh) | 一种基于脚本驱动的自动化测试工具及*** | |
WO2004068347A1 (en) | Method and apparatus for categorising test scripts | |
CN111694752A (zh) | 应用测试方法、电子设备及存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |