空手道:从 JSON 文件中的嵌入表达式动态输入值
Karate : Dynamically input values from embedded expressions in a JSON file
* def mpRequestJson =
"""
{
"entity": '<entity>',
"consent": {
"PHONE": <updategetPhonePref>,
"EMAIL": true,
"POST": false,
"SMS": <updategetSMSPref>
},
"notices": [{
"title": "Privacy policy",
"version": "NA"
}],
"source": "web"
}
"""
Given path '<entity>'
And request mpRequestJson
When method PUT
Then status 200
And match $.consent.PHONE == '<updategetPhonePref>'
And match $.consent.SMS == '<updategetSMSPref>'
Examples:
|entity | updategetPhonePref|updategetSMSPref|
|xyz| #(updategetPhonePref)|#(updategetSMSPref)|
如果我想将 JSON 请求存储在 JSON 文件而不是功能文件中,我的 JSON 文件应该是什么?
在 JSON 中使用 embedded expressions,例如
entity: '#(entity)'
然后你可以从文件中读取它:
* def mpRequestJson = read('my.json')
但在 read
之前,您应该初始化必须替换的变量。所以你会有一些额外的行。
* def entity = '<entity>'
减少额外行的一种方法是创建临时文件 JSON:
* def data = { entity: '<entity'>, phone: '<updategetPhonePref>' }
然后你可以在 JSON:
entity: '#(data.entity)'
也请阅读 data driven tests 上的文档。
* def mpRequestJson =
"""
{
"entity": '<entity>',
"consent": {
"PHONE": <updategetPhonePref>,
"EMAIL": true,
"POST": false,
"SMS": <updategetSMSPref>
},
"notices": [{
"title": "Privacy policy",
"version": "NA"
}],
"source": "web"
}
"""
Given path '<entity>'
And request mpRequestJson
When method PUT
Then status 200
And match $.consent.PHONE == '<updategetPhonePref>'
And match $.consent.SMS == '<updategetSMSPref>'
Examples:
|entity | updategetPhonePref|updategetSMSPref|
|xyz| #(updategetPhonePref)|#(updategetSMSPref)|
如果我想将 JSON 请求存储在 JSON 文件而不是功能文件中,我的 JSON 文件应该是什么?
在 JSON 中使用 embedded expressions,例如
entity: '#(entity)'
然后你可以从文件中读取它:
* def mpRequestJson = read('my.json')
但在 read
之前,您应该初始化必须替换的变量。所以你会有一些额外的行。
* def entity = '<entity>'
减少额外行的一种方法是创建临时文件 JSON:
* def data = { entity: '<entity'>, phone: '<updategetPhonePref>' }
然后你可以在 JSON:
entity: '#(data.entity)'
也请阅读 data driven tests 上的文档。