jmeter如何连接Oracle数据库,并作为变量传输,不好用算我的!!
我们在写jmeter脚本时,会遇到这样一个问题,参数化的数据要放到一个参数文件中,但是我们业务库里的数据是经常会有变化的,所以每次用到脚本的时候总是要重新连上数据库再执行一遍查询语句。然后再将新数据更新到参数文件中,有点麻烦,懒人创造世界,所以更高级的做法就是直接连接数据库,不动一兵一卒。
第一步:准备好Oracle数据库驱动,没有驱动的,贴心的附上链接啦:链接:https://pan.baidu.com/s/16kTio2YQh2_K3cdjZOPWjQ
提取码:z9lt
第二步:将下载好的驱动放在一个路径下(我是放在jmeter安装目录的lib路径下了,其实路径无所谓,我习惯性把扩展文件放在lib下)
第三步:打开jmeter,在测试计划下选择Oracle数据库驱动的放置路径,如图所示
第四步:在线程组下,添加一个jdbc connection configuration,下面database connection configuration里是必须要填写的内容,
其中database url 是指数据库的连接地址:jdbc:oracle:thin:@ip:端口号/实例
jdbc.driver.class 是要连接的数据库类型,不同的数据库连接方式不同,这是一个下拉选框,常用的就是MySQL和Oracle的连接方式,这里我连接的是Oracle
username和password 就是数据库的用户名和密码了
如下图所示:
第五步:在线程组下,创建一个jdbc request :
SQL Query:注意填写的sql语句未尾不要加“;”
Variable names:保存sql语句返回结果的变量名
Result variable name:创建一个对象变量,保存所有返回的结果
Query timeout:查询超时时间
Handle result set:定义如何处理由query type :select statement语句返回的结果
variables names设置为A,C,那么如下变量会被设置为:
A_# (总行数)
A_1=第1列, 第1行
A_2=第1列, 第2行
C_# (总行数)
C_1=第3列, 第1行
C_2=第3列, 第2行
- 如果返回结果为0,那么A_#和C_#会被设置为0,其它变量不会设置值。
- 如果第一次返回6行数据,第二次只返回3行数据,那么第一次那多的3行数据变量会被清除。
- 可以使用${A_#}、${A_1}...来获取相应的值
这里我定义的是taskid,我要引用返回值的第一列的所有值我就可以在第六步的时候通过${taskid_#},来引用。如果设置的是多次循环,就可以从上到下循环读取
第七步:就是在你引用的地方通过${A_#}、${A_1}...来获取相应的值.