一、说明

  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 查询结果作为下一个接口参数方法(二)的更多相关文章

  1. Jmeter将JDBC Request查询结果作为下一个接口参数方法(转载)

    现在有一个需求,从数据库tieba_info表查出rank小于某个值的username和count(*),然后把所有查出来的username和count(*)作为参数值,用于下一个接口. tieba_ ...

  2. Jmeter将JDBC Request查询结果作为下一个接口参数方法

    现在有一个需求,从数据库tieba_info表查出rank小于某个值的username和count(*),然后把所有查出来的username和count(*)作为参数值,用于下一个接口. tieba_ ...

  3. jmeter将JDBC Request查询出的数据作为下一个接口的参数

    现在有一个需求,从数据库tieba_info表查出rank小于某个值的username和count(*),然后把所有查出来的username和count(*)作为参数值,用于下一个接口. tieba_ ...

  4. Jmeter中JDBC Request和BeanShell PostProcessor的结合使用(SQL模糊查询)

    [前言] 今天记录一下Jmeter中JDBC Request和BeanShell PostProcessor的结合使用的方法(SQL模糊查询) [步骤] 1.下载对应数据库的驱动包到jmeter安装目 ...

  5. jmeter 性能测试 JDBC Request (查询数据库获取数据库数据) 的使用

    JDBC Request 这个Sampler可以向数据库发送一个jdbc请求(sql语句),并获取返回的数据库数据进行操作.它经常需要和JDBC Connection Configuration配置原 ...

  6. 转jmeter 性能测试 JDBC Request (查询数据库获取数据库数据) 的使用

    JDBC Request 这个Sampler可以向数据库发送一个jdbc请求(sql语句),并获取返回的数据库数据进行操作.它经常需要和JDBC Connection Configuration配置原 ...

  7. Jmeter JDBC Request 查询语句中有汉字查询结果为空的解决方法

    搜索接口我会校验返回值,查询JDBC Request 查询语句有中文字的时候查询会有问题. 解决方法很简单,在JDBC Connection Configuration的Database URL里加一 ...

  8. Jmeter(十三) JDBC Request

    Jmeter中取样器(Sampler)是与服务器进行交互的单元.一个取样器通常进行三部分的工作:向服务器发送请求,记录服务器的响应数据和记录响应时间信息 有时候工作中我们需要对数据库发起请求或者对数据 ...

  9. jmeter将上一个接口返回值作为下一个接口的请求参数

    在jmeter中有时候会用到,将上一个接口的返回值作为下一个接口的请求参数 具体操作如下: 1.首先新建一个http请求(右键线程组--添加Sampler--http请求),同时添加好接口相应的请求参 ...

随机推荐

  1. MDK5.13新建工程步骤

    http://www.stmcu.org/module/forum/thread-600249-1-1.html 本人也是接触stm32没多久,之前用的MDK是5.1,现在用的是5.13,MDK5.0 ...

  2. 形态学及其他集合运算(Morphological and Other Set Operations)

    摘    要:本实验主要实现形态学图像处理.主要验证图像集合的交并补运算.膨胀和腐蚀处理并利用图像集合的运算,实现形态学边界抽取算法并进行特征边界抽取.同时将膨胀和腐蚀扩展至灰度图像,编写函数实现灰度 ...

  3. Linux HugePage 特性

    HugePage,就是指的大页内存管理方式.与传统的4kb的普通页管理方式相比,HugePage为管理大内存(8GB以上)更为高效.本文描述了什么是HugePage,以及HugePage的一些特性. ...

  4. 04-树4. Root of AVL Tree-平衡查找树AVL树的实现

    对于一棵普通的二叉查找树而言,在进行多次的插入或删除后,容易让树失去平衡,导致树的深度不是O(logN),而接近O(N),这样将大大减少对树的查找效率.一种解决办法就是要有一个称为平衡的附加的结构条件 ...

  5. AndroidManifest.xml 权限 中英对照表

    声明: 1.本文转载自:http://www.52pojie.cn/thread-304613-1-1.html 2.如有转载请复制上面连接声明,尊重原创 常用权限对照表 android.permis ...

  6. 基础知识:BT1120

    今天谈点我所理解的BT1120协议. BT1120是高清晰度电视 (HDTV) 演播室信号数字接口,首先说一下接口标准里面的概念,然后谈谈自己的理解,写这个文章的目的就是解释给自己听的,所以都是一些白 ...

  7. 树的性质和dfs的性质 Codeforces Round #403 (Div. 2, based on Technocup 2017 Finals) E

    http://codeforces.com/contest/782/problem/E 题目大意: 有n个节点,m条边,k个人,k个人中每个人都可以从任意起点开始走(2*n)/k步,且这个步数是向上取 ...

  8. 超越icon font

    很久以前,我们如何使用图标? 1.切图 2.拼合(Sprites) 原始社会啊! 后来CSSGagagrunt-css-sprite 字体图标 相见不曾相识 Emoji绘文字 iconfont.cn直 ...

  9. CSS基础复习

    重新撸一遍CSS的基础,因为以前面试的时候被问到,突然发现某些概念搞不清楚,瞬间懵逼了,其实我都知道的,就是因为不会炒概念,导致面试官觉得我很low,你特么连这个都不知道还敢来面试,回家种田去好嘛! ...

  10. 《JavaScript 实战》:JavaScript 实现拖拽缩放效果

    拖拉缩放效果,实现通过鼠标拖动来调整层的面积(宽高)大小,例如选框效果.这里的拖拉缩放比一般的选框复杂一点,能设置八个方位(方向)的固定触发点,能设置最小范围,最大范围和比例缩放. 跟拖放效果一样,程 ...