因要重现是不是在无索引的情况下 读写量过大导致的数据库假死,需要对数据库做个压力测试。
工具:Jmeter
环境:mysql的M/S,应用在slave环境上,读写分离。
一种测试方式:完全模拟,读和写都通过程序
另一种测试方式:直接模拟数据库操作
当前为了减少搭建环境带来的工作量,采用了第二种测试方式:直接模拟数据库操作。
本人还是第一次用Jmeter测试数据库,网上查找了一番,了解个大概,于是照着开始画瓢啦。
Jmeter的一个简单case所需:测试计划、线程组、请求、聚合报告,而测试数据库则多了个JDBC Connection Configuration
在这个过程中有几个地方需要注意:
- 需要连接mysql的jar
如:mysql-connector-java-5.0.5.jar
在测试计划中加载,或者放到$JMETER_HOME/lib/ 目录下 - Variable Name Bound to Pool 名字要有,多个JDBC Request中都有用这个
- 当sql带有参数时,Query Type要选 带有Prepared 的。
如Prepared Update Statement、Prepared Selete Statement
在这个地方 本人跳了坑,选的是Update Statement,在运行脚本的过程中一直报语法不对。
其他的测试过程就没啥可记的啦,愿新学习者不跳坑。