Jmeter使用BeanShell进行关联

所谓关联,多大数是通过相应信息抓取部分信息,例如hiddensession等。

jmeter中要使用关联,分为2步:

 

Step 1. Sampler请求下添加正则表达式,获得信息,Add > Post Processors>Regular Expression Extractor;

wKioL1cZ57GyO4DkAADWuTZXjPE693.png

 

1.1绝大多数我们需要截取部分信息,可以通过查看源代码,找到需要的代码,然后通过正则处理,下面举一个例子:

 

功能是提取userSession中的值

wKioL1cZ6KjzOcI4AAED0wpFtnw799.png

 

1.2有时候,我们需要提取所有的响应信息,可采用下面的正则:

wKiom1cZ6BnRPu8nAAC7NjPQql0056.png

 

Step2. 添加PostProcessers,选择BeanShell PostProcessor,继而进一步操作。

 wKiom1cZ6Gayl90WAAGF-JE9Vxs329.png


 

BeanShell中我们可以使用java代码处理正则提取出来的内容,一般的步骤为:接收正则表达提取的值,如果这个值需要作为之后Sampler的参数使用,我们还要将它保存为变量,方便以后调用。

继续以第一个例子中的userSession来说明:

wKiom1cZ6LuT4nxDAAEZnfEDm6E341.png

 

由于在登录urlpost需要提交session,所以我保存为变量Session,下面是登录url的调用Session值。

wKiom1cZ6OySb0yKAAEEd7CxFyQ788.png

如果我们需要将正则抓取的内容打印到本地文档中,则可以在BeanShell PostProcesser中加入如下的代码:

import java.io.*;


String value = bsh.args[0]; 

print(value);

File f= new File("D:"+File.separator+"log.txt"); 

FileWriter w = new FileWriter(f,true);

w.write(value+"\n");

w.close();

value接收参数值,print是将参数打印到命令行里,本地文件我使用的是D:\log.txt,这个路径可自行设定。保存到文件中,可以用于分析统计。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章