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,命令行启动压测!!!
标签:secretKey,Http,java,accessKey,Rest,util,Json,import,jmeter 来源: https://www.cnblogs.com/huahua035/p/11892322.html