问题描述
我是这个空手道框架的新手。我想将用户创建ID设置为来自用户创建功能文件的全局变量,并且我想在另一个功能文件中使用相同的设置。我读了一些文档,但这并不能帮助我成功。
我尝试使用空手道-config.js文件创建变量,并尝试在功能文件中使用该变量。但没有奏效。
var config = {
env: env,
baseUrl: 'http://**************',
pds5_id: 'empty',
pds5_token: 'empty'
}
Given path 'pds','identities'
And request {}
When method post
Then status 200
And def pds_id = response.id
And set pds5_id = pds_id
我希望将此用户ID保存到全局变量"Pds5_id"中,但得到以下错误
com.intuit.karate.exception.KarateException: create_identities.feature:16 - cannot set json path on unexpected type: [type: STRING, value: empty]
at ✽.And set pds5_id = pds_id (create_identities.feature:16)
推荐答案
变量一旦在karate-config.js
中设置,就无法更改,因此这是错误的(并且set
只适用于带有路径表达式的json):
And set pds5_id = pds_id
您需要阅读的是文档的这一部分:https://github.com/intuit/karate#calling-other-feature-files
深吸一口气,仔细读一读,时间是值得的。你会找到答案的。
请记住,让一个Scenario
依赖另一个变量是错误的:https://github.com/intuit/karate#script-structure-因此,不要考虑"全局"变量--只要在需要的地方使用可重用的功能即可。
如果您真的需要在开始时设置一次性变量,callSingle()
就是这样做的:https://github.com/intuit/karate#hooks-但首先要尝试基本的操作,因为您是空手道新手。