如何为空手道 API 中的所有功能文件设置全局 header

How to set global header for all feature files in Karate API

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

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

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

EDIT2:我稍微考虑了一下,如果您对 Java 感到满意,您可以在每个功能的开头调用单例(甚至在全局 karate-config.js) 并在该单例中缓存身份验证令牌的值。所以你可以完全按照你的需要做,而且它会很灵活。

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