以测试用户登录接口为例子,预计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函数拼接的,拼接方法与上面相同)