JMeter从mysql数据库查询多条数据,并作为入参调用HTTP接口

以测试用户登录接口为例子,预计6条测试用例,
其中用例1和2是正确登录,接口返回的结果是true,
另外4个测试用例为:用户名错误、密码错误、密码是空、用户名是空,接口返回的结果是false

一、Mysql数据库中准备测试数据

在这里插入图片描述
如图所示,是我准备的测试数据,包括用户名、密码,expert_result是期望接口返回的结果

二、Jmeter配置从Mysql数据库中读取用户

如果是第一次用Jmeter连接mysql数据库,可以先参考我的上一篇微博进行配置
https://blog.csdn.net/weixin_45580903/article/details/124200105

1、添加一个JDBC Connection Configuration
在这里插入图片描述
2、添加一个JDBC Request
在这里插入图片描述
其中将查询出来的username、password、expert_result分别赋值给u,p,r这三个变量

3、添加一个调试取样器,以及查看结果树,能够看到获取到的u,p,r是这样的:
在这里插入图片描述
其中u_1、p_1、r_1就是查询到的第一行数据值
其中u_#就是查询出来的记录条数

三、添加循环控制器,调用HTTP请求

1、添加一个循环控制器(for循环),次数就填写数据库中记录的个数。
如果不填写数值,用${u_#}也可以,这样数据库中添加一条新测试数据时,这里就不用修改循环次数了
在这里插入图片描述
2、添加一个计数器,变量命名为i,用于循环时候不断递增。这里start是1,最大值是记录个数。
在这里插入图片描述
3、添加HTTP Request,其中登录的入参是用户名和密码
在这里插入图片描述
此处要注意,
username后,是使用v函数拼接出来的变量:${__V(u_${i})}
password后,也是这样拼接出来的变量:${__V(p_${i})}
为啥要拼接成这个样自呢
即u是从mysql数据库中查询出来的用户,i是计数器变量,所以拼接后这个变量名就变成了${u_1}、${u_2}、${u_3}、${u_4}、${u_5}、${u_6}

使用V函数拼接的格式是${__V(变量1_${变量2})},直接用这个格式,将你的变量名替换一下即可

4、用正则表达式提取接口返回的结果,将结果赋给变量actual_result
在这里插入图片描述
5、增加响应断言,判断接口返回的结果,与你数据库中保存的期望结果是否一致
即判断actual_result与期望结果${__V(r_${i})}是否一致。(期望结果也是使用v函数拼接的,拼接方法与上面相同)
在这里插入图片描述

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值