在空手道中的同一场景中的多个呼叫中使用标头

时间:2019-04-05 08:49:04

标签: karate

只有一个场景具有一个以上的http调用,因此我想对所有调用使用相同的主机和标头。但是,尽管我可以将url设置为适用于所有呼叫,但标头似乎仅在第一个呼叫中应用,然后重置。

有人会提供有关为什么发生这种情况的信息和/或关于如何正确执行操作的建议吗(除了将它们分别添加到每个通话中)?

通过在Background中进行设置或使用通用Given进行设置,两个调用均使用url,但标头仅包含在第一个中: 1)

Feature: sample

  Background:
  * header Content-Type = 'application/json' 
  * url http://localhost:8080

  Scenario: do multiple calls
    Given path /sample/
    When method GET
    Then status 200

    Given path /sample2/
    When method GET
    Then status 200

2)

Feature: sample2

Given header Content-Type = 'application/json'
And url http://localhost:8080 

  Scenario: do multiple calls
    Given path /sample/
    When method GET
    Then status 200

    Given path /sample2/
    When method GET
    Then status 200

1 个答案:

答案 0 :(得分:0)

您确实应该阅读文档:https://github.com/intuit/karate#configure-headers

只需:

Background:
  * configure headers = { 'Content-Type': 'application/json' }

还有更多选择,只需阅读文档即可。请注意,您通常不需要设置Content-Type,因为空手道会根据请求正文自动进行设置。