JMeter是可以直接调用SQL语句或者存储过程来完成测试的,这次就给大家讲一下如何通过调用MySQL存储过程完成测试。
首先我们先创建一个数据库连接池的配置信息:
如上图所示,已填写的参数描述如下:
- Name:数据库连接池在JMeter中别名
- Variable Name for created pool:配置信息作为变量名称的别名,这里我填写了DB_POOL
- Max Number of Connections:最大的连接数
- Max Wait:最大的等待时间
- Time Between Eviction Runs:请求驱逐时间间隔
- Auto Commit:自动提交
- Transaction isolation:事务
- Preinit Pool:预设连接池
- Soft Min Evictable Idle Time:最小等待时间
- Validation Query:验证脚本
- Database Url:数据库连接地址
- JDBC Driver class:数据库连接类
- Username:用户账号
- Password:用户密码
从上面的配置可看出大部分配置都采用了动态变量的方式进行填写,像Validation Query
、Max Wait
等。这些变量将通过另一个User default variable
进行定义。
接下来为了调用JDBC存储过程需要新建一个来自JDBC Request的Sampler。
创建了JDBC Request后通过填写“DB_POOL”即可将之前配置的数据库连接池进行应用。
在Variable Name of Pool declared in JDBC Connection Configuration
中填入“DB_POOL”即可。
由于我们需要调用的是存储过程,所以在Query Type中选择Callable Statement
。而在Query输入框中填入调用存储过程的命令即可调用存储过程。
PS:第一次调用的时候可能会出现Cannot load JDBC driver class 'com.mysql.jdbc.Driver'
错误。
这个错误是由于JMeter中并没有自带MySQL的JDBC驱动的,所以这个时候需要将Maven仓库中关于MySQL 5.1.x的JDBC驱动包(jar)复制到$JMETER_HOME/lib/ext
目录底下,这样在JMeter启动的时候就会自动状态JDBC驱动了。