第一步: 簽名的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,命令行啟動壓測!!!