连接变量并创建MD5

时间:2013-07-07 01:57:32

标签: jmeter jmeter-plugins

使用JMeter,我想从CSV文件中获取值,连接值并对它们执行MD5哈希,然后使用HTTP Request Sampler将值作为HTTP请求的一部分发送。

我尝试了以下但没有得到正确的结果:

  1. 创建了CSV数据集配置并添加了变量csvVal1,csvVal2,csvVal3;
  2. 在jp @ gc-Dummy Sampler中我添加了以下内容:

    ${__MD5(${csvval1}+${csvval2}+${csvval3})}
    
  3. 这不起作用,正确的方法是什么?

2 个答案:

答案 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)}