jmeter连接数据库并参数化

前提:一个简单的数据库连接,并将查询出的数据参数化为下一个接口的请求数据~
一、所用到的组件:
配置元件: JDBC Connection Configuration (数据库连接的配置)
取样器:JDBC Request (数据库请求,sql语句及返回信息的配置)
逻辑控制器:ForEach控制器 (配合‘用户定义的变量’来使用,作用是参数化;)
取样器:Dubbo Sample (我这是dubbo接口,用的是dubbo的请求组件;)

二、组件配置
(1)、需要依赖的mysql jar包 ,需要放到 jmeter的lib下面;
网盘下载地址链接:https://pan.baidu.com/s/1EP4R2k3zan7xiKb4vWoCTw 密码:cony
jmeter连接数据库并参数化
(2)、配置元件: JDBC Connection Configuration
jmeter连接数据库并参数化
1: 填写入一个变量名,需要和用到的JDBC request 中,或者JDBC PreProcessor,或者JDBC PostProcessor中的变量名一致;一个测试计划中可以绑定多个DB源;
我这里填入的是数据库的库名;

2:上面2个字段一般默认,Validation Query 一般选择 select 1

3:数据库连接的配置,将数据库url/port/db name/用户名和密码等填入
Database URL :jdbc:mysql:// ip:端口号/数据库名
JDBC Driver class :com.mysql.jdbc.Driver (注:mysql数据库按需选择)
Username :数据库连接名
password :数据库连接密码

(3)、配置元件: JDBC Request
jmeter连接数据库并参数化
jmeter连接数据库并参数化
(4)、可运行看看数据库相关配置是否OK
jmeter连接数据库并参数化
(5)、请求接口配置(我这是dubbo接口,用的是dubbo的请求组件Dubbo Sample;http同理)
jmeter连接数据库并参数化
jmeter连接数据库并参数化
jmeter连接数据库并参数化
参数直接设置为 ${参数名_1};代表取值为 返回的参数 (参数名) 列的第二行;
如: ${order_1}:orderNo列的第2行;
${order_2}:orderNo列的第3行;
…以此类推;(0开始计数)
注:不能直接用 ${orderNo} 加线程组循环,来循环访问;得用ForEach控制器,见(6);

(6)、参数化 — ForEach控制器
介绍参考: https://www.cnblogs.com/yanzhe/p/7729774.html jmeter连接数据库并参数化
输入变量前缀:为JDBC Request 配置返回的列名
开始循环字段(不包含): 0 代表返回的第一列;不包含0代表不包含返回的第一列;这里第一列为列名
结束循环(含):代表在 第N-1列结束循环(是从0开始计数)
输入变量名称: v_orderNo
循环第一次时代表 v_orderNo = orderNo_1
循环第二次时代表 v_orderNo = orderNo_2
…以此类推;满足了我们循环返回orderNo列的需求

最后一步,将接口请求中的参数改为 ForEach控制器中的 输入变量名: ${输出变量名}
jmeter连接数据库并参数化
(7)请求,查看结果树
jmeter连接数据库并参数化

引用文章及参考文章:
https://blog.****.net/tester_xjp/article/details/80859925
https://www.cnblogs.com/qianjinyan/p/10244345.html
https://www.cnblogs.com/yanzhe/p/7729774.html