利用Java處理Jmeter介面常用引數

安全劍客發表於2019-08-20
問題

一、簽名引數sign演算法由文字描述,演算法需自己編寫

二、 引數param_json為變化的json串(json串內訂單號唯一)

簽名sign

1. 手動拼接後在加密,較為麻煩,且容易出錯

2. 編寫python或java ,實現加密,比方法1高效

3. 在postman的Pre-request Script

     let app_secret = "xxx"; //簽名app_secret
     let access_token = "xxx";
     let app_key = 'xxx';
     let method = 'xxx';
     let param_json ='{"thirdOrder":"xxx" ...}'; //引數省略
     let timestamp ='2018-06-06 13:52:03';  // 注意格式
     let v = '1.0';
     
     //拼接
     sign = app_secret +"access_token"+ access_token +"app_key"+app_key+"method"+method+"param_json"+param_json+"timestamp"+timestamp+"v"+v+app_secret;
     console.log(sign);
     sign = CryptoJS.MD5(sign).toString();
     console.log(sign);
     
     //設定環境變數
     postman.setEnvironmentVariable("sign", sign);

效率大大提高,推薦方法。

Jmeter處理方法

-------4.1 編寫java程式碼實現加密以及生成唯一訂單號

-------4.2 將java程式碼打包後,複製到jmeter的lib/ext目錄下

-------4.3 在測試計劃中引入jar

-------4.4 新增Bean  Sampler,編寫 (類似java語法)

     // 匯入外部jar包(計算sign)
     import com.wdzy.tools.GetSign;
     
     // 基本不變引數
     String app_secret = "xxx"; //簽名app_secret
     String access_token = "xxx";
     String app_key = "xxx";
     String method = "xxx";
     String timestamp ="2018-06-06 13:52:03";
     String v = "1.0";
     
     // 處理第三方訂單號
     String param_json = new GetSign().getParamJson();
     String param_json = param_json.toString();
     vars.put("param_json",param_json.toString());
     更多知識請觀看《Linux就該這麼學》
     // 拼接sign串
     sign = app_secret +"access_token"+ access_token +"app_key"+app_key+"method"+method+"param_json"+param_json+"timestamp"+timestamp+"v"+v+app_secret;
     // 計算MD5值
     String result = new GetSign().MD5(sign);
     
     System.out.println(result);
     // 將sign結果儲存到作用域
     vars.put("sign",result.toString());


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559985/viewspace-2654355/,如需轉載,請註明出處,否則將追究法律責任。

相關文章