jmeter逻辑控制器之如果(if)控制器实战(二)

meter逻辑控制器之如果(if)控制器实战

if逻辑控制器控件中最重要就是Expression(must evaluate true or false)输入框,此处需要写入需要进行判断的表达式,从must evaluate true or false可知,实际使用时,只能填入true或者false这样的值
因此我们需要借助其他模块或者函数将需要进行判断的表达式(如 ${变量名}== 5)转换成true或false,判断才能生效

实战示例

一般在对api测试的时候,一般的判断或者次数少的判断是可以手工完成的,这样的话如果(if)控制器就显得比较鸡肋,但是在需要批量使用的时候,或者需要对大量数据进行判断和筛选时,如果(if)控制器就显得很重要了

需求:链接数据库,查询出某个字段,并筛选当字段等于N时,运行接口

步骤如下

一、设置线程组循环次数

jmeter逻辑控制器之如果(if)控制器实战(二)注意点:1、在设置循环的时候,有些地方是不需要多次循环的,比如登录接口以及获取数据库数据等,这时候可以使用仅一次控制器,避免多次登录造成登录限制(一般的接口都有登录次数限制)
2、设置循环次数为20 (一般情况下可能是1w+,这个与数据条数有关,为了更好的展示实际效果,这里只循环20次)

二、链接oracle数据库,设置所需字段的变量名

jmeter逻辑控制器之如果(if)控制器实战(二)

三、添加计数器,方便循环读取数据库传来的参数

jmeter逻辑控制器之如果(if)控制器实战(二)这里计数器的变量名为id,其具体数值为 1,2,3,4,,,100.

四、添加如果(if)控制器,设置筛选条件

jmeter逻辑控制器之如果(if)控制器实战(二)在条件中,本篇用数据库中的变量FISSILENT,和计数器的变量ID,进行拼接,因为数据库传来的参数不止一条,需要区分每一条数据,比如FISSILENT_1,FISSILENT_2,表示的是第一条数据,第二条数据。
拼接后的条件如下:
jmeter逻辑控制器之如果(if)控制器实战(二)

五、添加http请求,如下

jmeter逻辑控制器之如果(if)控制器实战(二)把需要的参数传进去,点击运行
结果如下
jmeter逻辑控制器之如果(if)控制器实战(二)
成功从20条数据中,筛选出4条可以使用的数据,并用该数据进行接口传参。