【问题标题】:Karate - Setting global request headers空手道 - 设置全局请求标头
【发布时间】:2019-02-07 09:07:19
【问题描述】:

所以我设法编写了一堆测试,并在每个功能文件中设置了相同的请求标头。

例如:

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 方法是如何工作的。一些指示会有所帮助。谢谢。

【问题讨论】:

    标签: karate


    【解决方案1】:

    暂时忽略callSingle,关注configure headers。

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

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

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

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

    通常您有更多的通用步骤,因此您将它们放在“通用”功能文件中,call 用于每个测试。参考:https://github.com/intuit/karate#shared-scope

    【讨论】:

    • 正是医生所要求的。我将使用 callSingle 方法来设置 Basic auth 标头,因此毕竟追求这条路线并不是完全浪费时间。谢谢彼得。
    猜你喜欢
    • 1970-01-01
    • 2018-08-30
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 2013-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多