【发布时间】:2018-05-25 01:27:06
【问题描述】:
我正在尝试在 JMeter 中生成签名的 AWS 请求。
我的第一次尝试是将在我的 Postman 请求中正常工作的相同参数放入 HTTP 标头管理器中。这些参数是“AccessKey”、“SecretKey”、“AWS 区域”、“服务名称”和“会话令牌”,但响应显示“访问被拒绝”。在最好的情况下,我只是在这一步中使用了错误的名称,重命名它们已经解决了所有问题。
我的第二次尝试是遵循AWS documentation 并编写一个Java 类来生成签名请求。然后我想使用 JSR223 PreProcessor 来设置使用vars.put 的变量。我怎样才能正确地做到这一点?我是 JMeter 的新手,我认为我可以粘贴我的 Java 代码,添加 vars.put 语句,就是这样。但遗憾的是,如果我之后运行调试采样器,这不会创建一个名为“aaauthorization”的变量:
class aws_request {
public static String bytesToHex(byte[] hash) {
...
return hexString.toString();
}
private static byte[] HmacSHA256(String data, byte[] key) throws Exception {
...
return mac.doFinal(data.getBytes("UTF8"));
}
private static byte[] getSignatureKey(String key, String dateStamp, String regionName, String serviceName)
throws Exception {
...
return kSigning;
}
public static String getAuthorization() {
try {...
return authorization;
} catch (Exception e) {
return "failed";
}
}
public static void main(String args[]) {
vars.put("aaauthorization", getAuthorization());
}
}
提前感谢您的帮助!
【问题讨论】:
标签: amazon-web-services request jmeter signed jsr223