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

时间:2019-02-06 22:01:51

标签: karate

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

例如:

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方法的工作原理。一些指针会有所帮助。谢谢。

1 个答案:

答案 0 :(得分:1)

暂时忽略callSingle并专注于configure headers

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

karate.configure('headers', { Accept: 'application/json' });

否则,您将使用Background(在每个功能中):

* configure headers = { Accept: 'application/json' }

通常,您需要执行更多常见的步骤,因此将它们放在“通用”功能文件中,并call用于每次测试。请参阅:https://github.com/intuit/karate#shared-scope