空手道:签署 AWS HTTP 请求并将生成的 headers 添加到 'request headers'

Karate: Signing AWS HTTP requests & add the generated headers to the 'request headers'

我们测试的内部 API 需要完成对它们进行签名的过程(即获取 AWS 签名)并在我们这样做之前将签名的 headers 添加到 'request headers'任何 CRUD 操作。

可以通过 AWS-SDK 或使用类似 https://github.com/lucasweb78/aws-v4-signer-java 的方式签署请求(如果我们的测试完全用 Java 编写)

在空手道 DSL 中实现此目标的最佳方式是什么。请提出建议。

阅读文档:https://github.com/intuit/karate#http-basic-authentication-example

例如,这是您进行基本身份验证的方式:

function fn(creds) {
  var temp = creds.username + ':' + creds.password;
  var Base64 = Java.type('java.util.Base64');
  var encoded = Base64.getEncoder().encodeToString(temp.bytes);
  return 'Basic ' + encoded;
}

这里的重点是您可以插入任何 Java 代码。您还可以查看 OAuth 示例以获得更多想法:https://github.com/intuit/karate/tree/master/karate-demo/src/test/java/demo/oauth

另见: