使用JMeter,我想从CSV文件中获取值,连接值并对它们执行MD5哈希,然后使用HTTP Request Sampler将值作为HTTP请求的一部分发送。
我尝试了以下但没有得到正确的结果:
在jp @ gc-Dummy Sampler中我添加了以下内容:
${__MD5(${csvval1}+${csvval2}+${csvval3})}
这不起作用,正确的方法是什么?
答案 0 :(得分:4)
我最终使用了BeanShell Preporcessor并使用了以下脚本
import java.security.MessageDigest;
String val1 = vars.get("csv_val1");
String val2 = vars.get("csv_val2");
String val3 = vars.get("csv_val3");
String totalString = val1+val2+val3;
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] md5hash = new byte[32];
md.update(totalString.getBytes("utf-8"), 0, totalString.length());
md5hash = md.digest();
StringBuffer sb = new StringBuffer();
for (int i=0;i<md5hash.length;i++) {
String sval = Integer.toHexString((int) md5hash[i] & 0xFF);
if(sval.length()== 1)
{
sval = "0"+sval;
}
sb.append(sval);
}
log.info("tktest: "+ sb);
vars.putObject("MD5Signature", sb.toString());
答案 1 :(得分:1)
有一个新功能__digest
,目前位于nightly builds
在您保存MD5Signature变量的情况下,3变量的结果使用以下内容:
${__digest(MD5,${csv_val1}${csv_val2}${csv_val3},,,MD5Signature)}