如何为 Karate API 中的所有功能文件设置全局标头

5 karate

我需要发布一个请求来获取授权令牌并将其包含在所有后续测试请求的标头中。该令牌每次都会更改,但只要我继续发送请求,它就对整个测试会话有效。在每个功能文件中,我可以调用另一个功能文件来获取此令牌。但我不想对每个功能文件都这样做。我只想在测试开始时获取一次令牌并将其用于所有功能文件。我怎么做?我读过 GitHub 上的空手道信息,但没有找到答案。

Pet*_*mas 3

演示中的第二个示例回答了您的所有问题:karate-demo

\n\n

EDIT1:抱歉,我读你的问题太快了。您可以使用karate.call()in,karate-config.js使其适用于所有功能文件。我不\xe2\x80\x99t 推荐这个,因为你总会有一些你不需要的功能。只需使用对功能的调用,并且不要过度设计您的测试。

\n\n

编辑2:我对此进行了更多思考,如果您熟悉Java,您可以在每个功能的开头(甚至在全局中)调用单例,karate-config.js并在该单例中缓存身份验证令牌的值。因此,您可以完全按照您的需要进行操作,并且非常灵活。

\n\n

编辑3:基于这个问题 - 我们将此功能作为karate.callSingle()操作添加到空手道中,这里是文档: https: //github.com/intuit/karate/tree/develop#the-karate-object

\n