Jmeter--同线程组循环获取数据库数据传递请求
实例:同线程组从数据库内获取3个uid,把3个uid分别作为不同参数,循环传递给T票UI及发布朋友圈接口。最终结果分别请求了3次接口,并且每个接口请求uid均不一致
jmeter整体结构
1、连接数据库
JDBC Connection Configuration连接数据库
(1)Varibale Name for created poot 数据库调用名称如:“tw_test”。那么后续通过该调用名去调用数据库
(2)下方红框内填写数据库相关信息。
2、创建线程组
(1)创建该线程组,作用为整个同步线程的控制
(2)填写线程相关名称,线程数目前填写1个即可(因需求而异),秒数个人定义,循环此时暂且定为1
3、从数据库获取数据
(1)在线程组内创建JDBC Request
(2)填写数据库获取相关参数
第一个红框:
Variable Name orf Pool declared in JDBC Connection Configuration:tw_test
此处填写数据库开始定义的调用名称:tw_test
第二个红框:
此处填写sql 查询语句
select uid from appuser_88 limit 3
第三个红框:
Variable Name:uid
此处填写数据库所要查询的名称:uid
select uid,uid1 from appuser_88 limit 3
如果要在sql语句查询两种,那么久用逗号分割即可如:uid,uid1
4、添加循环控制器
(1)在线程组内添加循环控制器
(2)控制器填写
loop Cunt: ${uid_#}
为什么填写 ${uid_#},因为从数据内获取第一条数据获取语句为: ${uid_1},获取第二条为: ${uid_2},那么 ${uid_#}(获取总数),也就是循环数据库内获取结果的总数。
5、添加计数器
(1)在循环控制器内添加计数器
(2)计数器填写
Starting value:起始值
Increment:递增数
Maximum value:最大限制值(咱们在循环控制器定义的 ${uid_#})
Exported Variable Name:引用名(索引值定义为一个变量 uid,引用名随意命名)
6、添加http request
(1)添加请求
(2)、填写请求参数
涂红的地方填写自己的请求方式,主要质疑params的传参方式,如下:
{“uid”: ${_V(uid ${uid})}, “type”: 0}
uid的传参为什么写成${_V(uid ${uid})},(注意参数没有空格,这个参数有空格是因为csdn输入 $ 字符会显示一堆参数导致)下方解析:
嵌套拼接常用方法:
${_V{变量a ${变量b}}}( ${__V} 固定写法)
第一个变量a是在循环器内定义的${uid_#}
第二个变量b是那个#号,#也是一个变量总数,因为我们在上方计数器内的引用名定义为了uid,因此引用名就是该#作为第几个传递进去。循环器循环第一次,那么#=1,那么就是 ${uid_1}取第一个值,第一个值取完后,进行再次循环。第二次循环#=2,那么就是 ${uid_2},以此类推。
本文地址:https://blog.csdn.net/zhouzongxin94/article/details/109636964