需要使用到循环控制器,if控制器,CSV Data Set Config,Random Variable 4个组件
如图

先在线程组下面放一个随机数生成器

然后在同一层级设置一个永久的循环控制器,记住这里最好选择永久或者次数足够大,起码要大于等于参数化文件的行数。这样循环控制器下的参数化文件就可以读到每一行了。


参数化文件放入循环控制器内,并且参数化文件需要设置一列类似于行号的变量。

参数化文件的设置特别需要注意的是上面框里的2个选项,这样设置可以在参数化文件读到最后一行以后就停止循环了,不会再重头再读。(具体csv的每个设置项的说明在很多的博客里都有写到)

再设置一个if控制器,条件是参数化的行号(pl)等于随机数(plr)。这样就可以用if控制器来过滤掉条件不满足的行数了,因为随机数生成器是在循环控制器的外层,所以他只会循环一次(即只会生成一次随机数),而循环控制器里的参数化文件是会循环N次,直到循环结束为止。比如说生成了一个随机数4,然后再循环控制器里第一次肯定是从第一行取,那plr=4 pl=1,这就肯定不匹配,就不会去执行if控制器里的请求,然后循环控制器继续取参数化里的第二行,第三行,一直到取到第四行,pl=4,plr也是=4。这样的if条件就满足了,就会执行里面的请求了。这样就完美实现了随机读取参数化文件里的某一行数据了。