我需要在jmeter中为许多请求创建测试,我需要在头文件中创建包含pass
的帖子请求,它应该是来自user + someid + someid
的哈希sha512。我需要在每个请求中更改用户,所以我只需添加Header Manager user${__threadNum}
,它看起来很好,但我需要在下一个帖子请求中生成哈希。我正在搜索它应该可以通过beanshell脚本或jsr223预处理器,但我不是很熟悉脚本或java。
答案 0 :(得分:2)
自JMeter 4.0以来,更简单的答案是:
对于以前的版本:
使用Java语言添加JSR223 Sampler,使用vars.get("password")
传递变量password和salt,并使用此代码变量generatedPassword
将保留生成的新哈希
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
String passwordToHash = vars.get("password");
String salt= vars.get("salt");
String generatedPassword = null;
try {
MessageDigest md = MessageDigest.getInstance("SHA-512");
md.update(salt.getBytes("UTF-8"));
byte[] bytes = md.digest(passwordToHash.getBytes("UTF-8"));
StringBuilder sb = new StringBuilder();
for(int i=0; i< bytes.length ;i++){
sb.append(Integer.toString((bytes[i] & 0xff) + 0x100, 16).substring(1));
}
generatedPassword = sb.toString();
log.info(generatedPassword);
vars.put("generatedPassword", generatedPassword);
}
catch (NoSuchAlgorithmException e){
e.printStackTrace();
}
答案 1 :(得分:0)
使用JMeter 4.O,只需使用函数__digest:
$ {__ digest(SHA-512,字符串到哈希,,,)}