Jmeter bsf處理器(複雜邏輯的測試腳本)

什麼是bsf,  Bean Scripting Framework(BSF)是一個支持在Java應用程序內調用腳本語言 (Script),而且支持腳本語言直接訪問Java對象和方法的一個開源項目。 jmeter 使用bsf處理器, 無非就是能夠編寫本身的script腳本代碼, 來實現更強大的測試腳本。javascript

下面這個例子告訴你,何時必須使用jmeter的bsf處理器, 何時使用正則表達式提取器就足夠了。(如下例子均爲假設,並不真實存在)html

須要使用bsf的例子 使用正則表達式提取器便可的例子
   

2. 返回了一個json(協議)字符串 其中包含了一個key爲java

passwd, 他的值爲mypasswd. 正則表達式

 

2. 返回了一個html頁面包含以下一個連接json

 

咱們想找到 http://blog.whoistester.com  這個字符串測試

並賦予到變量${url} 加密

 

3.  將mypasswd 這個值抓取到,並賦給${mypasswd}url

 

3. 直接利用徵則表達提取器提取到xml

字符串並賦予給${url}變量htm

4. 對${mypasswd}的值進行md5加密,

並md5加密後的字符串賦到 ${md5mypasswd}

 
5. 而後使用${md5mypasswd}進行下一步的操做   如何使用正則表達式提取,請瀏覽

經過例子對比, bsf能夠經過編寫咱們本身的腳本,進行更復雜的邏輯處理。 一般jmeter本身提供的方法沒法知足咱們的需求時,咱們則須要用bsf本身編寫腳本,來實現本身的複雜處理邏輯. 

bsf 有前置與後置處理器。後置處理器,經過  prev.getResponseDataAsString()能夠得到該sample請求的返回數據。 咱們將返回的數據獲得咱們想要的數據,而後能夠進行邏輯運算處理。

而後經過 vars.put("key", value); 放入到jmeter的變量裏。 

這樣咱們在後面的sample或者其餘類型的處理器裏,就可使用$key 這個變量了。  

額外說的是, 儘可能不要使用javascript的正則表達式去解析html,xml。 這是痛苦的一件事情,但若是你須要獲取少許的數據, 固然你可使用正則表達式的方法。 一個最好的辦法是, 服務端儘可能返回json格式。 

相關文章
相關標籤/搜索