Jmeter在Http Rest接口中自動生成簽名(Json格式請求參數)

第一步: 簽名的java類生成jar包,導入到jmeter的lib目錄下(依賴的第三方包也要導入)

第二步:編寫jmeter腳本,這裏使用BeanShell 進行簽名串的生成,目錄結構如下:

 

 

 

 

 

BeanShell 腳本如下:

 1 import java.util.ArrayList;
 2 import java.util.Collections;
 3 import java.util.List;
 4 import java.util.HashMap;
 5 import java.util.Map;
 6 import org.apache.jmeter.config.Arguments;
 7 import com.unisound.ym.SignUtil;
 8 import com.alibaba.fastjson.*;
 9 import org.apache.jmeter.config.*;
10 
11 
12 String accessKey = "${accessKey}";
13 String secretKey = "${secretKey}";
14 String timestamp = "${requestTime}";
15 
16 log.info("accessKey----->{}",accessKey);
17 log.info("secretKey----->{}",secretKey);
18 log.info("timestamp----->{}",timestamp);
19 
20 //獲取請求的Body參數
21 Arguments args = sampler.getArguments();
22 //json格式請求:body只有一個key爲空的參數值
23 for(int i=0;i<args.getArgumentCount();i++){
24     String key = args.getArgument(i).getName();
25     String value = args.getArgument(i).getValue();
26     log.info("requst body:key={},value={}",key,value);
27 }
28 String requestJson = args.getArgument(0).getValue();
29 log.info("-------{}",requestJson);
30 
31 String ymMd5SignStr=SignUtil.md5Sign(requestJson,accessKey,secretKey,timestamp);
32 log.info("signatureStr--->{}",ymMd5SignStr);
33 vars.put("ymMd5SignStr",ymMd5SignStr);

 

關鍵代碼:如何獲取request body中的json字符串(HttpRest請求,注意header是application/json)

1 //獲取請求的Body參數
2 Arguments args = sampler.getArguments();
3 //json格式請求:body只有一個key爲空的參數值
4 String requestJson = args.getArgument(0).getValue();

很簡單吧!!!!

 

 測試腳本放入linux,命令行啓動壓測!!!

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