数据库性能测试方法及装置制造方法及图纸

技术编号:13779816 阅读:75 留言:0更新日期:2016-10-04 13:18
本发明专利技术公开了一种数据库性能测试方法,所述数据库性能测试方法包括以下步骤:获取待测试SQL语句;根据获取的待测试SQL语句生成压力测试数据,并通过多个程序将生成的压力测试数据发送至数据库集群,其中,各所述程序中有程序采用的编程语言不同;接收所述数据库集群响应所述压力测试数据返回的性能信息。本发明专利技术还公开了一种数据库性能测试装置。本发明专利技术能够提高数据库性能测试的准确性。

【技术实现步骤摘要】
技术邻域本专利技术涉及数据储存
,尤其涉及一种数据库性能测试方法及装置
技术介绍
目前,大多互联网运营商都面临数据库类型选择、数据库版本选择的问题,解决这些问题需要依赖于对数据库进行性能测试,以得到大量真实的测试数据。此外,数据库以及应用开发等同样需要进行数据库的性能测试。现有技术中,业界普遍利用第三方提供的测试工具直接进行数据库性能测试,例如Sysbench、Supersmach、Benchmark SQL以及Jmeter等测试工具。然而,现有的这种数据库性能测试方法无法模拟实际的应用场景,难以得到与实际数据相近的测试数据,仿真性较差,导致测试结果不准确。
技术实现思路
本专利技术的主要目的在于提供一种数据库性能测试方法及装置,旨在提高数据库性能测试的准确性。为实现上述目的,本专利技术提供一种数据库性能测试方法,该数据库性能测试方法包括以下步骤:获取待测试SQL语句;根据获取的待测试SQL语句生成压力测试数据,并通过多个程序将生成的压力测试数据发送至数据库集群,其中,各所述程序中有程序采用的编程语言不同;接收所述数据库集群响应所述压力测试数据返回的性能信息。可选地,所述接收所述数据库集群响应所述压力测试数据返回的性能信息的步骤之后,还包括:根据接收的所述性能信息生成测试报告。可选地,所述获取待测试SQL语句步骤包括:显示业务日志的选择界面;在接收到用户基于所述选择界面触发的选择指令时,从所述选择指令对应的业务日志中提取SQL语句,作为所述待测试SQL语句。可选地,所述根据获取的待测试SQL语句生成压力测试数据包括:根据预设的测试压力比复制获取的待测试SQL语句,生成压力测试数据。可选地,所述接收所述数据库集群响应所述压力测试数据返回的性能信息的步骤之后,还包括:在预设时间段内未接收到所述数据库集群返回的性能信息时,输出提示信息。此外,为实现上述目的,本专利技术还提供一种数据库性能测试装置,所述数据库性能测试装置包括:获取模块,用于获取待测试SQL语句;处理模块,用于根据获取的待测试SQL语句生成压力测试数据,并通过多个程序将生成的压力测试数据发送至数据库集群,其中,各所述程序中有程序采用的编程语言不同;接收模块,用于接收所述数据库集群响应所述压力测试数据返回的性能信息。可选地,所述数据库性能测试装置,还包括:报告模块,用于根据接收的所述性能信息生成测试报告。可选地,所述获取模块还用于显示业务日志的选择界面;以及在接收到用户基于所述选择界面触发的选择指令时,从所述选择指令对应的业务日志中提取SQL语句,作为所述待测试SQL语句。可选地,所述处理模块还用于,根据预设的测试压力比复制获取的待测试SQL语句,生成压力测试数据。可选地,所述数据库性能测试装置,还包括:提示模块,用于在预设时间段内未接收到所述数据库集群返回的性能信息时,输出提示信息。本专利技术提出的数据库性能测试方法及装置,通过获取待测试SQL语句,
并基于获取的待测试SQL语句生成压力测试数据,由不同编程语言编写的程序将生成的压力测试数据发送至数据库集群进行响应,相较于现有技术,本专利技术通过多种不同编程语言编写的程序模拟多种类型的客户端,更贴近数据库集群的实际工作环境,能够使得测试数据具有较高的置信度,达到提高数据库性能测试准确性的目的。附图说明图1为本专利技术数据库性能测试方法第一实施例的流程示意图;图2为本专利技术数据库性能测试方法第二实施例的流程示意图;图3为本专利技术数据库性能测试方法第三实施例的流程示意图;图4为本专利技术数据库性能测试装置第一实施例的功能模块示意图;图5为本专利技术数据库性能测试装置第二实施例的功能模块示意图。本专利技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。本专利技术提供一种数据库性能测试方法,参照图1,在本专利技术数据库性能测试方法的第一实施例中,该数据库性能测试方法包括:步骤S10,获取待测试SQL语句;需要说明的是,SQL(Structured Query Language,结构化查询语言)语句包括DQL(Data Query Language,数据查询语言)语句和DML(Data Manipulation Language,数据操作语言)语句。其中当SQL语句为DQL语句时,该SQL语句用于对数据库中的数据进行查询;当SQL语句为DML语句时,该SQL语句用于对数据库中的数据进行操作,包括插入数据、更改数据或删除数据等。在本专利技术实施例中,通过获取不同类型的待测试SQL语句,以实现对数据库集群性能的全面测试,例如,获取的待测试SQL语句均为DQL语句,则进行数据库集群的连续读测试;获取的待测试SQL语句均为DML语句,
则进行数据库集群的连续写测试;获取的待测试SQL语句包括DQL语句和DML语句,则进行数据库集群的混合读写测试。其中,待测试SQL语句可以是测试人员预先手动录入的,也可以是根据储存的SQL模板随机生成的,还可以是其他方式获得的。步骤S20,根据获取的待测试SQL语句生成压力测试数据,并通过多个程序将生成的压力测试数据发送至数据库集群,其中,各所述程序中有程序采用的编程语言不同;在获取到待测试SQL语句之后,根据获取的待测试SQL语句生成压力测试数据时,可以直接将获取的待测试SQL语句作为压力测试数据,也可以根据预设的测试压力比复制获取的待测试SQL语句,生成压力测试数据,例如,在获取到10条待测试SQL语句,且当次数据库性能测试需要100条待测试SQL语句作为压力测试数据时,则可将测试压力比设置为9,相应将获取的10条待测试SQL语句复制9次,将总共得到的100条待测试SQL语句作为当次数据库性能测试的压力测试数据;又例如,在获取到20条待测试SQL语句,且当次数据库性能测试需要100条待测试SQL语句作为压力测试数据时,则可将测试压力比设置为4,相应将获取的20条待测试SQL语句复制4次,将总共得到的100条待测试SQL语句作为当次数据库性能测试的压力测试数据。其中,用于复制待测试SQL语句的测试压力比,根据实际获取得到待测试SQL语句的条数与当次测试需要的待测试SQL语句的条数的差值进行设置。在生成当次测试的压力测试数据之后,通过多个程序将生成的压力测试数据发送至数据库集群,供数据库集群响应,其中,各所述程序中有程序采用的编程语言不同。例如,通过多个ruby和java等程序将生成的压力测试数据发送至数据库集群进行响应,根据各程序分配到的具体压力测试数据,每个程序可执行读、写或混合读写操作。本领域技术人员可以理解的是,针对不同编程语言编写的程序,数据库集群需要基于对应的底层驱动实现访问支持。因此,本实施例通过多种不同编程语言编写的程序模拟多种类型的客户端,更贴近数据库集群的实际工作环境,具有较高的仿真性,能够使得测试数据具有较高的置信度。此外,本实施例并不限制各程序分配到压力测试数据的比例,具体可根
据实际需要进行分配,例如,本实施例将生成的压力测试数据平均分配到各程序进行发送。步骤S30,接收所述数据库集群响应所述压力测试数据返回的性能信息。需要说明的是,数据库集群在接收到压力测试数据之后,实时本文档来自技高网
...

【技术保护点】
一种数据库性能测试方法,其特征在于,所述数据库性能测试方法包括以下步骤:获取待测试SQL语句;根据获取的待测试SQL语句生成压力测试数据,并通过多个程序将生成的压力测试数据发送至数据库集群,其中,各所述程序中有程序采用的编程语言不同;接收所述数据库集群响应所述压力测试数据返回的性能信息。

【技术特征摘要】
1.一种数据库性能测试方法,其特征在于,所述数据库性能测试方法包括以下步骤:获取待测试SQL语句;根据获取的待测试SQL语句生成压力测试数据,并通过多个程序将生成的压力测试数据发送至数据库集群,其中,各所述程序中有程序采用的编程语言不同;接收所述数据库集群响应所述压力测试数据返回的性能信息。2.根据权利要求1所述的数据库性能测试方法,其特征在于,所述接收所述数据库集群响应所述压力测试数据返回的性能信息的步骤之后,还包括:根据接收的所述性能信息生成测试报告。3.根据权利要求1所述的数据库性能测试方法,其特征在于,所述获取待测试SQL语句步骤包括:显示业务日志的选择界面;在接收到用户基于所述选择界面触发的选择指令时,从所述选择指令对应的业务日志中提取SQL语句,作为所述待测试SQL语句。4.根据权利要求1所述的数据库性能测试方法,其特征在于,所述根据获取的待测试SQL语句生成压力测试数据包括:根据预设的测试压力比复制获取的待测试SQL语句,生成压力测试数据。5.根据权利要求1-4任一项所述的数据库性能测试方法,其特征在于,所述接收所述数据库集群响应所述压力测试数据返回的性能信息的步骤之后,还包括:在预设时间段内未接收到所述数据库集...

【专利技术属性】
技术研发人员:张锐
申请(专利权)人:深圳市永兴元科技有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1