一种数据库IO性能测试的自动化工具的制作方法

文档序号:24352279发布日期:2021-03-19 12:37阅读:117来源:国知局
一种数据库IO性能测试的自动化工具的制作方法

本发明涉及数据库领域,尤其涉及一种数据库io性能测试的自动化工具。



背景技术:

随着高新技术的发展,数据库作为应用系统当中最重要的一块,也是性能测试非常关注的一块,在操作系统测试中,兼容三方数据库系统成为必测项目之一,数据库io性能为衡量操作系统兼容数据库的指标之一。

目前市面上常见的数据库性能测试的工具,大多特点为:源码安装、功能复杂、非可视化、配置项多、测试结果可读性弱,需要专业性较强的测试人员进行配置和使用。

操作系统中针对数据库io性能测试,测试场景多,需要频繁进行工具安装、配置、执行测试,市面上已有的工具安装繁琐、配置复杂,在重复性的工作中,会造成人力浪费。

当前市面上针对数据库io性能测试的工具较少。

从操作上来看,当前市面上的工具需要源码安装,手动对配置文件进行修改,手动执行命令进行测试,交互不便,需要较为专业的人进行操作和使用。

从测试结果的可读性来看,现有的测试工具,测试结果可读性较弱,需要手动整理测试数据,提炼出测试结果,对人力也是一种浪费。

从跨平台性来看,现有工具仅支持linux环境下进行测试操作,不支持windows上运行。



技术实现要素:

针对现有技术中存在的问题,本发明提供一种数据库io性能测试的自动化工具,包括:

一用户交互模块,用以接受使用者操作,及返回操作结果;

一处理模块,连接至少一待测试的数据库,用以根据操作指令操作所述待测试数据库并获得操作结果;

一第一转换模块,分别连接所述用户交互模块及所述处理模块,用以将所述用户交互模块接受的使用者操作转换为对应的操作指令发送至所述处理模块;

一第二转换模块,分别连接所述用户交互模块及所述处理模块,用以将所述操作结果发送至所述用户交互模块。

优选的,所述处理模块通过一跨平台接口连接所述待测试的数据库。

优选的,还包括一配置模块,连接所述用户交互模块,用以根据使用者操作形成和/或编辑测试用例。

优选的,还包括一结果输出模块,连接所述处理模块,用以解析并保存所述操作结果。

优选的,所述结果处理模块通过正则表达式分析所述操作结果,并将分析的结果保存在一文本文件中。

优选的,所述处理模块包括:

进程管理单元,用以创建及调度操作所述待测试数据库的至少一个进程;

功能管理单元,连接所述进程管理单元,用以管理预配置的至少一个功能函数供所述进程调用;

汇总单元,连接所述进程管理单元,用以汇总每个所述进程操作所述待测试数据库获得的结果以形成所述操作结果。

优选的,所述处理模块由python实现。

优选的,所述用户交互模块由qt界面实现,所述qt界面用以根据使用者操作形成xml格式的文本。

优选的,所述第一转换模块由pyqt5工具包的pyuic插件实现,用以将所述xml文本转换为python对象。

优选的,所述第二转换模块由pyqt5工具包实现,用已根据python运行获得的所述操作结果控制所述用户交互模块。

上述技术方案具有如下优点或有益效果:

(1)本技术方案支持多种常用数据库进行测试,有利于减少环境依赖布置成本,提高测试效率;

(2)本技术方案操作简单,利用可视化的用户交互界面进行待测试数据库的参数配置、执行测试,有利于降低自动化工具的学习成本,降低人力浪费;

(3)本技术方案可以跨平台使用,安装有python和相关的第三方库的测试环境均可运行本技术方案中的自动化工具,减少了局限性。

附图说明

图1为本发明的较佳的实施例中,自动化工具的结构示意图。

具体实施方式

下面结合附图和具体实施例对本发明进行详细说明。本发明并不限定于该实施方式,只要符合本发明的主旨,则其他实施方式也可以属于本发明的范畴。

本发明的较佳的实施例中,基于现有技术中存在的上述问题,现提供一种数据库io性能测试的自动化工具,如图1所示,包括:

一用户交互模块1,用以接受使用者操作,及返回操作结果;

一处理模块2,连接至少一待测试的数据库2a,用以根据操作指令操作待测试数据库2a并获得操作结果;

一第一转换模块3,分别连接用户交互模块1及处理模块2,用以将用户交互模块1接受的使用者操作转换为对应的操作指令发送至处理模块2;

一第二转换模块4,分别连接用户交互模块1及处理模块2,用以将操作结果发送至用户交互模块1。

具体地,本实施例中,用户交互模块1可以是基于qt设计的可视化的用户交互界面,qt界面用以根据使用者操作形成xml格式的文本。本技术方案在可视化的用户交互界面上进行各待测试的数据库2a的参数配置、执行,有利于降低自动化工具的学习成本,降低人力浪费。

本实施例中,用户交互模块1接受使用者操作,并通过第一转换模块3将转换为对应的操作指令并发送至处理模块2,处理模块2根据操作指令对待测数据库2a进行读写性能测试。其中,各数据库2a的读写性能可以分别从数据长度和数据内容两方面来进行测试。在用户交互界面,用户可以依次输入数据长度和请求次数,进而选择测试按钮来实现从数据长度来测试各数据库2a的读写性能;在用户交互界面,用户可依次输入添加数据、更改数据和请求次数来从数据内容来测试各数据库2a的读写性能。通过第二转换模块4将操作结果反馈至用户交互界面以进行解析显示及保存。

本发明的较佳的实施例中,处理模块2由python实现。

本发明的较佳的实施例中,第一转换模块3由pyqt5工具包的pyuic插件实现,用以将xml文本转换为python对象。

本发明的较佳的实施例中,第二转换模块4由pyqt5工具包实现,用已根据python运行获得的操作结果控制用户交互模块1。

本技术方案基于安装有python和相关的第三方库的测试环境下实现,同时本技术方案可以跨平台使用,只要安装有python和相关的第三方库的测试环境均可运行本技术方案中的自动化工具,减少了测试环境的局限性。

本技术方案中的自动化工具的使用流程如下:通过用户交互界面获取待测试的数据库2a类型,其中数据库2a类型包括redis,memcache,mysql和postgresql中的一种或多种;通过python的os模块检查待测试的数据库2a安装配置情况;通过python完成与待测试的数据库2a的连接;通过用户交互界面获取被测数据参数,同时对各数据库2a的参数进行配置、进而执行测试;测试结束后,将测试过程中的日志保存至本地,并对测试结果进行存储。

本技术方案支持多种常用数据库2a进行测试,有利于减少环境依赖布置成本,提高测试效率,同时还可以测试常用数据库2a的读、写等操作的性能。

在一个优选的实施例中,使用本技术方案中的自动化工具对redis数据库2a进行读写性能测试,过程如下:

1.在用户交互界面中,选择数据库2a中的redis;

2.选择连接redis;

3.对redis的连接状态进行检查;

4.对redis进行测试参数配置;

5.选择测试报告输出路径;

6.执行测试;

7.快捷进入相应目录对测试结果和日志进行查看。

本发明的较佳的实施例中,处理模块2通过一跨平台接口连接待测试的数据库2a。

具体地,本实施例中,可通过python的跨平台特性来实现该跨平台接口。

本发明的较佳的实施例中,还包括一配置模块6,连接用户交互模块1,用以根据使用者操作形成和/或编辑测试用例。

具体地,本实施例中,配置模块6对数据库2a中待测试的数据的配置过程包括:添加数据,其中数据内容长度可以编辑,并使用python的configparser(配置文件解析模块)进行默认配置;修改数据,其中数据内容长度可以编辑,并使用configparser进行默认配置;删除数据,其中数据内容长度可以编辑,并使用configparser进行默认配置;查询数据,其中数据内容长度可以编辑,并使用configparser进行默认配置。

本发明的较佳的实施例中,还包括一结果输出模块5,连接处理模块2,用以解析并保存操作结果。

具体地,本实施例中,通过结果输出模块5实现对操作结果进行解析和保存。优选的,操作结果可以以excel表格的形式保存在本地存储空间中,形成操作日志。

本发明的较佳的实施例中,结果处理模块2通过正则表达式分析操作结果,并将分析的结果保存在一文本文件中。

具体地,本实施例中,处理模块2使用正则表达式+openpyxl对测试结果进行处理,具体包括:通过queue队列汇总多进程的测试结果;将分析的结果保存到log文件中;进而使用python对测试数据进行分析计算得到excel报告,并通过openpyxl输出excel报告。

本发明的较佳的实施例中,处理模块2包括:

进程管理单元21,用以创建及调度操作待测试数据库2a的至少一个进程;

功能管理单元22,连接进程管理单元21,用以管理预配置的至少一个功能函数供进程调用;

汇总单元23,连接进程管理单元21,用以汇总每个进程操作待测试数据库2a获得的结果以形成操作结果。

具体地,本实施例中,进程管理单元21通过pool创建进程池,通进程池来控制数据的并发数量;功能管理单元22编写数据库2a相关读写操作的函数,在各数据库2a的每个读写进程中,调用这些函数来执行读写数据库2a的操作,汇总单元23可以是queue队列,通过queue队列将python多进程的测试结果进行汇总。

以上仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本说明书及图示内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1