Jmeter学习笔记(3)- 关联(包括正则表达式和逻辑处理器)

继续以百度为例,在百度首页的右上方还有新闻、hao123、地图之类的链接,如何能完成对这些链接的自动访问呢?主要依靠正则表达式和逻辑控制器。

正则表达式

正则表达式是通过一定的规则,从一大堆文本中将需要的内容查找出来。在Jmeter中,正则表达式用来对HTTP请求所返回的数据进行处理,根据规则获取到所需要的数据。如在对打开百度首页后,返回的数据中,包含了很多子链接,如下形式:
Jmeter学习笔记(3)- 关联(包括正则表达式和逻辑处理器)
如图,新闻子链接的实际访问地址为:http://news.baidu.com
我们可以通过正则表达式,自动获取此地址,保存到变量中,让Jmeter访问。具体配置参见后续内容。

逻辑控制器

这个组件下面有好多好多好多中控制器,如循环控制器,一次控制器等等。就像学程序语言时候一样,程序除了顺序执行外,还可以进行for循环、while循环、if语句判断等,这个逻辑控制的意思类似。

本次我们使用的是ForEachController,意思是呢,对所关联的变量的所有值进行遍历操作。和python中的 for i in list之类的差不多。本例子中,首先通过正则表达式将百度首页中返回的所有链接地址获取到变量sublink(自己取的变量名)中,在ForEach Controller中关联此变量,再在ForEach Controller下添加一个新的HTTP请求,该HTTP请求所访问的地址就是自动获取到的链接地址。哎,原来用文字描述一件事还挺费劲的,如果没看懂,就参考下面内容吧:

配置过程

1、添加正则表达式:在原打开百度首页的HTTP Request后面,添加后置处理器 - 正则表达式(英文为Regular Expression Extrator)
Jmeter学习笔记(3)- 关联(包括正则表达式和逻辑处理器)
2、正则表达式配置:
(建议抽出一个小时进行正则表达式的学习,虽然学的时候有点枯燥,但非常非常的有用,我自己也准备单独写篇文章来说正则表达式)
Jmeter学习笔记(3)- 关联(包括正则表达式和逻辑处理器)
3、添加ForEach Controller:在线程组下添加逻辑控制器(英文为Logic Controller) - ForEach Controller,如图
Jmeter学习笔记(3)- 关联(包括正则表达式和逻辑处理器)

4、ForEach Controller配置:
Jmeter学习笔记(3)- 关联(包括正则表达式和逻辑处理器)

5、ForEach Controller下添加新的HTTP Request2,并进行配置:
Jmeter学习笔记(3)- 关联(包括正则表达式和逻辑处理器)

7、保存并执行线程组,查看结果,发现Jmeter自动对获取到的5个子链接进行了访问:
Jmeter学习笔记(3)- 关联(包括正则表达式和逻辑处理器)
【请注意】Jmeter中,各个组件的先后顺序非常重要,如果执行结果和图片不一样,很有可能是顺序不对,请参考上图中的顺序,将你的线程数修改一下,然后再执行。