LoadRunnner中的关联为web_reg_save_param,查找左右边界,下次请求的时候会用到上次请求服务器返回的数据,那么我们把符合左右边界的数据保存下来,以便下次请求的时候用到。
jmeter中的关联为使用正则表达式,把数据保存下来。
无论哪种形式的关联或者工具的关联,其本质是不变的,变得是不同的工具提供的不同的操作方法。
Jmeter中的关联
通过对本地文件的引用来完成关联
在Test Plan下创建如下线程组、然后在线程组下面创建HTTP Request、View Result Tree、Debug Sampler、Regular Expression Extractor
1、HTTP Request的设置:
Implementation我们一般选择 HttpClient4,协议为:file(因为为本地文件),方法:GET,编码:uft-8
D盘jmeter.txt文件内容为:
This is abcdefg34656jshshsjsksjskj。
sjdlsksknsaknjsnd
sdnasjmkssj
jssnsknskjssjsjsssksssjxjkdxjsjxalsxjss
jskss
Name="TOME" Value="Jerry"
2、Regular Expression Extractor的设置:
其中Apply to是这个正则表达式应用范围:主采样器和子采样器、只应用在主采样器、只应用在子采样器、JMeter变量,我们根据实际需要选择;
Field to check:检查的区域,Body、Body(unescaped)、Body as a Document、Response Headers(响应头)、Request Headers(请求头)、URL、Response Code、Response Message;
Reference Name:名字我们可以自定义,但是最好是有意义的,见名知意;
Regular Expression:根据实际关联的内容,进行正则表达式的关联;
Template,模板——一般默认为$1$,如果关联的是两个值,可以写成$1$$2$;
Macth No.1:一般我们只匹配第一次,所以写1,
Default Value:如果没有匹配到的值为,我们可以自定义,也可以用默认的empty值;
正则表达式的规则为:
3、运行,查看结果树:
我们可以查看到session、session_g、session_g0、session_g1
如果文件内容为:
This is abcdefg34656jshshsjsksjskj。1234。
sjdlsksknsaknjsnd
sdnasjmkssj
jssnsknskjssjsjsssksssjxjkdxjsjxalsxjss
jskss
Name="TOME" Value="Jerry"
那么运行结果为:
显然不是我们想要的结果,应该是我们的正则表达式的规则不完整导致,更改正则表达式的规则为:
(.+?):代表匹配任意多个字符,并且找到匹配的结果之后马上停止查找;
结果为:
如果想匹配Name="TOME" Value="Jerry",正则表达式为:
结果为:
我们可以看到session为两个连起来的字符串,这个和我们正则表达式的模板是一致的,如果我们模板设为$1$aaa$2$,那么结果为session=TOMEaaaJerry。