Я пытаюсь сгенерировать подписанный запрос AWS в JMeter.
Моя первая попытка состояла в том, чтобы поместить те же параметры, которые прекрасно работают в моих запросах Postman, в диспетчер заголовков HTTP.Такими параметрами были «AccessKey», «SecretKey», «AWS Region», «Service Name» и «Session Token», но в ответе было указано «Access denied».В лучшем случае я просто использовал неправильные имена на этом шаге, и переименование их уже исправляет все.
Моя вторая попытка состояла в том, чтобы следовать документации AWS и написать класс Java, который генерируетподписанный запрос.Затем я хотел использовать препроцессор JSR223 для установки переменных с помощью vars.put
.Как я могу сделать это правильно?Я новичок в JMeter и подумал, что смогу вставить свой Java-код, добавить оператор vars.put и все.Но, к сожалению, это не создает переменную с именем «aaauthorization», если я запускаю Debug Sampler впоследствии:
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());
}
}
Заранее благодарю за помощь!