我可以在 JSON 文件中包含所需的所有 JSON 路径,并在我的特征文件中使用它来进行匹配或其他任何操作吗?
Can I include the all JSON paths required in a JSON file and use it inside my feature file for match or anything else?
例如,我保存 paths.json 并添加以下内容。我知道我尝试的方式有误,但找不到它
{
"name": "JSON Path's",
"description": "This mainly store the paths of the JSON elements which are validated in each scenario",
"SC_4": {
"appHeader": "$.testResponse.applicationHeader",
"ProductsAction": "$.testResponse.applicationHeader.item.action"
}
}
* def attributes = read('../jsonpaths/paths.json')
Given url endPointURL
And request baseJsonRequest
When method post
Then status 200
* def appHeaderSecondTry = attributes.SC_4.appHeader
* print appHeaderSecondTry
哇,你这么快就成为空手道的高级用户了:P
好吧,我个人不建议尝试像您正在做的那样在 Karate 上构建一个迷你框架,我可以看到您正在尝试做什么 - 保留所有断言 "declarative" 并尝试重新 -使用通用代码进行实际的 HTTP 调用等。
我对此的看法是,您可以节省很少的代码行(因为在空手道中发出 HTTP 请求非常容易)。此外,您应该能够通过 call
关键字重新使用功能文件。我强烈建议您尝试在测试中保留匹配语句 "normal"。
也就是说,您缺少的是 karate.eval()
操作,请在文档中查找。这是一个示例(第 91 行):js-arrays.feature
例如,我保存 paths.json 并添加以下内容。我知道我尝试的方式有误,但找不到它
{
"name": "JSON Path's",
"description": "This mainly store the paths of the JSON elements which are validated in each scenario",
"SC_4": {
"appHeader": "$.testResponse.applicationHeader",
"ProductsAction": "$.testResponse.applicationHeader.item.action"
}
}
* def attributes = read('../jsonpaths/paths.json')
Given url endPointURL
And request baseJsonRequest
When method post
Then status 200
* def appHeaderSecondTry = attributes.SC_4.appHeader
* print appHeaderSecondTry
哇,你这么快就成为空手道的高级用户了:P
好吧,我个人不建议尝试像您正在做的那样在 Karate 上构建一个迷你框架,我可以看到您正在尝试做什么 - 保留所有断言 "declarative" 并尝试重新 -使用通用代码进行实际的 HTTP 调用等。
我对此的看法是,您可以节省很少的代码行(因为在空手道中发出 HTTP 请求非常容易)。此外,您应该能够通过 call
关键字重新使用功能文件。我强烈建议您尝试在测试中保留匹配语句 "normal"。
也就是说,您缺少的是 karate.eval()
操作,请在文档中查找。这是一个示例(第 91 行):js-arrays.feature