Karate 空手道-设置全局请求头

Karate 空手道-设置全局请求头,karate,Karate,因此,我已经设法编写了一系列测试,并在每个功能文件中设置了相同的请求头 例如: Given url appUrl And path '/path' * header Accept = 'application/json' 我想知道是否有办法设置一次标题,以便在每个场景运行之前设置。我已经阅读了文档,并在karate-config.js中尝试了callSingle方法,如下所示: karate.callSingle('classpath:api/Utilities/Feature/header.

因此,我已经设法编写了一系列测试,并在每个功能文件中设置了相同的请求头

例如:

Given url appUrl
And path '/path'
* header Accept = 'application/json'
我想知道是否有办法设置一次标题,以便在每个场景运行之前设置。我已经阅读了文档,并在karate-config.js中尝试了callSingle方法,如下所示:

karate.callSingle('classpath:api/Utilities/Feature/header.feature');
header.feature看起来像:

Feature: common routing that sets the headers for all features

  Background:
    * configure headers = { Accept : 'application/json' }
以及我希望预设标题的示例功能:

 Feature: Header Preset

      Scenario: I expect the header to be set
        Given url appUrl
        And path '/path'
        When method get
        Then status 200
        * print response
       #I expect the response to be returned in JSON format 

但是我无法让它工作。我想我还不明白callSingle方法是如何工作的。一些指针会有帮助。谢谢。

暂时忽略
callSingle
,集中精力

我认为您缺少了一个步骤,那就是确保在每个
场景之前“应用”了
configure headers
。如果您100%确定这适用于“全局”,只需在
karate config.js
中执行此操作:

karate.configure('headers', { Accept: 'application/json' });
否则,您将使用
背景
(在每个功能中):


通常,您有更多的通用步骤,因此您可以将它们放在“通用”功能文件中,并对每个测试调用这些步骤。参考:

正是医生所要求的。我将使用callSingle方法设置基本的身份验证头,这样就不会完全浪费时间。谢谢你,彼得。
* configure headers = { Accept: 'application/json' }