JMeter使用"BeanShell取样器"来实现参数的md5加密:

java代码如下:
java
import org.apache.commons.codec.digest.DigestUtils;
import java.util.Date;
// 1. accessKeyId
String accessKeyId = vars.get("accessKeyId");
// 2. 卡号
String cardNo = vars.get("cardNo");
// 3. 十六位随机数
//String nonceStr = vars.get("nonceStr");
String nonceStr = "";
String chars = "ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz";
int maxLen = chars.length();
for (int i = 0; i < 16; i++) {
double floor = Math.floor(Math.random() * maxLen);
int intValue = (new Double(floor)).intValue();
nonceStr += String.valueOf(chars.charAt(intValue));
}
vars.put("nonceStr", nonceStr);
log.info("---nonceStr---" + nonceStr);
// 4. 时间戳
String timestamp = new String();
Date date = new Date();
timestamp = String.valueOf(date.getTime());
vars.put("timestamp", timestamp);
// 5. 密钥
String key = "e992fdbec7cd1eb2b1c6c8e07d4eea60";
// 6. 拼接待签名的参数值
String params = "accessKeyId=" + accessKeyId + "&cardNo=" + cardNo + "&nonceStr=" + nonceStr + "×tamp=" + timestamp + "&key=" + key;
log.info("拼接后的参数:{}", params);
String sign = "";
// 7. md5签名整个参数
sign = DigestUtils.md5Hex(params).toUpperCase();
vars.put("sign", sign);
log.info("-- md5签名--" + sign);