jmeter使用jdbc协议获取数据库中数据,很多人都会用,因为大家在做测试的时候,有时候需要大量的用户进行登录,获取需要数据库中真实的数据用于测试,所以常常会用jdbc来获取数据库数据。
那从数据库获取回来的数据,一般会用什么方式来接收呢?
常见的有两种:Variable names和Result variable name。
相信,大家肯定用的最多的就是第一种Variable names,因为这种,使用Foreach控制器使用最简单。
但是,其他的你懂得如何使用吗?
那今天,我就在这里,把Variable names 和 Result variable name 这两种接收变量,并循环使用的办法做了一个汇总,给大家讲解一下。
我们先看用 Variable names 接收数据库返回值的情况:
![](https://img.haomeiwen.com/i23496479/f80bd723321fe91c.png)
Variable names为dbmobile,来接收从数据库查询返回回来的100个用户号码,我们可以看下,从数据库中返回回来的数据,是如何被变量接收的。
![](https://img.haomeiwen.com/i23496479/2e15be4050b43e23.png)
方法一:使用foreach控制器,循环的使用这100个手机号,进行登录
![](https://img.haomeiwen.com/i23496479/f7b5f3a817a8d669.png)
看到上图, 输入变量前缀,输入的是Variable names的变量名称;
然后开始循环和介绍循环值(上面图中我其实只用98个值,不是100个值);
再看输入变量名称,我自定义了一个变量;再勾选了数字之前加下划线。
![](https://img.haomeiwen.com/i23496479/27aae2f43ec43487.png)
这个图,我们就看到,登录接口中,使用了上面自定义的变量名称
![](https://img.haomeiwen.com/i23496479/b436a91245cca1a6.gif)
方法二:使用循环控制
![](https://img.haomeiwen.com/i23496479/26fd08eca5ccf987.png)
循环控制器,我们填写循环次数
![](https://img.haomeiwen.com/i23496479/509676368523ba7b.png)
接下来,我们就要添加计数器,计数器每次计算一次,增加1,定义一个新变量 f 来接收计数器的值。
![](https://img.haomeiwen.com/i23496479/eb05338ec8b5348d.png)
然后,我们在登录接口中,我们使用一个 关联函数 ${__V(dbmobile_${f})}
![](https://img.haomeiwen.com/i23496479/7d25071895458f51.gif)
接下来我们再看用Result variable name 接收数据库返回值的情况:
![](https://img.haomeiwen.com/i23496479/b38d3b573afab0c4.png)
Result variable name为dbmobo,来接收从数据库查询返回回来的100个用户号码,我们可以看下,这个时候,从数据库返回回来的数怎么接收的。
![](https://img.haomeiwen.com/i23496479/304818a272c83c3c.png)
方法三: 使用foreach控制器
![](https://img.haomeiwen.com/i23496479/7975dcd54ff14483.png)
此时,在使用foreach控制器之前,我们先要用一个正则提取器,把我们想要的用户号码提取出来。我们也来看下,提取之后的值。
![](https://img.haomeiwen.com/i23496479/de81a9aeb1a035f0.png)
看到上图,提取之后的值,是不是似曾相识,接下来用foreach控制器,是不是就很简单了。
![](https://img.haomeiwen.com/i23496479/5dff7bcaa3f919d7.png)
![](https://img.haomeiwen.com/i23496479/6a2f22d6b04ea112.gif)
方法四:使用循环控制
![](https://img.haomeiwen.com/i23496479/eb1088cadb34a4d5.png)
循环控制器的配置和计数器的配置,相信大家也都已经知道了,没有难度了。难点,就在下面。(718897738)
![](https://img.haomeiwen.com/i23496479/795965cad2f4660d.png)
看清楚这个用户参数的设置了吗?
${__BeanShell(vars.getObject("dbmobo").get(${d}).get("mobile"))}这段能理解吗?
从dbmobo这个对象中,获取第 d 个mobile的值。d是上面的计数器输出值,每次递增1
![](https://img.haomeiwen.com/i23496479/1ea08db0467f6769.png)
理解了上面的用户参数的值用法,这个登录接口,就么有难度了吧。看最后运行结果,是不是也可以循环登录了呢?
![](https://img.haomeiwen.com/i23496479/a4dcfdda0cc0eb87.gif)
好了,这四种用法你是否都掌握了呢?相信很多朋友都只会其中1到2种用法吧。之前没有用过,那就好好动手学习起来吧!
如果对python自动化测试、web自动化、接口自动化、移动端自动化、面试经验交流等等感兴趣的测试人,可以关注我。加入我们免费获取更多软件测试进阶资料!
网友评论