可左右滑动选省市

一种数据库的性能测试方法、装置、设备及介质

更新时间:2024-10-01
一种数据库的性能测试方法、装置、设备及介质 专利申请类型:实用新型专利;
源自:北京高价值专利检索信息库;

专利名称:一种数据库的性能测试方法、装置、设备及介质

专利类型:实用新型专利

专利申请号:CN202110801754.7

专利申请(专利权)人:北京金山云网络技术有限公司
权利人地址:北京市海淀区西二旗中路33号院4号楼6层006号

专利发明(设计)人:李林真

专利摘要:本公开实施例涉及一种数据库的性能测试方法、装置、设备及介质,其中该方法包括:获取目标数据库的性能测试配置信息;根据性能测试配置信息以及目标云平台创建测试任务,并且根据性能测试配置信息以及目标云平台,在目标云平台的云服务器中安装部署测试工具,其中,测试任务用于调用目标云平台的接口创建并测试目标数据库的多个数据库实例;基于测试工具和测试任务测试目标数据库的性能。采用上述技术方案,仅需要测试人员输入云平台和配置信息即可实现对数据库的性能测试,由于预先配置了支持多个云平台的接口,可以实现对不同云平台的数据库的性能测试,代码集成度高并且容易维护,通过一种通用化的测试流程提升了性能测试效率。

主权利要求:
1.一种数据库的性能测试方法,其特征在于,包括:
获取目标数据库的性能测试配置信息;其中,所述性能测试配置信息包括云服务器配置信息和数据库配置信息;
根据所述性能测试配置信息以及目标云平台创建测试任务,并且根据所述性能测试配置信息以及所述目标云平台,在所述目标云平台的云服务器中安装部署测试工具,其中,所述测试任务用于调用所述目标云平台的接口创建并测试所述目标数据库的多个数据库实例,所述目标云平台是所述目标数据库所对应云服务的提供平台;
基于所述测试工具和所述测试任务测试所述目标数据库的性能。
2.根据权利要求1所述的方法,其特征在于,根据所述性能测试配置信息以及所述目标云平台,在所述目标云平台的云服务器中安装部署测试工具,包括:根据所述性能测试配置信息中的云服务器配置信息调用所述目标数据库对应的工具部署脚本,将所述测试工具安装部署在所述目标云平台的一个或多个云服务器中。
3.根据权利要求1所述的方法,其特征在于,所述云服务器配置信息包括云服务器的IP信息、登录信息、分组信息、并发信息和测试工具参数中的至少一种。
4.根据权利要求1所述的方法,其特征在于,根据所述性能测试配置信息以及目标云平台创建测试任务,包括:根据所述性能测试配置信息中的数据库配置信息创建测试任务,其中,所述数据库配置信息包括所述目标数据库的多个数据库实例的配置信息。
5.根据权利要求1所述的方法,其特征在于,基于所述测试工具和所述测试任务测试所述目标数据库的性能,包括:执行所述测试任务,基于所述数据库配置信息创建所述目标数据库的多个数据库实例;
发送测试开始指令给所述目标云平台,通过所述目标云平台调用测试执行脚本,以基于所述云服务器中的测试工具控制所述云服务器与所述多个数据库实例之间执行性能测试。
6.根据权利要求5所述的方法,其特征在于,基于所述数据库配置信息创建多个数据库实例,包括:基于所述数据库配置信息,采用多平台接口调用所述目标云平台对应的创建接口,创建多个数据库实例。
7.根据权利要求5所述的方法,其特征在于,通过所述目标云平台调用测试执行脚本,包括:采用多平台接口调用所述目标云平台对应的查询接口,获取所述多个数据库实例的连接信息,其中,所述连接信息包括IP信息、端口信息、用户信息中的至少一个;
基于所述多个数据库实例的连接信息调用所述测试执行脚本。
8.根据权利要求5所述的方法,其特征在于,还包括:
发送测试终止指令给所述目标云平台,通过所述目标云平台调用测试终止脚本以控制所述云服务器终止性能测试。
9.根据权利要求5所述的方法,其特征在于,还包括:
接收测试完成指令,采用多平台接口调用所述目标云平台对应的删除接口删除所述多个数据库实例。
10.根据权利要求5所述的方法,其特征在于,还包括:
发送测试结果汇总指令给所述目标云平台,通过所述目标云平台执行测试结果汇总脚本,以获取所述云服务器中存储的测试结果并进行汇总,将汇总的测试结果进行返回。
11.一种数据库的性能测试装置,其特征在于,包括:
配置信息模块,用于获取目标数据库的性能测试配置信息;其中,所述性能测试配置信息包括云服务器配置信息和数据库配置信息;
任务和工具模块,用于根据所述性能测试配置信息以及目标云平台创建测试任务,并且根据所述性能测试配置信息以及所述目标云平台,在所述目标云平台的云服务器中安装部署测试工具,其中,所述测试任务用于调用所述目标云平台的接口创建并测试所述目标数据库的多个数据库实例,所述目标云平台是所述目标数据库所对应云服务的提供平台;
性能测试模块,用于基于所述测试工具和所述测试任务测试所述目标数据库的性能。
12.一种电子设备,其特征在于,所述电子设备包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述权利要求1‑10中任一所述的数据库的性能测试方法。
13.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1‑10中任一所述的数据库的性能测试方法。 说明书 : 一种数据库的性能测试方法、装置、设备及介质技术领域[0001] 本公开涉及数据库测试技术领域,尤其涉及一种数据库的性能测试方法、装置、设备及介质。背景技术[0002] 数据库性能测试,是针对数据库产品使用测试工具按照已准备好的测试方案,对数据库实例进行测试的测试手段。[0003] 相关技术中,针对云计算领域,通常是通过手动执行或者部分通用过程脚本化执行来实现,但是上述方案中存在测试效率低的问题,并且由于云计算领域中云服务平台或测试工具的不同造成代码集成度差以及不易维护的缺陷。发明内容[0004] 为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种数据库的性能测试方法、装置、设备及介质。[0005] 本公开实施例提供了一种数据库的性能测试方法,所述方法包括:[0006] 获取目标数据库的性能测试配置信息;[0007] 根据所述性能测试配置信息以及目标云平台创建测试任务,并且根据所述性能测试配置信息以及所述目标云平台,在所述目标云平台的云服务器中安装部署测试工具,其中,所述测试任务用于调用所述目标云平台的接口创建并测试所述目标数据库的多个数据库实例;[0008] 基于所述测试工具和所述测试任务测试所述目标数据库的性能。[0009] 可选的,所述性能测试配置信息包括云服务器配置信息和数据库配置信息。[0010] 可选的,根据所述性能测试配置信息以及所述目标云平台,在所述目标云平台的云服务器中安装部署测试工具,包括:[0011] 根据所述性能测试配置信息中的云服务器配置信息调用所述目标数据库对应的工具部署脚本,将所述测试工具安装部署在所述目标云平台的一个或多个云服务器中。[0012] 可选的,所述云服务器配置信息包括云服务器的IP信息、登录信息、分组信息、并发信息和测试工具参数中的至少一种。[0013] 可选的,根据所述性能测试配置信息以及目标云平台创建测试任务,包括:[0014] 根据所述性能测试配置信息中的数据库配置信息创建测试任务,其中,所述数据库配置信息包括所述目标数据库的多个数据库实例的配置信息。[0015] 可选的,基于所述测试工具和所述测试任务测试所述目标数据库的性能,包括:[0016] 执行所述测试任务,基于所述数据库配置信息创建所述目标数据库的多个数据库实例;[0017] 发送测试开始指令给所述目标云平台,通过所述目标云平台调用测试执行脚本,以基于所述云服务器中的测试工具控制所述云服务器与所述多个数据库实例之间执行性能测试。[0018] 可选的,基于所述数据库配置信息创建多个数据库实例,包括:[0019] 基于所述数据库配置信息,采用多平台接口调用所述目标云平台对应的创建接口,创建多个数据库实例。[0020] 可选的,通过所述目标云平台调用测试执行脚本,包括:[0021] 采用多平台接口调用所述目标云平台对应的查询接口,获取所述多个数据库实例的连接信息,其中,所述连接信息包括IP信息、端口信息、用户信息中的至少一个;[0022] 基于所述多个数据库实例的连接信息调用所述测试执行脚本。[0023] 可选的,所述方法还包括:[0024] 发送测试终止指令给所述目标云平台,通过所述目标云平台调用测试终止脚本以控制所述云服务器终止性能测试。[0025] 可选的,所述方法还包括:[0026] 接收测试完成指令,采用多平台接口调用所述目标云平台对应的删除接口删除所述多个数据库实例。[0027] 可选的,所述方法还包括:[0028] 发送测试结果汇总指令给所述目标云平台,通过所述目标云平台执行测试结果汇总脚本,以获取所述云服务器中存储的测试结果并进行汇总,将汇总的测试结果进行返回。[0029] 本公开实施例还提供了一种数据库的性能测试装置,所述装置设置包括:[0030] 配置信息模块,用于获取目标数据库的性能测试配置信息;[0031] 任务和工具模块,用于根据所述性能测试配置信息以及目标云平台创建测试任务,并且根据所述性能测试配置信息以及所述目标云平台,在所述目标云平台的云服务器中安装部署测试工具,其中,所述测试任务用于调用所述目标云平台的接口创建并测试所述目标数据库的多个数据库实例;[0032] 性能测试模块,用于基于所述测试工具和所述测试任务测试所述目标数据库的性能。[0033] 可选的,所述性能测试配置信息包括云服务器配置信息和数据库配置信息。[0034] 可选的,所述任务和工具模块具体用于:[0035] 根据所述性能测试配置信息中的云服务器配置信息调用所述目标数据库对应的工具部署脚本,将所述测试工具安装部署在所述目标云平台的一个或多个云服务器中。[0036] 可选的,所述云服务器配置信息包括云服务器的IP信息、登录信息、分组信息、并发信息和测试工具参数中的至少一种。[0037] 可选的,所述任务和工具模块具体用于:[0038] 根据所述性能测试配置信息中的数据库配置信息创建测试任务,其中,所述数据库配置信息包括所述目标数据库的多个数据库实例的配置信息。[0039] 可选的,所述性能测试模块包括:[0040] 实例创建单元,用于执行所述测试任务,基于所述数据库配置信息创建所述目标数据库的多个数据库实例;[0041] 测试执行单元,用于发送测试开始指令给所述目标云平台,通过所述目标云平台调用测试执行脚本,以基于所述云服务器中的测试工具控制所述云服务器与所述多个数据库实例之间执行性能测试。[0042] 可选的,所述实例创建单元用于:[0043] 基于所述数据库配置信息,采用多平台接口调用所述目标云平台对应的创建接口,创建多个数据库实例。[0044] 可选的,所述测试执行单元用于:[0045] 采用多平台接口调用所述目标云平台对应的查询接口获取所述多个数据库实例的连接信息,其中,所述连接信息包括IP信息、端口信息、用户信息中的至少一个;[0046] 基于所述多个数据库实例的连接信息调用所述测试执行脚本。[0047] 可选的,所述装置还包括测试终止模块,用于:[0048] 发送测试终止指令给所述目标云平台,通过所述目标云平台调用测试终止脚本以控制所述云服务器终止性能测试。[0049] 可选的,所述装置还包括实例删除模块,用于:[0050] 接收测试完成指令,采用多平台接口调用所述目标云平台对应的删除接口删除所述多个数据库实例。[0051] 可选的,所述装置还包括测试结果模块,用于:[0052] 发送测试结果汇总指令给所述目标云平台,通过所述目标云平台执行测试结果汇总脚本,以获取所述云服务器中存储的测试结果并进行汇总,将汇总的测试结果进行返回。[0053] 本公开实施例还提供了一种电子设备,所述电子设备包括:处理器;用于存储所述处理器可执行指令的存储器;所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现如本公开实施例提供的数据库的性能测试方法。[0054] 本公开实施例还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行如本公开实施例提供的数据库的性能测试方法。[0055] 本公开实施例提供的技术方案与现有技术相比具有如下优点:本公开实施例提供的数据库的性能测试方案,获取目标数据库的性能测试配置信息;根据性能测试配置信息以及目标云平台创建测试任务,并且根据性能测试配置信息以及目标云平台,在目标云平台的云服务器中安装部署测试工具,其中,测试任务用于调用目标云平台的接口创建并测试目标数据库的多个数据库实例;基于测试工具和测试任务测试目标数据库的性能。采用上述技术方案,仅需要测试人员输入云平台和配置信息即可实现对数据库的性能测试,由于预先配置了支持多个云平台的接口,可以实现对不同云平台的数据库的性能测试,代码集成度高并且容易维护,通过一种通用化的测试流程提升了性能测试效率。附图说明[0056] 此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。[0057] 为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。[0058] 图1为本公开实施例提供的一种数据库的性能测试方法的流程示意图;[0059] 图2为本公开实施例提供的另一种数据库的性能测试方法的流程示意图;[0060] 图3为本公开实施例提供的一种数据库的性能测试入口示意图;[0061] 图4为本公开实施例提供的一种数据库的性能测试装置的结构示意图;[0062] 图5为本公开实施例提供的一种电子设备的结构示意图。具体实施方式[0063] 为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。[0064] 在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。[0065] 数据库性能测试,是针对数据库产品使用测试工具按照已准备好的测试方案,对数据库实例进行测试的测试手段。针对普通环境下的数据库性能测试,开发者只需要关注测试工具选型、测试工具在服务器上的安装和部署、测试参数调整、性能持续观测、结果汇总等,基于此即可完成一次性能测试。针对云计算行业,开发者针对云服务器的选型可以基于云平台实现,而待测数据库的数据库实例则因云数据库的套餐、规格或版本众多而产生1到n的量变,即过程几乎完全一致的性能测试会因数据库实例的不同,演变为n次性能测试。而在整个云计算行业内有众多云服务提供方提供的云平台,在进行同一数据库的性能对比时,会因云平台的不同而产生的n到m*n的量变,m即为云平台的数量。[0066] 相关技术中,针对云计算领域,通常是通过手动执行m*n次测试完成测试,部分通用过程脚本化执行再通过人工操作完成后续测试,或者即使可以自动化执行也需要执行m*n次测试完成测试,但是上述方案均存在测试效率低的问题,针对不同测试工具或不同云平台,开发者可能各自为战,代码风格各自迥异,代码集成度差、不易维护。为了解决上述技术问题,本公开实施例提供了一种数据库的性能测试方法,下面结合具体地实施例对该方法进行介绍。[0067] 图1为本公开实施例提供的一种数据库的性能测试方法的流程示意图,该方法可以由数据库的性能测试装置执行,其中该装置可以采用软件和/或硬件实现,一般可集成在电子设备中。如图1所示,该方法包括:[0068] 步骤101、获取目标数据库的性能测试配置信息。[0069] 其中,目标数据库可以是需要进行性能测试的数据库,例如目标数据库可以是键值数据库Redis、文档数据库MongoDB和列数据库InfluxDB等,本公开实施例对此不作限制。性能测试配置信息可以包括云服务器配置信息和数据库配置信息,也即性能测试配置信息可以是在对数据库进行测试时所需的数据库相关的配置信息以及云服务器相关的配置信息。[0070] 具体的,数据库的性能测试装置可以获取测试人员配置的目标数据库的性能测试配置信息,以备后续使用。[0071] 步骤102、根据性能测试配置信息以及目标云平台创建测试任务,并且根据性能测试配置信息以及目标云平台,在目标云平台的云服务器中安装部署测试工具。[0072] 其中,目标云平台可以是目标数据库所对应的云服务的提供平台,不同云平台对应的同一个数据库的代码、规格等不同。测试任务可以是用于对目标数据库进行性能测试的任务,该测试任务可以用于调用目标云平台的接口创建并测试目标数据库的多个数据库实例,具体可以基于多平台接口调用目标云平台的接口,多平台接口可以是一个支持调用多个云平台的相关功能性接口的通用接口或接口函数,目标数据库的多个数据库实例可以是目标数据库的不同规格下的实例,例如可以包括不同内存的实例。[0073] 测试工具可以是用于对数据库的性能进行测试的工具,不同的数据库可以采用不同的测试工具进行测试,例如,Redis对应的测试工具可以包括Redis‑benchmark、Memtier_benchmark、YcsbforRedis等;MongoDB对应的测试工具可以为YcsbforMongoDB;InfluxDB对应的测试工具可以为Influx‑stress,仅为示例。[0074] 本实施例中,根据性能测试配置信息以及目标云平台创建测试任务,包括:根据性能测试配置信息中的数据库配置信息创建测试任务,其中,数据库配置信息包括目标数据库的多个数据库实例的配置信息。[0075] 数据库配置信息可以用于表征当前需要进行性能测试的目标数据库的多个实例的规则,也即可以包括多个数据库实例的配置信息,例如一个数据库实例的配置信息可以为中央处理器(CentralProcessingUnit,CPU)单核加内存2G,另一个数据库实例的配置信息可以为CPU双核加内存4G。具体的,数据库的性能测试装置在获取到性能测试配置信息之后,可以根据其中的数据库配置信息创建测试任务,一个数据库实例可以对应一个测试任务。[0076] 本实施例中,根据性能测试配置信息以及目标云平台,在目标云平台的云服务器中安装部署测试工具,可以包括:根据性能测试配置信息中的云服务器配置信息调用目标数据库对应的工具部署脚本,将测试工具安装部署在目标云平台的一个或多个云服务器中。[0077] 其中,工具部署脚本可以是采用shell编写的功能性脚本,不同的数据库对应的该脚本不同。云服务器配置信息包括云服务器的IP信息、登录信息、分组信息、并发信息和测试工具参数中的至少一种。云服务器的IP信息可以是云服务器对应的IP地址。登陆信息中可以包括登陆密码,当云服务器的数量为多个时,可以设置多个云服务器的登陆密码相同。分组信息可以是对多个云服务器进行小组分配的相关信息,例如分组信息可以包括分组数量。并发信息可以是设置每组云服务器的并发执行数,具体可以根据实际情况设置,例如并发执行数可以设置为3,此时每组云服务器同时并行执行3个测试任务。[0078] 具体的,数据库的性能测试装置使用python编写的多数据库接口调用目标数据库对应的工具部署脚本,根据云服务器配置信息将目标数据库对应的测试工具安装部署在目标云平台的一个或多个云服务器中。上述多数据库接口可以是支持多个数据库的功能性脚本的调用的接口,可以预先编写并设置好。[0079] 可选的,数据库的性能测试装置还可以指定目标云平台中的一个云服务器作为后续执行测试的测试控制器,将预设的目标数据库的功能性脚本文件上传至该测试控制器。[0080] 可以理解的是,上述创建测试任务和在目标云平台的云服务器中安装部署测试工具可以并行同时执行,也可以按照先后顺序执行,具体不限。[0081] 步骤103、基于测试工具和测试任务测试目标数据库的性能。[0082] 数据库的性能测试装置在创建测试任务并且在目标云平台的云服务器中安装部署测试工具之后,可以基于各云服务器中的测试工具和测试任务对目标数据库的多个数据库实例的性能进行测试。[0083] 本实施例中,基于测试工具和测试任务测试目标数据库的性能,可以包括:执行测试任务,基于数据库配置信息创建目标数据库的多个数据库实例;发送测试开始指令给目标云平台,通过目标云平台调用测试执行脚本,以基于云服务器中的测试工具控制云服务器与多个数据库实例之间执行性能测试。[0084] 数据库的性能测试装置可以接收测试人员的测试开始指令,执行各测试任务,并根据各测试任务对应的数据库配置信息创建目标数据库的多个数据库实例。可选的,基于数据库配置信息创建多个数据库实例,可以包括:基于数据库配置信息,采用多平台接口调用目标云平台对应的创建接口,创建多个数据库实例。其中,创建接口可以是用于创建数据库实例的接口,不同数据库对应的创建接口可以不同。具体可以基于数据库配置信息调用创建接口,以采用笛卡尔积函数生成所有多个数据库实例的创建请求参数,进而根据创建请求参数创建多个数据库实例。[0085] 在创建多个数据库实例之后,可以发送测试开始指令给目标云平台中的测试控制器,以使测试控制器调用测试执行脚本,以控制云服务器与多个数据库实例之间进行性能测试,测试过程可以基于在云服务器中安装部署好的测试工具实现。[0086] 可选的,通过目标云平台调用测试执行脚本,可以包括:采用多平台接口调用目标云平台对应的查询接口获取多个数据库实例的连接信息,其中,连接信息包括IP信息、端口信息、用户信息中的至少一个;基于多个数据库实例的连接信息调用测试执行脚本。[0087] 具体的,数据库的性能测试装置可以采用多平台接口调用目标云平台对应的查询接口查询之前创建的多个数据库实例的连接信息,连接信息可以是与数据库实例进行数据交互的相关信息,例如连接信息可以包括IP地址、端口信息和用户信息等中的至少一个,用户信息可以包括用户名和密码等。之后,目标云平台中的测试控制器在接收到测试开始指令之后,可以基于多个数据库实例的连接信息调用目标数据库对应的测试执行脚本,进行性能测试。[0088] 在一些实施例中,数据库的性能测试方法还可以包括:发送测试终止指令给目标云平台,通过目标云平台调用测试终止脚本以控制云服务器终止性能测试。[0089] 具体的,在测试过程中,数据库的性能测试装置可以接收测试人员发送的测试终止指令,并将测试终止指令发送给目标云平台中的测试控制器,测试控制器可以调用目标数据库的测试终止脚本控制多个云服务器来终止正在进行的测试。[0090] 上述方案中,在对数据库的性能测试的过程中可以随时根据需求终止测试,提升了性能测试控制的灵活性,更加符合实际需求。[0091] 在一些实施例中,数据库的性能测试方法还可以包括:接收测试完成指令,采用多平台接口调用目标云平台对应的删除接口删除多个数据库实例。具体的,数据库的性能测试装置在各云服务器测试完成之后,可以接收其发送的测试完成指令,并采用上述多平台接口调用目标云平台对应的删除接口,删除多个数据库实例,测试任务完成。[0092] 本实施例中的性能测试可以是针对一个数据库的一个或多个数据库实例,在一个或多个云服务器上使用其对应的测试工具,访问上述数据库实例,并汇总各云服务器的测试结果,并得到最终测试结果的过程。在一些实施例中,数据库的性能测试方法还可以包括:发送测试结果汇总指令给目标云平台,通过目标云平台执行测试结果汇总脚本,以获取云服务器中存储的测试结果并进行汇总,将汇总的测试结果进行返回。[0093] 具体的,在测试任务完成之后,数据库的性能测试装置可以接收测试人员发送的测试结果汇总指令,并将测试结果汇总指令发送给目标云平台中的测试控制器,测试控制器可以调用目标数据库的测试结果汇总脚本,以获取各云服务器中存储的单个测试任务的测试结果,并进行汇总处理,将汇总的测试结果返回给数据库的性能测试装置,以返回给测试人员。上述方案中,在测试完成之后,可以对多个测试任务的测试结果进行汇总并返回给用户,能够帮助用户直观地了解测试结果,提升了测试效率。[0094] 本公开实施例提供的数据库的性能测试方案,获取目标数据库的性能测试配置信息;根据性能测试配置信息以及目标云平台创建测试任务,并且根据性能测试配置信息以及目标云平台,在目标云平台的云服务器中安装部署测试工具,其中,测试任务用于调用目标云平台的接口创建并测试目标数据库的多个数据库实例;基于测试工具和测试任务测试目标数据库的性能。采用上述技术方案,仅需要测试人员输入云平台和配置信息即可实现对数据库的性能测试,由于预先配置了支持多个云平台的接口,可以实现对不同云平台的数据库的性能测试,代码集成度高并且容易维护,通过一种通用化的测试流程提升了性能测试效率。[0095] 图2为本公开实施例提供的另一种数据库的性能测试方法的流程示意图,本实施例在上述实施例的基础上,进一步优化了上述数据库的性能测试方法。如图2所示,该方法包括:[0096] 步骤201、获取目标数据库的性能测试配置信息。[0097] 其中,性能测试配置信息包括云服务器配置信息和数据库配置信息。[0098] 步骤201之后,可以执行步骤202和步骤203,具体执行顺序不限,可以先执行步骤202再执行步骤203,也可以先执行步骤203再执行步骤202、[0099] 步骤202、根据性能测试配置信息中的云服务器配置信息调用目标数据库对应的工具部署脚本,将测试工具安装部署在目标云平台的一个或多个云服务器中。[0100] 其中,云服务器配置信息包括云服务器的IP信息、登录信息、分组信息、并发信息和测试工具参数中的至少一种。[0101] 步骤203、根据性能测试配置信息中的数据库配置信息创建测试任务。[0102] 其中,测试任务用于调用目标云平台的接口创建并测试目标数据库的多个数据库实例。数据库配置信息包括目标数据库的多个数据库实例的配置信息。[0103] 步骤204、执行测试任务,基于数据库配置信息创建目标数据库的多个数据库实例。[0104] 可选的,基于数据库配置信息创建多个数据库实例,包括:基于数据库配置信息,采用多平台接口调用目标云平台对应的创建接口,创建多个数据库实例。[0105] 步骤205、发送测试开始指令给目标云平台,通过目标云平台调用测试执行脚本,以基于云服务器中的测试工具控制云服务器与多个数据库实例之间执行性能测试。[0106] 可选的,通过目标云平台调用测试执行脚本,包括:采用多平台接口调用目标云平台对应的查询接口获取多个数据库实例的连接信息,其中,连接信息包括IP信息、端口信息、用户信息中的至少一个;基于多个数据库实例的连接信息调用测试执行脚本。[0107] 步骤205之后,可以执行步骤206或步骤207‑步骤208,具体可以根据实际情况确定。[0108] 步骤206、发送测试终止指令给目标云平台,通过目标云平台调用测试终止脚本以控制云服务器终止性能测试。[0109] 步骤207、接收测试完成指令,采用多平台接口调用目标云平台对应的删除接口删除多个数据库实例。[0110] 步骤208、发送测试结果汇总指令给目标云平台,通过目标云平台执行测试结果汇总脚本,以获取云服务器中存储的测试结果并进行汇总,将汇总的测试结果进行返回。[0111] 接下来通过一个具体的示例对本公开实施例提供的数据库的性能测试方法进行进一步说明。示例性的,图3为本公开实施例提供的一种数据库的性能测试入口示意图,如图3所示,展示了一个帮助测试人员完成数据库性能测试的入口界面,该入口界面中可以包括调度模块、任务执行器和多平台接口。其中,多平台接口可以是基于python编写的一个通用调用接口,对测试人员开放,利用该接口可以调用不同云平台针对一个数据库开放的功能接口,包括创建接口、查询接口和删除接口等,用于基于数据库配置信息实现数据库实例的创建、查询和删除,即实现云平台的数据库实例的生命周期管理,供测试时使用。数据库配置信息可以测试人员预先配置好的,也可以是实时配置的,可以通过json维护,供实例管理时使用。图中示例性的展示了三个云平台,包括云平台A、云平台B和云平台C。[0112] 图中任务执行器可以负责测试工具的部署、测试任务的生成、实施和测试结果汇总,任务执行器中可以包括多个使用shell编写的功能脚本,如图中的工具部署脚本、测试执行脚本、测试终止脚本和结果汇总脚本,可以分别完成针对单个云服务器的测试工具的远程安装部署、针对多个云服务器的测试任务的远程执行、远程终止和测试结果的汇总。本实施例中任务执行器中还可以包括使用python编写的用于调用对应阶段的shell脚本的多数据库调用接口,用于实现不同数据库的不同功能脚本的调用。[0113] 如图3所示,调度模块可以包括云服务器配置信息以及测试的多个入口。其中,云服务器配置信息可以为测试人员可以预先配置好的,并从上传的ini格式的配置文件中读取得到,或者实时进行配置,基于该云服务器配置信息可以实现测试工具的安装部署。[0114] 测试的入口可以使用python编写,可以包括图中的生成测试任务(Generate)、测试工具安装部署(Deploy)、测试开始(Start)、测试终止(Stop)和测试结果汇总(Summary)等,分别实现对应的功能。其中测试开始被触发之后,可以利用多线程实现并发测试,例如可以将8个云服务器分成2组,每组同时测量三个数据库实例,则可以启动2*3个线程来执行测试。[0115] 基于图3所示的性能测试的入口,数据库的性能测试过程可以包括:1、在调度模块的云服务器配置信息中,设置云服务器的IP地址、密码,通常设置多个云服务器,且密码相同,并可以指定1个云服务器作为后续性能测试的测试控制器。2、通过调度模块进行测试工具安装部署,将目标数据库的指定的测试工具安装部署在云服务器配置信息中设置的云服务器上,并将任务执行器对应的脚本文件上传到测试控制器上。3、在数据库配置信息中,设置目标数据库的多个数据库实例的配置信息。4、通过对调度模块中生成测试任务的触发,根据数据库配置信息生成测试任务。[0116] 5、通过对调度模块中测试开始的触发,将根据每个测试任务,进行以下操作:(1)、执行测试任务,可以从测试任务中得到数据库配置信息;(2)、通过多平台接口调用当前目标云平台的创建接口,创建出对应数据库配置信息的多个数据库实例;(3)、数据库实例创建完成后,调用通过多平台接口调用查询接口,查询数据库实例的连接信息,具体可以包括IP地址、端口号、用户名、密码等;(4)、发送测试开始指令给目标云平台,通知目标云平台中的测试控制器,基于上述数据库实例的连接信息调用测试执行脚本;(5)测试控制器可以会通知全部云服务器,开始进行性能测试,测试过程中会使用提前安装部署好的测试工具;(6)、各个云服务器测试完成后,会将其测试结果暂存在云服务器上;(7)、等待全部云服务器测试完成,通过多平台接口调用删除接口,删除上述数据库实例;(8)、当前测试任务完成。[0117] 6、在测试过程中,可随时通过对调度模块中测试终止的触发来终止正在进行的测试任务,终止过程会进行以下操作:发送测试终止指令给测试控制器,通知测试控制器调用测试终止脚本,以通知所有云服务器终止测试。[0118] 7、等待测试任务完成,通过调度模块中测试结果汇总的触发得到所有测试任务的测试结果,汇总过程会进行以下操作:(1)、发送测试结果汇总指令给测试控制器,调用测试结果汇总脚本;(2)、测试结果汇总脚本中,测试控制器会向所有云服务器收集单个测试任务的测试结果,并进行计算,得到该测试任务的最终结果,以此类推,最终将所有测试任务的最终测试结果写入结果文件中;(3)、得到最终的结果文件。[0119] 本方案中提供了一套通用的性能测试集成方案,在云平台、数据库、测试工具、测试规格众多的场景下,提供相对通用、易于理解的自动化测试流程,开发者仅需要关注云平台生命周期的对应的应用程序接口(ApplicationProgrammingInterface,API)或软件开发工具包(SoftwareDevelopmentKit,SDK)的调用方式、测试所需实例配置信息、测试工具在云服务器上的部署和使用,让开发者更专注于测试任务本身、更便利地开发自动化,从而提升性能测试的工作效率。[0120] 本公开实施例提供的数据库的性能测试方案,获取目标数据库的性能测试配置信息,根据性能测试配置信息中的云服务器配置信息调用目标数据库对应的工具部署脚本,将测试工具安装部署在目标云平台的一个或多个云服务器中;根据性能测试配置信息中的数据库配置信息创建测试任务;执行测试任务,基于数据库配置信息创建目标数据库的多个数据库实例,发送测试开始指令给目标云平台,通过目标云平台调用测试执行脚本,以基于云服务器中的测试工具控制云服务器与多个数据库实例之间执行性能测试;发送测试终止指令给目标云平台,通过目标云平台调用测试终止脚本以控制云服务器终止性能测试;或者,接收测试完成指令,采用多平台接口调用目标云平台对应的删除接口删除多个数据库实例,发送测试结果汇总指令给目标云平台,通过目标云平台执行测试结果汇总脚本,以获取云服务器中存储的测试结果并进行汇总,将汇总的测试结果进行返回。采用上述技术方案,仅需要测试人员输入云平台和配置信息即可实现对数据库的性能测试,由于预先配置了支持多个云平台的接口,可以实现对不同云平台的数据库的性能测试,代码集成度高并且容易维护,通过一种通用化的测试流程提升了性能测试效率。[0121] 图4为本公开实施例提供的一种数据库的性能测试装置的结构示意图,该装置可由软件和/或硬件实现,一般可集成在电子设备中。如图4所示,该装置包括:[0122] 配置信息模块301,用于获取目标数据库的性能测试配置信息;[0123] 任务和工具模块302,用于根据所述性能测试配置信息以及目标云平台创建测试任务,并且根据所述性能测试配置信息以及所述目标云平台,在所述目标云平台的云服务器中安装部署测试工具,其中,所述测试任务用于调用所述目标云平台的接口创建并测试所述目标数据库的多个数据库实例;[0124] 性能测试模块303,用于基于所述测试工具和所述测试任务测试所述目标数据库的性能。[0125] 可选的,所述性能测试配置信息包括云服务器配置信息和数据库配置信息。[0126] 可选的,所述任务和工具模块302具体用于:[0127] 根据所述性能测试配置信息中的云服务器配置信息调用所述目标数据库对应的工具部署脚本,将所述测试工具安装部署在所述目标云平台的一个或多个云服务器中。[0128] 可选的,所述云服务器配置信息包括云服务器的IP信息、登录信息、分组信息、并发信息和测试工具参数中的至少一种。[0129] 可选的,所述任务和工具模块302具体用于:[0130] 根据所述性能测试配置信息中的数据库配置信息创建测试任务,其中,所述数据库配置信息包括所述目标数据库的多个数据库实例的配置信息。[0131] 可选的,所述性能测试模块303包括:[0132] 实例创建单元,用于执行所述测试任务,基于所述数据库配置信息创建所述目标数据库的多个数据库实例;[0133] 测试执行单元,用于发送测试开始指令给所述目标云平台,通过所述目标云平台调用测试执行脚本,以基于所述云服务器中的测试工具控制所述云服务器与所述多个数据库实例之间执行性能测试。[0134] 可选的,所述实例创建单元用于:[0135] 基于所述数据库配置信息,采用多平台接口调用所述目标云平台对应的创建接口,创建多个数据库实例。[0136] 可选的,所述测试执行单元用于:[0137] 采用多平台接口调用所述目标云平台对应的查询接口获取所述多个数据库实例的连接信息,其中,所述连接信息包括IP信息、端口信息、用户信息中的至少一个;[0138] 基于所述多个数据库实例的连接信息调用所述测试执行脚本。[0139] 可选的,所述装置还包括测试终止模块,用于:[0140] 发送测试终止指令给所述目标云平台,通过所述目标云平台调用测试终止脚本以控制所述云服务器终止性能测试。[0141] 可选的,所述装置还包括实例删除模块,用于:[0142] 接收测试完成指令,采用多平台接口调用所述目标云平台对应的删除接口删除所述多个数据库实例。[0143] 可选的,所述装置还包括测试结果模块,用于:[0144] 发送测试结果汇总指令给所述目标云平台,通过所述目标云平台执行测试结果汇总脚本,以获取所述云服务器中存储的测试结果并进行汇总,将汇总的测试结果进行返回。[0145] 本公开实施例所提供的数据库的性能测试装置可执行本公开任意实施例所提供的数据库的性能测试方法,具备执行方法相应的功能模块和有益效果。[0146] 图5为本公开实施例提供的一种电子设备的结构示意图。如图5所示,电子设备400包括一个或多个处理器401和存储器402。[0147] 处理器401可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备400中的其他组件以执行期望的功能。[0148] 存储器402可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器401可以运行所述程序指令,以实现上文所述的本公开的实施例的数据库的性能测试方法以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如输入信号、信号分量、噪声分量等各种内容。[0149] 在一个示例中,电子设备400还可以包括:输入装置403和输出装置404,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。[0150] 此外,该输入装置403还可以包括例如键盘、鼠标等等。[0151] 该输出装置404可以向外部输出各种信息,包括确定出的距离信息、方向信息等。该输出装置404可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。[0152] 当然,为了简化,图5中仅示出了该电子设备400中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备400还可以包括任何其他适当的组件。[0153] 除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本公开实施例所提供的数据库的性能测试方法。[0154] 所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。[0155] 此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本公开实施例所提供的数据库的性能测试方法。[0156] 所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD‑ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。[0157] 需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。[0158] 以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

专利地区:北京

专利申请日期:2021-07-15

专利公开日期:2024-07-26

专利公告号:CN113505073B


以上信息来自国家知识产权局,如信息有误请联系我方更正!
电话咨询
读内容
搜本页
回顶部