【重点】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请求),同时添加好接口相应的请求参 ...
随机推荐
- 【分块,莫队】【P4396】【AHOI2013】作业
传送门 Description 此时己是凌晨两点,刚刚做了Codeforces的小A掏出了英语试卷.英语作业其实不算多,一个小时刚好可以做完.然后是一个小时可以做完的数学作业,接下来是分别都是一个小时 ...
- 【莫队】【P3901】 数列找不同
Description 现在有一个长度为\(~n~\)的数列\(~A_1~,~A_2~\dots~A_n~\),\(~Q~\)个询问\(~[l_i~,~r_i]~\),每次询问区间内是否有元素相同 I ...
- Codeforces Round #419 (Div. 2) A B C 暴力 区间更新技巧 +前缀和 模拟
A. Karen and Morning time limit per test 2 seconds memory limit per test 512 megabytes input standar ...
- 04-树4. Root of AVL Tree-平衡查找树AVL树的实现
对于一棵普通的二叉查找树而言,在进行多次的插入或删除后,容易让树失去平衡,导致树的深度不是O(logN),而接近O(N),这样将大大减少对树的查找效率.一种解决办法就是要有一个称为平衡的附加的结构条件 ...
- 03-树3. Tree Traversals Again (25)将先序遍历和中序遍历转为后序遍历
03-树3. Tree Traversals Again (25) 题目来源:http://www.patest.cn/contests/mooc-ds/03-%E6%A0%913 An inorde ...
- ZABBIX 3.0 配置监控MYSQL性能【OK】
Zabbix3.0自带了MySQL插件来监控mysql数据库的模板,只需要配置好agent客户端,然后在web端给主机增加模板就行了. 参考:http://www.cnblogs.com/keving ...
- mysql cpu 占用高
vi /etc/my.cnf [mysqld]tmp_table_size=200M mysql> show global status like ‘created_tmp%‘; +—————— ...
- linux内核支持nfs挂载配置
1.配置网络部分,主要是使能CONFIG_IP_PNP以在2中能够看到Root file system on NFS选项Networking support Networking options TC ...
- jieba文本分词,去除停用词,添加用户词
import jieba from collections import Counter from wordcloud import WordCloud import matplotlib.pyplo ...
- 不用注解添加controller抛出No adapter for handler异常
不用注解添加controller时会抛出No adapter for handler异常. 解决方法:在DispatcherServlet的配置文件(***-servlet.xml)中加入如下两行: ...