【春天的菠菜】Jmeter 将数据库的数据依次获取作为参数传入下一个请求当中

一、jmeter连接数据库

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

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

  • DataBase URL: jdbc:mysql://IP:端口/数据库名?useUnicode=true&characterEncoding=utf-8
  • 1)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驱动包,在JDBC Connection Configuration当中的JDBC Driver class选择com.mysql.jdbc.Driver

二、添加jdbc请求并设置变量  ------ 这里是调试先这样操作,后续补充说一下这里调整

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

2、添加Debug PostProcessor用于查看变量time值的获取,添加查看结果树并运行;

3、运行得到以下结果。说明jmeter发起的jdbc请求及变量设置正常

查看结果树

查看debug postprocessor

 

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

接下来就要思考怎么将查库得到的time,作为参数传递给下一个登录请求。这里需要引用到 ForEach控制器

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

  • 输入变量的前缀:time; 从之前的jdbc request设置的变量得知,我们要取的值为time_1、time_2、time_3......,所以这里输入time
  • Start index for loop:0; 变量循环启动的索引,第一个元素起始索引+1
  • End index for loop:6; 变量循环结束的索引。所以这里是取值time_1、time_2、...、time_6
  • 输出的变量名称:t_time 用于替换循环下的请求的变量

注意:这个问题在后面有解决方案 ,凭什么输入6呢?这里可以输入${time_#},这里其实已经计量了总数

2、在ForEach控制器下添加登录请求,并进行变量引用  -----------------注意这里要在ForEach下添加你的请求,不然循环无效

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

 

补充说明:

调试成功之后,

之前添加的JDBC Request 可以作为http请求的后置请求JDBC PostProcessor

然后把里面内容之前的JDBC Request内容全部复制到这个JDBC PostProcessor,这样在看报告分析的时候就看不到这个JDBC Request

 

 

 

 

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值