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 方法是如何工作的。一些指示会有所帮助。谢谢。
解决方案
暂时忽略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
推荐阅读
- sql - 查询分层查询
- google-sheets - Linking several contacts to a single ID in Google Sheets or R
- php - 在 OpenCart 3 结帐的第 5 步中添加了自定义字段 - 未接收输入
- javascript - JS CustomEvent 参数在 Angular 中以未定义形式传递
- perl - Perl - 用'my'声明变量,仍然得到错误
- file - 第 1 行第 1 列附近未定义八度音阶错误
- sql - 在 where 子句中使用 SQL not in function 时,空值不会在结果集中返回
- php - Recaptcha v2 验证
- c - C 编程字符数组或字符串作为函数参数
- python - Mandelbrot 设置平滑着色函数