【重点】Jmeter----- 将 JDBC Request 查询结果作为下一个接口参数方法(二)
一、说明
jmeter与数据库mysql已连接成功
二、需求
1、前置条件:
1、已user数据库的前8位手机号码作为行动计划的名称
2、行动计划的日期是2018-10-17
2、操作步骤:
1)获取到某个月份的行动计划,
2)设置参数进行循环添加行动计划
3)统计某个月份的行动计划数量
4)将行动计划标记为已完成
5)删除某个月份下所有的行动计划
3、预期结果:
行动计划添加成功,并且删除所有的某个月份下的行动计划成功
三、分析与实践
实践步骤:
1)首先添加一个jdbc connection configuration
2)添加一个jdbc request查询出user数据库的前8位mobile手机号码
3)添加一个用户自定义变量
4)确定是否查询出数据
5)提取mobile的数据
6)验证参数化是否成功
7)添加计数器
8)把mobile的值传递进去
9)设置线程数或者添加一个循环控制器
10)那我们的东西进行重新排序
1、需求:存在一个user表,表结构如下:

2、分析
1)要查询出user数据库的前8位mobile手机号码,那么首先需要建立一个jdbc request,连接本地数据库看,分别查出我们需要的mobile值
2)todo_start为了方便管理,这个值我们设置做成了一个变量,方便管理
3)查询出所有的mobile,mobile值不一定只有一个,因此我们怎么确定每次取到的值作为参数去请求下一个接口?这里需要做一个循环
4)我事先不知道能够查询出某个月份的行动计划有多少条,那如何知道我们需要循环多少次?
3、实践
1)首先添加一个jdbc connection configuration,连接的方式根据自己的数据库定

2、添加一个jdbc request查询出user数据库的前8位mobile手机号码

3、确定是否查询出数据
这个时候可以使用添加查看结果树,看看我们获取到的mobile的值,如下是获取到的结果

4、提取mobile的数据
查看jdbc request的request里面,查看底部的variable name填上你想使用的变量名,注意这个接口后面要自己用到,

5、参数化进行传递
如果直接将mobile传入${mobile}会发现请求里面mobile参数化并没有成功,那为什么会不成功呢,原来当使用 jdbc request 的结果作为参数时,要写成 ${username_0}这样子,username就是你的变量名,0 代表索引,索引是 0 就表示第一行,索引是 1 就表示第二行。
例如,我想取mobile查询结果第 4 行的数据,那我的变量值就需要写成 ${mobile_3},再看看上面mobile查询结果是怎么展示的

6、添加计数器

由于我们从第 2 行开始取值,索引是 1,所以启动填 1,每次我们往后多 1,所以递增也填 1,最大值可不填,number format 就是数字格式,如果填 000,取值是 12,那最后会显示为 012,而我们只需要本身的数字,所以就填 0,引用名称就是后面需要用的变量名
有了计数器,能递增了,那我们就需要
7、把mobile的值传递进去
我们上面说了 ${mobile_1}是取第二行,${mobile_2}是取第三行,依次类推,那我们要从第二行也就是索引等于 1 开始取,一直到最后。上一步添加的计数器就起作用了,我们设置的计数器是从 1 开始计数,每次递增 1,那么跟我们想要的完全吻合,index 就是我们设置的计数器的变量名,可以直接用他来代替我们的索引 1,2,3,4 等等,那我们现在来把mobile 和index两个变量拼接起来,这里如果你直接写成 ${umobile_index} 或者 ${mobile_${index}}都是不行的,因为两个变量不能直接拼接,需要用到一个函数 __V,不了解这个函数的可以百度看看,作用就是可以使 2 个变量可以拼在一起,所以我们拼接后的 mobile 变量应该是 ${__V(mobile_${index})}

8、设置线程数或者添加一个循环控制器
但是我们并不知道到底需要循环多少次或者需要设置多少线程数,才能让mobile刚好传完,这个时候,我们需要多加一个 jdbc request 了,来查询出我们符合条件的数据有多少条。select count("mobile") from user where id between 1 and 8;就是查询符合条件的数据总数,同理我们在 variable names 填上一个变量名,以供后面使用,这里我取 count

count 变量是我们之前查出来的所有数据的总数,这个总数是多少就说明我们需要多少线程或多少次循环。ok,那我们在 http 请求上右击,点击插入上级 – 逻辑控制器 – 循环控制器,循环次数,我们使用count 变量,由于 count变量查询出来的结果肯定只有一个,那我们可以直接取结果的第二行数据,索引是 1,即${count_mobile_1},这样就能把次数确定。这里其实不能用添加线程的方式来做,因为这几个 jdbc request 都在这个线程里,如果设置多线程,jdbc request 也会多次请求,不合理,所以我们选择更好的循环控制器

所有的东西都设置完了,就需要
9、重新进行排序后运行即可
参考链接:https://blog.csdn.net/u010978840/article/details/78227852
【重点】Jmeter----- 将 JDBC Request 查询结果作为下一个接口参数方法(二)的更多相关文章
- Jmeter将JDBC Request查询结果作为下一个接口参数方法(转载)
现在有一个需求,从数据库tieba_info表查出rank小于某个值的username和count(*),然后把所有查出来的username和count(*)作为参数值,用于下一个接口. tieba_ ...
- Jmeter将JDBC Request查询结果作为下一个接口参数方法
现在有一个需求,从数据库tieba_info表查出rank小于某个值的username和count(*),然后把所有查出来的username和count(*)作为参数值,用于下一个接口. tieba_ ...
- jmeter将JDBC Request查询出的数据作为下一个接口的参数
现在有一个需求,从数据库tieba_info表查出rank小于某个值的username和count(*),然后把所有查出来的username和count(*)作为参数值,用于下一个接口. tieba_ ...
- Jmeter中JDBC Request和BeanShell PostProcessor的结合使用(SQL模糊查询)
[前言] 今天记录一下Jmeter中JDBC Request和BeanShell PostProcessor的结合使用的方法(SQL模糊查询) [步骤] 1.下载对应数据库的驱动包到jmeter安装目 ...
- jmeter 性能测试 JDBC Request (查询数据库获取数据库数据) 的使用
JDBC Request 这个Sampler可以向数据库发送一个jdbc请求(sql语句),并获取返回的数据库数据进行操作.它经常需要和JDBC Connection Configuration配置原 ...
- 转jmeter 性能测试 JDBC Request (查询数据库获取数据库数据) 的使用
JDBC Request 这个Sampler可以向数据库发送一个jdbc请求(sql语句),并获取返回的数据库数据进行操作.它经常需要和JDBC Connection Configuration配置原 ...
- Jmeter JDBC Request 查询语句中有汉字查询结果为空的解决方法
搜索接口我会校验返回值,查询JDBC Request 查询语句有中文字的时候查询会有问题. 解决方法很简单,在JDBC Connection Configuration的Database URL里加一 ...
- Jmeter(十三) JDBC Request
Jmeter中取样器(Sampler)是与服务器进行交互的单元.一个取样器通常进行三部分的工作:向服务器发送请求,记录服务器的响应数据和记录响应时间信息 有时候工作中我们需要对数据库发起请求或者对数据 ...
- jmeter将上一个接口返回值作为下一个接口的请求参数
在jmeter中有时候会用到,将上一个接口的返回值作为下一个接口的请求参数 具体操作如下: 1.首先新建一个http请求(右键线程组--添加Sampler--http请求),同时添加好接口相应的请求参 ...
随机推荐
- bzoj1969: [Ahoi2005]LANE 航线规划(树链剖分)
只有删边,想到时间倒流. 倒着加边,因为保证图连通,所以一开始一定至少是一棵树.我们先建一棵树出来,对于每一条非树边,两个端点在树上这段路径的边就不会变成关键边了,所以将它们对答案的贡献删去,那么直接 ...
- 【学习笔记】ac自动机&fail树
定义 解决文本串和多个模式串匹配的问题: 本质是由多个模式串形成的一个字典树,由tie的意义知道:trie上的每一个节点都是一个模式串的前缀: 在trie上加入fail边,一个节点fail边指向这个节 ...
- 手脱Aspack变形壳1
1.载入PEID Aspack v2.12 -> www.aspack.com 2.载入OD,不管是看查壳信息还是看入口特征都跟我上一次发的一个手脱Aspack v2.12的帖子相同http:/ ...
- Mac下安装SVN插件javaHL not available的解决方法
在Mac下安装Eclipse插件svnEclipse插件后,每次打开Eclipse都会弹出如下弹出框: 提示你本机缺少JavaHL Library. 选择Eclipse→偏好设置(preference ...
- java格式化字符串,在指定位置插入指定字符串,兼容中英文以及特殊字符,例如:换行,用于解决生成pdf换行问题等问题
本博客是自己在学习和工作途中的积累与总结,仅供自己参考,也欢迎大家转载,转载时请注明出处. http://www.cnblogs.com/king-xg/p/6370890.html 如果觉得对您有 ...
- [DeeplearningAI笔记]序列模型1.1-1.2序列模型及其数学符号定义
5.1循环序列模型 觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.1什么是序列模型 在进行语音识别时,给定了一个输入音频片段X,并要求输出片段对应的文字记录Y,这个例子中的输入和输出都输 ...
- 2017 国庆湖南 Day4
期望得分:20+40+100=160 实际得分:20+20+100=140 破题关键: f(i)=i 证明:设[1,i]中与i互质的数分别为a1,a2……aφ(i) 那么 i-a1,i-a2,…… i ...
- NOIP 2014 提高组 Day2
期望得分:100+60+30=190 实际得分:70+60+30=160 https://www.luogu.org/problem/lists?name=&orderitem=pid& ...
- 如何修改 winserver2008 密码策略为简单密码
对于不在域中的计算机, 可以运行: gpedit.msc , 如下图: 对于在域中的计算机, 应该: 如不能生效, 可重启再试.
- 超酷动态图片展示墙JS特效制作方法
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...