上一篇中提到过用cookie manager功能来管理cookie,再通过Bean Shell来传递。那本篇用其他后置处理器-如正则表达式提取器来演示下如何做数据关联。
还以提取cookie并传递为例:
1. 在要提取的请求后添加正则表达式提取器,要提取的内容是登录后的响应信息头的内容。
2. 在提取前先在查询结果树中进行测试,确保正则表达式是正确的,注意只提取值的部分。
3. 配置正则表达式提取器
APPLY TO:指匹配的范围是父及其子取样器、只父取样器、只子取样器还是Jmeter变量匹配。根据需要进行选择,我这里就默认值了,因为我匹配的只有一个取样器(登录请求)。
要检查的响应字段:这里指匹配响应字段的哪个部分,一共八个部分,不再一一列举了,我这里是响应的头信息,所以选择“信息头”。不过,从这里可以看出,正则表达式提取器是针对响应数据做提取的。
引用名称:就是变量名,使用时用${引用名称}。
正则表达式:刚才测试过的正则。
模板:这个模板感觉有点抽象,我理解的是如果有多组值,要取哪一组值,会涉及到$1$,$2$...来取引用名称下的不同的数组;这里只有一个值,用$0$指全文匹配,如果不填也可以。
匹配数字:这个应该是个多模板配合使用的,对于匹配到多组值的情况,用匹配数字来确定取哪个值,其中0表示随机,负数取所有值。这里是全文匹配,就不填了(这个使用场景适合用于遍历)
默认值:没有匹配到的时候指定一个值,这里指定了error。
4. 设置好后,依然先用调试取样器来进行测试,值获取到了,可以看到变量是TOKEN_g0。
5. 现在就可以使用这个值了,使用的时候不能直接放到请求参数中,还要通过BeanShell后置处理器拿到参数给后续的请求使用,提取器只是负责提取值。
6. 添加BeanShell后置处理器(这个步骤在公众号第一篇已经详细介绍过了,此处略写)。
但要注意一点:这里取的变量是TOKEN_g0而不是TOKEN,按调试结果值填写。
7. 剩下的就是使用了,本例是跨线程组使用。
8. 通过查看结果树,查看下是否传值成功,此处请求时带的token就是登录后获取的。