一、说明

  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. Amphetamine的cf日记

    之前挂上的 今天填坑 2018.2.14 #462 A 给两个集合,B分别可以从一个集合中选一个数,B想乘积最大,A想最小,A可以删除一个第一个集合中的元素,问最小能达到多少. 这题..水死啦.我居然 ...

  2. 排座位&&Little Elephant And Permutation——排列dp的处理

    排列的问题,就是要把序列排个序,使之达到某种最优值或者统计方案数 dp可以解决部分排列问题. 通常的解决方案是,按照编号(优先级)排序决策,从左到右决策两种. 这里主要是第一个. 排座位• 有

  3. Linux之Makefile20160707

    说一下LINUX下的Makefile,直接根据实际碰到的Makefile进行解读: 当make的目标为all时,-C $(KDIR) 指明跳转到内核源码目录下读取那里的Makefile:M=$(PWD ...

  4. 学习 opencv---(12)OpenCV 图像金字塔:高斯金字塔,拉普拉斯金字塔与图片尺寸缩放

    在这篇文章里,我们一起学习下 图像金字塔 的一些基本概念,如何使用OpenCV函数pyrUp和pyrDown 对图像进行向上和向下采样,以及了解专门用于缩放图像尺寸的resize函数的用法.此博文一共 ...

  5. JSP2 特性

    JSP2 新特性 1.直接配置 JSP 属性 2.表达式语言 3.简化的自定义标签 API 4.Tag 文件语法 如果要使用 JSP2 语法,web.xml 文件必须使用 Servlet2.4 以上版 ...

  6. 1.Android JUnit Runner(使用AndroidStudio)

    一.Android JUnit Runner介绍 1.Android JUnit Runner 1)是一个测试运行器,用于运行Junit3和Junit4的Android测试包 2)替换Instrume ...

  7. C/C++ Volatile关键词深度剖析

    文章来源:http://hedengcheng.com/?p=725 背景 此微博,引发了朋友们的大量讨论:赞同者有之:批评者有之:当然,更多的朋友,是希望我能更详细的解读C/C++ Volatile ...

  8. webstorm 激活破解方法大全

    webstorm 作为最近最火的前端开发工具,也确实对得起那个价格,但是秉着勤俭节约的传统美德,我们肯定是能省则省啊. 方法一:(更新时间:2018/1/23)v3.3 注册时,在打开的License ...

  9. mysql 中delete和trncate区别

    mysql中删除表记录delete from和truncate table的用法区别: MySQL中有两种删除表中记录的方法:(1)delete from语句,(2)truncate table语句. ...

  10. C++构造函数和析构函数顺序

    构造函数    先看看构造函数的调用顺序规则,只要我们在平时编程的时候遵守这种约定,任何关于构造函数的调用问题都能解决:构造函数的调用顺序总是如下:1.基类构造函数.如果有多个基类,则构造函数的调用顺 ...