因此,我设法编写了一系列测试,并且在每个功能文件中都设置了相同的请求标头。
例如:
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方法的工作原理。一些指针会有所帮助。谢谢。
答案 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