只有一个场景具有一个以上的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
答案 0 :(得分:0)
您确实应该阅读文档:https://github.com/intuit/karate#configure-headers
只需:
Background:
* configure headers = { 'Content-Type': 'application/json' }
还有更多选择,只需阅读文档即可。请注意,您通常不需要设置Content-Type
,因为空手道会根据请求正文自动进行设置。