后置处理器的Regular Expression Extractor就是关联元件,可以帮助我们从服务器响应数据查找到我们需要的数据。所谓关联,就是使用第一个Request的响应数据,去访问第二个Request。下面以一个例子做介绍——

创建一个http请求,访问地址toy1.weather.com.cn//search?cityname=城市,然后从返回数据中获取北京的地区代码,使用该地区代码访问另一个地址www.weather.com.cn/weather2d/地区代码.shtml,获取天气信息。具体步骤如下:

1.创建用户自定义变量

定义一个变量,city=北京,使用它的时候用${city},本test有多处使用该变量,故定义一个变量可以更加方便地进行统一修改。

Jmeter功能(三)关联

2.创建一个获取北京地区代码的请求

Jmeter功能(三)关联

3.创建正则表达式

创建一个正则表达式,把Response的值提取到变量中,提供给别的HTTP Request使用。选择HTTP请求,右键Add-> Post Processors->Regular Expression Extractor,打开正则表达式页面,进行设置

Jmeter功能(三)关联

各个参数的意义如下:

Reference Name:引用名称,匹配出来的信息用此变量名称进行引用,如${citycode}

Regular Expression:正则表达式

():括起来的部分就是要提取的。
.:匹配任何字符串。

*:0次或多次
+:1次或多次。
?:不要太贪婪,在找到第一个匹配项后停止。

Template:模板,即正则表达式,可以设置多个模板进行匹配,使用$数字$指定用哪个模板,如$1$指第一个模板,$2$指第一个模板,以此类推,$0$指全文匹配

Match NO.:匹配到多个结果时,0代表随机取匹配值,用数字来确定取这一组值中的哪一个,负数取所有值

Default Value:缺省值,如果参数没有取到值,指定一个默认值

在此补充一下有多个模板即正则表达式、匹配到多个值时,如何参数化?使用${result_gn}来引用,其中result是引用名称,_gn来指定模板组别,如${result_g1}代表第一个模板。举个例子:

假如想匹配W如下部分:name = "file.name" value = "readme.txt"并提取file.name和readme.txt。正则表达式可以写成:name = "(.+?)" value = "(.+?)"。这样就会创建2个组,分别用于$1$和$2$。假设引用名称:MYREF,模板:$1$$2$,那么,MYREF_g1匹配到的值是file.name,MYREF_g2匹配到的值是readme.txt,使用${MYREF_g1}、${MYREF_g2}进行使用。

4.创建一个获取北京天气的请求

发送请求到www.weather.com.cn/weather2d/${citycode}.shtml,${citycode}中的数据是从Regular Expression Extractor提取出来的。

Jmeter功能(三)关联

5.运行,查看结果树

Jmeter功能(三)关联

相关文章:

  • 2022-12-23
  • 2021-12-15
  • 2022-12-23
  • 2022-01-01
猜你喜欢
  • 2022-12-23
  • 2021-11-01
  • 2021-12-09
  • 2022-01-23
  • 2022-01-11
  • 2021-12-05
相关资源
相似解决方案