背景:
最近做的一个项目需要对比关系数据库和非关系数据库的性能,不仅需要进行简单的增删改查对比,还需要进行并发负载测试,所以想到了使用一款压测工具来简化操作过程。在对压测工具进行一些简单的调研后,发现JMeter比较简单易学,而且功能相对比较强大。
因此选择了使用JMeter压测工具来对 MySQL、MongoDB、Neo4j三种数据库进行性能测试。这篇博客主要是记录下操作过程,便于以后可以快速捡起jmeter进行数据库操作的使用方式。
什么是JMeter?
Apache JMeter是Apache组织开发的基于Java的压力测试工具,用于对软件做压力测试,它可用于测试静态和动态资源。 JMeter可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。
这里默认读者已经基本了解Jmeter的基础操作(一般就是,先在测试计划中添加线程组,然后添加配置元件,接着添加取样器,最后可以添加监听器。)
那么接下来分别说明如何对三种数据库压测进行设置。
一、对MySQL进行压测
1.设置线程组
2.设置配置元件JDBC Connection Configuration
现在jmeter安装目录libext目录下,放入mysql驱动包
(下载: https://pan.baidu.com/s/1vgunHJHhVxCHjf-xsWVVJA 提取码:imme)
3.设置取样器JDBC Request
4.设置监听器察看结果树、聚合报告
二、对MongoDB进行压测
注意,由于MongoDB插件存在性能上的问题,Jmeter 3中已经将其删除,所以此处我们需要解除对MongoDB的限制,进而使用该插件对MongoDB进行压测。需要修改配置如下:
进入Jmeter的安装目录,在bin/user.properties文件内的末尾,添加一行:
not_in_menu=
然后,一定要记得重启Jmeter,才能使MongoDB插件生效。
那么关于MongoDB的压测配置如下:
1.线程组与上文一致,设置配置元件 MongoDB Source Config (DEPRECATED)
现在jmeter安装目录libext目录下,放入mongodb驱动包
(下载: https://pan.baidu.com/s/1JFcjS6R8gzDGps_Dx1PVmA 提取码:ug5c)
2.设置取样器 MongoDB Script (DEPRECATED)
3.然后设置监听器,与上文一致
三、对Neo4j进行压测
注意,此处对Neo4j进行压测时,使用的是JDBC的方式,所以在配置方面与MySQL的配置比较类似,如下:
1. 线程组与上文一致,设置配置元件JDBC Connection Configuration
现在jmeter安装目录libext目录下,放入neo4j驱动包
(下载:https://pan.baidu.com/s/18Yz1yaDaLz0lkRXskPlRKg 提取码:j0i6)
2. 设置取样器JDBC Request
3.然后设置监听器,与上文一致
OK! 通过以上的配置,我们就能连接到对应的不同类型的数据库中,进行增删改查语句的操作,查看到响应时间、吞吐量等。