1.首先执行登录接口,用JSON提取器把获取到的token信息,存放到全局的token这个变量中,方便下面验签中获取
2.在登录成功后,需要写BeanShell取样器来生成signature。
注意BeanShell需要在获取数据接口的上面,不然获取不到signature,requestTime等信息。用Jmeter的系统方法,生成时间戳与nonce,然后用SHA1来加密。
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.codec.digest.DigestUtils;
String requestTime = "${__time(,)}";
String nonce = "${__time(/1000,)}";
//注意"${token}" 要加双引号
String str="${token}"+nonce+requestTime;
String strSha1 = DigestUtils.sha1Hex(str);
vars.put("signature", strSha1);
vars.put("nonce", nonce);
vars.put("requestTime", requestTime);
设置后,就可以在信息头管理器中设置变量,来取到刚刚设置的参数
可以在察看结果树中看到BeanShell的请求数据,就把对应的数据给显示出来了
然后获取数据的接口就会把header的验签数据给带过去请求接口