JMeter 兵器谱之 ForEach Controller

同样的,英文好的同学请移驾ForEach Controller

ForEach controller 是用来遍历集合的,比如 XPATH Extractor 或者 正则表达式 Extractor 解析出来的集合。ForEach做的事情大致有2件,

  1. 取得集合
  2. 遍历集合,将每一个值应用到 ForEach 下面的 Smapler 或者 controller 中去。

来看一个例子,我们要访问百度首页,取得首页所有的链接,然后访问这些链接。我们要做的是:

  1. 用一个 http sample 访问 http://www.baidu.com
  2. 在这个 sample 下添加一个正则表达式提取器,使用 <a href=”([^”]+)” 提取所有的 link 的 href 值。
  3. 用 ForEach Controller 遍历第2步提取出来的 href 值,然后一一访问。

JMeter 脚本结构大致如下,

alt text

先来看正则表达式提取器

alt text

注意这个引用名称 inputVar, 提取出来的所有匹配值都会放在这个变量里,事实上 inputVar 相当于一个 set 了。然后我们在紧跟的 ForEach 里面使用这个变量。

alt text

可以看到,在 ForEach 里,我们将之前的 inputVar 设置为输入变量。然后用 returnVar 做为输出。 这其实就类似于 JAVA 里面的 ForEach。

for(Object returnVar : inputVar) {
//process
}

这个 process 过程就是下图所示:
alt text

文章目录
|