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,命令行启动压测!!!

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