接口測試之Jmeter基本使用(十)-beanshell後置處理器

   案例實現的效果:經過登陸請求後,去得到服務器返回Headers信息,而後用得到的信息去請求其餘接口獲取數據。java

分析:用戶登陸成功--》返回Cookie---》客戶端拿着Cookie再去請求--》認證Cookie,返回請求數據。shell

實現步驟:  apache

一、經過Charles抓包分析請求的URL,發現Cookie是在Header字段中去請求服務器的,登陸接口返回的也是在Header中,以下圖:swift

具體的參數以本身的接口信息爲準,這裏只是個人請求Cookie參數。只做爲參考服務器


二、在請求用戶信息的請求中增長一個HTTP信息頭管理器,將相應的字段進行參數化,具體參數化的值在beanshell中獲取和設置,以下圖:微信


三、在登陸請求的後面新增一個Beanshell 後置處理器,用戶獲取header信息和輸入參數。代碼以下:cookie

import org.apache.jmeter.samplers.*;import org.apache.jmeter.config.*; import java.util.regex.Matcher;import java.util.regex.Pattern;
String headers=prev.getResponseHeaders();//獲取前一個請求的響應頭部信息log.info("headers-->{}",headers);String regex = "Set-Cookie:(.*)"; //正則匹配到Cookie信息Pattern p = Pattern.compile(regex);Matcher m = p.matcher(headers);while(m.find()){ String cookie=m.group(1); log.info("cookie-->{}",cookie); String cookietype=cookie.split("=")[0]; log.info("cookietype--{}",cookietype); switch(cookietype){ case " t_skey": String str=cookie.split(";")[0]; log.info("t_skey--{}",str.split("=")[1]); vars.put("t_skey",cookie.split(";")[0].split("=")[1]); case " LMB_AUTH_CODE": log.info("LMB_AUTH_CODE--{}",cookie.split(";")[0].split("=")[1]); vars.put("LMB_AUTH_CODE",cookie.split(";")[0].split("=")[1]); case " __TOKEN_NEW": log.info("__TOKEN_NEW--{}",cookie.split(";")[0].split("=")[1]); vars.put("__TOKEN_NEW",cookie.split(";")[0].split("=")[1]); } } log.info("__TOKEN_NEW-->{}",vars.get("__TOKEN_NEW")); log.info("LMB_AUTH_CODE-->{}",vars.get("LMB_AUTH_CODE")); log.info("t_skey-->{}",vars.get("t_skey"));


相關閱讀:
測試

接口測試之Jmeter基本使用(九)-beanshell前置處理器ui

接口測試之Jmeter基本使用(八)--Samplerspa

接口測試之Jmeter基本使用(二)--參數設置


-------------------------------------最後---------------------------------

 更多軟件測試相關內容請關注「軟件測試道與術」公衆號或掃描下方二維碼





本文分享自微信公衆號 - 軟件測試道與術(UTesting)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索