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,這個路徑可自行設定。保存到文件中,可以用於分析統計。

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