因为项目的原因,假设我们要实现如下要求:从数据库的用户表里获取用户信息,并作为参数全部传递给登录请求,分别完成登录操作。

01Jmeter连接数据库

1、添加JDBC Connection Configuration

(右键测试计划-->配置元件-->JDBC Connection Configuration)

2、配置数据库连接信息,其中

DataBase URL:

jdbc:mysql://192.168.88.130:3306/dataname?useUnicode=true&characterEncoding=utf-8

1)192.168.88.130:3306为数据库的地址和端口号;dataname为数据库名

2)useUnicode=true&characterEncoding=utf-8 指定字符的编码解码格式utf-8

JDBC Driver Class :

com.mysql.jdbc.Driver 此为mysql数据库的驱动

Username: 数据库的登录用户名

Password: 数据库的密码

3、导入mysql驱动包

下载好mysql的驱动包(mysql-connector-java-5.1.7-bin.jar),

放到jmeter的lib目录下

选中测试计划,添加mysql驱动包

02添加Jdbc请求

 

添加jdbc请求并设置变量

1、添加线程组-->右键线程组-->添加jdbc request,并做好设置

2、添加Debug PostProcessor用于查看变量phone值的获取,添加查看结果树并运行;得到以下结果。
说明jmeter发起的jdbc请求及变量设置正常

03循环读取库的用户信息

实现循环读取库的用户信息,并传递到下一个登录请求

接下来就要思考怎么将查库得到的用户手机号,作为参数传递给下一个登录请求。

这里需要引用到 ForEach控制器

1、添加ForEach控制器(右键线程组-->逻辑控制器-->ForEach控制器),并先尝试如下设置

输入变量的前缀:phone;

从之前的jdbc request设置的变量得知,我们要取的值为phone_1、phone_2、phone_3......,所以这里输入phone

Start index for loop:0;

变量循环启动的索引,第一个元素起始索引+1

End index for loop:6;

变量循环结束的索引。

所以这里是取值phone_1、phone_2、...、phone_6

输出的变量名称:t_phone;

用于替换循环下的请求的变量

2、在ForEach控制器下添加登录请求,并进行变量引用

3、运行后,查看结果,成功从库里获取了前6个用户手机号,并分别成功登录

以上这种处理需要自行查库获知总共有多少个用户,再去设置ForEach控制器的End index for loop值(设置为用户总数),就可以将库里所有用户进行参数传值登录了;

问题:能不能jmeter自动去获知数据库表的用户数,然后去循环取值进行登录呢?

当然可以,先用jdbc request查出用户数,再直接对ForEach控制器的End index for loop值进行设置就ok了

实操:

a、添加一个jdbc请求,查询用户表的用户总数,并设置变量count
b、设置ForEach控制器的End index for loop值

c、运行,查看结果成功

本文由柠檬班土豆老师原创

Jmeter进阶技能-数据库信息,传递参数的更多相关文章

  1. Jmeter(五十二) - 从入门到精通高级篇 - jmeter之跨线程组传递参数(详解教程)

    1.简介 之前分享的所有文章都是只有一个线程组,而且参数的传递也只在一个线程组中,那么如果需要在两个线程组中传递参数,我们怎么做呢?宏哥今天就给小伙伴或者童鞋们讲解一下,如何实现在线程组之间传递参数. ...

  2. Jmeter接口测试(四)传递参数

    参数设置 Jmeter 支持通过 查询字符串参数(Query String Parameters) 或者 Request body 请求体来传递参数. 1.get请求是普通键值对 get请求一般通过p ...

  3. Jmeter 跨线程组传递参数 之两种方法

    终于搞定了Jmeter跨线程组之间传递参数,这样就不用每次发送请求B之前,都需要同时发送一下登录接口(因为同一个线程组下的请求是同时发送的),只需要发送一次登录请求,请求B直接用登录请求的参数即可,直 ...

  4. Jmeter 跨线程组传递参数 之两种方法(转)

    终于搞定了Jmeter跨线程组之间传递参数,这样就不用每次发送请求B之前,都需要同时发送一下登录接口(因为同一个线程组下的请求是同时发送的),只需要发送一次登录请求,请求B直接用登录请求的参数即可,直 ...

  5. 使用HQL语句的按照参数名字查询数据库信息的时候 “=:”和参数之间不能存在空格,否则会报错

    问题描述: 今天在使用HQL的按照参数的名字查询数据库信息的时候报错如下: org.hibernate.QueryException: Space is not allowed after param ...

  6. 数据文件、日志文件、归档文件、控制文件、参数文件及RMAN备份数据库信息查询

    一.查看数据库信息:=====================1.数据文件 SQL> SELECT FILE#,STATUS,ENABLED,NAME FROM V$DATAFILE; FILE ...

  7. Jmeter在非GUI环境下传递参数(命令行&Jenkins配置)

    https://www.cnblogs.com/kill0001000/p/8078686.html 通过cmd运行 jmeter -? 可以得到所有命令行选项(本文最后) 其中可以看到下面 -J 的 ...

  8. [Xcode 实际操作]九、实用进阶-(24)使用Segue(页面的跳转连接)进行页面跳转并传递参数

    目录:[Swift]Xcode实际操作 本文将演示使用Segue(页面的跳转连接)进行页面跳转并传递参数. 参照结合:[Xcode10 实际操作]九.实用进阶-(23)多个Storyboard故事板中 ...

  9. spring boot:用cookie保存i18n信息避免每次请求时传递参数(spring boot 2.3.3)

    一,用cookie保存i18n信息的优点? 当开发一个web项目(非api站)时,如果把i18n的选择信息保存到cookie, 则不需要在每次发送请求时都传递所选择语言的参数, 也不需要增加heade ...

随机推荐

  1. python生产者和消费者模式实现(一)普通方式

    import timeimport randomfrom multiprocessing import Queue # 生产者def producer(q, num): for i in range( ...

  2. [日常] 神奇的引导问题deepin与win10

    经过昨天的一番折腾,我的电脑一开机就可以进入deepin的引导界面,也可以登录到deepin,但是访问windows直接报错.我的windows已经使用PE安装完了win10,还是打不开. 当我在研究 ...

  3. centos 的系统管理命令 service systemctl

    centos 的 systemctl 命令 systemctl is-enabled *.service     #查询服务是否开机启动 systemctl enable *.service    # ...

  4. nginx 安装 lua_nginx_module 模块(nginx——lua 学习笔记1)

    插入两个网站: nginx + lua 的OpenResty 开发 跟我学OpenResty(Nginx+Lua)开发目录贴 两个都是 可以根据目录一步步学习的. 1. 版本下载 nginx版本为 n ...

  5. Day_04 面向对象

    概述 对于面向对象编程的支持,Go语言设计得非常简洁而优雅.因为,Go语言并没有沿袭传统 面向对象编程中的诸多概念,比如继承(不支持继承,尽管匿名字段的内存布局和行为类似继承,但它并不是继承). 虚函 ...

  6. MATLAB实例:PCA降维

    MATLAB实例:PCA降维 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 1. iris数据 5.1,3.5,1.4,0.2,1 4.9,3.0,1 ...

  7. 【bzoj1997】[Hnoi2010]Planar(平面图+2-sat)

    传送门 几乎和这个题一样,就不说题意了,比较特殊的点就是,这里有个结论: 平面图的边数\(m<3n-6\),\(n\)为点数. 所以我们可以通过这个减枝,\(m\)较大时直接输出\(no\).小 ...

  8. prometheus数据可视化

    一.prometheus自带简单的web可视化页面: http://192.168.1.28:9090/graph 二.grafana是一套开源的分析监视平台,支持prometheus等数据源:UI非 ...

  9. ICCV

    ICCV 简介 ICCV 的全称是 IEEE International Conference on Computer Vision,即国际计算机视觉大会,由IEEE主办,与计算机视觉模式识别会议(C ...

  10. VMware虚拟机安装Centos7后设置静态ip

    VMware虚拟机安装Centos7后设置静态ip 1. 先设置虚拟机的网络,打开虚拟网络编辑器: 2. 选择Vm8 234都要勾选 3. 打开NAT设置,看到123,待会要用. 4. 打开虚拟机服务 ...