jmeter是对服务器进行压测,当然也能对数据库服务器进行压测
1、首先要下载一个数据库的驱动,也就是说,jmeter要连接数据库,那么jmeter中就要有一个对应数据库版本的驱动,来驱动数据库。我的理解,你要驱动别人做一些事情,你自己要了解这个人嘛,不了解他,怎么驱动他来帮你做这个事情呢,那驱动就是要根据这个人的品格啊,性格啊,生活习惯啊 各方面。这里就是根据数据库的版本来下载对应的驱动。
查看数据库的版本:
打开数据库,select * from v$instance;查询结果中的version就是数据库的版本。然后去官网https://www.oracle.com/database/technologies/jdbc-ucp-122-downloads.html,下载对应版本的驱动,如下;
上面所说的是一种方式,还有另外一种方式。
打开你电脑里面安装的数据库路径,例如我的电脑D: oolsPLSQL_Developer 12instantclient_12_2,找到一个ojdbc8.jar,如下:
把这个包复制到jmeter安装目录下的lib中,
2、配置jmeter
首先,在测试计划中,添加ojdbc8.jar的路径,如下:
其次,配置
,右键添加
配置jdbc connection configuration
这里有几个要注意的地方
Variable name for create pool是配置连接池的名字,随意写,但是后面jdbc request连接的时候也是填这个名字
Validation query 如果是oracle的连接 是选择select 1 from dual,也不知道为啥,选就是了
Database URL,数据库连接 jdbc:oracle:thin:@IP:端口:实例名,这些信息 可以在数据库中找到
实例名也可以通过select * from v$instance;查询结果中的instance_name
username是数据库的用户名
password是数据库的密码
3、建立jdbc request.在线程组下添加
这里以根据staff_id来查询用户名为例
通过以上配置,点击运行,绿色表示运行成功
思考1:如果是多个参数,要怎么配置呢?类似于这种查询 select * from 表 where a='' and b='' and c=''即有多个参数
很简单,在用户定义的变量中增加一个变量,查询语句中添加变量查询条件,参数类型中添加这个变量的类型。
这里的变量类型,看值有多少个,有多少写多少个类型,否则会报number of arguments (2) and number of types (1) are not equal,参数和类型数量不相等。
思考2:如果有多个值怎么办,比如要查询 select * from 表where staff_id in ('','')
解决方案:添加多个变量值,同时变量个数的类型要加上,否则匹配不上
踩到的坑总结:
坑一:
1、下载的数据库驱动版本不对,跟本地的数据库版本不匹配,这个时候再上官网确认一下
2、是不是把jar包复制到lib下,jmeter没重启?
3、配置中的database url是不是写错掉了
坑二:
一开始 我这里少了一个jdbc:就报了这个错
坑三:
1、我配置的jdbc request 中的query是这样的
select username from uos_staff where staff_id=34849;
把分号去掉,错误就没有了,请教开发,说是jdbc的连接是不能有符号的