空手道:用条件替换多个键值
Karate: Replacing multiple key values with conditions
根据 env 变量的值有以下 2 个响应。
如果 env = Prod,
[
{
"_": {
"name": "FA",
"icon-url": "https://test.com/static/images/air/partner.png"
},
"@": {
"code": "00"
}
},
{
"_": {
"name": "DA",
"icon-url": "https://test.com/static/images/air/partner.png"
},
"@": {
"code": "0D"
}
}]
我们想用 prod.com
替换 test.com
如果环境是 SIT
[
{
"code": "00",
"name": "FA",
"iconUrl": "https://test.com/static/images/air/partner.png"
},
{
"code": "0D",
"name": "DA",
"iconUrl": "https://test.com/static/images/air/partner.png"
}
]
这里的问题是两个响应中的 iconUrl 键名不同。
如果环境是 Prod,我们想用 'prod.com' 替换 icon-url 'test.com'
如果环境是 SIT,我们想用 'sit.com'
替换 iconUrl 'test.com'
有很多方法可以解决这个问题。首先请阅读关于保持测试简单的建议:
关于条件逻辑的思路,参考:
一种可能的方法是拥有预期结果的两份副本。并根据环境,加载正确的:
* match response = read('expected-' + karate.env + '.json')
否则,关于如何根据某些参数修改给定的 JSON,我会留给您作为家庭作业。请阅读: - 以及其他链接的答案。
根据 env 变量的值有以下 2 个响应。
如果 env = Prod,
[
{
"_": {
"name": "FA",
"icon-url": "https://test.com/static/images/air/partner.png"
},
"@": {
"code": "00"
}
},
{
"_": {
"name": "DA",
"icon-url": "https://test.com/static/images/air/partner.png"
},
"@": {
"code": "0D"
}
}]
我们想用 prod.com
替换 test.com如果环境是 SIT
[
{
"code": "00",
"name": "FA",
"iconUrl": "https://test.com/static/images/air/partner.png"
},
{
"code": "0D",
"name": "DA",
"iconUrl": "https://test.com/static/images/air/partner.png"
}
]
这里的问题是两个响应中的 iconUrl 键名不同。 如果环境是 Prod,我们想用 'prod.com' 替换 icon-url 'test.com' 如果环境是 SIT,我们想用 'sit.com'
替换 iconUrl 'test.com'有很多方法可以解决这个问题。首先请阅读关于保持测试简单的建议:
关于条件逻辑的思路,参考:
一种可能的方法是拥有预期结果的两份副本。并根据环境,加载正确的:
* match response = read('expected-' + karate.env + '.json')
否则,关于如何根据某些参数修改给定的 JSON,我会留给您作为家庭作业。请阅读: