1. 程式人生 > >Jmeter之Bean shell使用(三)——執行緒組之間的引數傳遞

Jmeter之Bean shell使用(三)——執行緒組之間的引數傳遞

場景測試中,一次登入後做多個介面的操作,然後登入後的uid需要關聯傳遞給其他介面傳送請求的時候使用。

1、在登入介面響應資訊中提取uid欄位值

  1>login請求 -->新增 -->後置處理器--> bean shell postprocessor

  2>在bean shell postprocessor提取uid   import com.changfu.EncryptAndDecryptInterface;
import org.json.JSONArray;
import org.json.JSONObject;

String json_res = prev.getResponseDataAsString(); //獲取登入請求的響應資訊
String resb = EncryptAndDecryptInterface.getDecrypt(json_res);  //呼叫解密工具解密,對響應資訊解密
vars.put("resb",resb);  
log.info("解密後的響應資訊resb="+resb);
JSONObject data_obj = new JSONObject(resb);   //解析json響應資訊

String uid_str = data_obj.get("result").get("id").toString();  //擷取響應資訊中uid的值 
props.put("uid_str",uid_str);   //將uid_str資料存到變數中,這裡用props.put,其他執行緒組可呼叫請該變數
log.info("加密前的uid="+uid_str);
2、在測試計劃中新增“使用者引數”  
  需要傳遞的引數新增到使用者引數   3、在另一個執行緒組接收該變數uid_str   1>執行緒組->新增-->前置處理器-->BeanShell PreProcessor import com.changfu.EncryptAndDecryptInterface;

String uid_str = props.get("uid_str"); //獲取登入傳遞的uid_str變數
String enuid=EncryptAndDecryptInterface.getEncryptUID(uid_str);  //加密登入返回的uid
vars.put("enuid",enuid);
log.info("加密登入後返回的uid"+enuid);