2

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

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

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

    ${__MD5(${csvval1}+${csvval2}+${csvval3})}
    

这不起作用,什么是正确的方法?

4

2 回答 2

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());
于 2013-07-09T12:55:52.887 回答
1

有一个新功能__digest,目前在夜间构建中

在您的情况下,将 3 个变量的结果保存在 MD5Signature 变量中,请使用以下命令:

${__digest(MD5,${csv_val1}${csv_val2}${csv_val3},,,MD5Signature)}
于 2017-11-07T12:27:56.770 回答