Я пытаюсь создать подписанный запрос AWS в JMeter.
Моя первая попытка заключалась в том, чтобы поместить те же параметры, которые отлично работают в моих запросах Postman, внутри диспетчера заголовков HTTP. Этими параметрами были «AccessKey», «SecretKey», «Регион AWS», «Имя службы» и «Токен сеанса», но в ответе говорилось «Отказано в доступе». В лучшем случае я просто использовал неправильные имена на этом шаге, и их переименование уже все исправляет.
Моя вторая попытка состояла в том, чтобы следовать документации 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());
}
}
Заранее спасибо за вашу помощь!