- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我必须将我的 WebService 响应与其下游服务进行比较。但是,我的响应和下游响应中的 ID 并不相同。我在下面给出示例响应。同样,一个是 REST 服务,另一个是 SOAP 服务,但是我可以进行类型转换(这不是问题)
MyWebService 响应:
"myWebServiceResponse": {
"webServiceSummary": {
"service": {
"serviceCd": "ABCD",
"serviceDescription": "Checking Main Service",
"hypotheticalInd": "100.0",
"realInd": "200.0"
},
"includeServicesList": [
{
"serviceCd": "XYZ",
"serviceDescription": "Checking AddOn Service",
"hypotheticalInd": "50.0",
"realInd": "60.0"
},
{
"serviceCd": "PQRS",
"serviceDescription": "Checking SecondAddOn Service",
"hypotheticalInd": "100.0",
"realInd": "200.0"
}
]
}
"myDownstreamResponse": {
"webServiceDetail": {
"feature": {
"featureCd": "ABCD",
"featureName": "Checking Main Service",
"imaginaryInd": "100.0",
"actualInd": "200.0",
"extraInd1": "someRandomValue1",
},
"includefeatureList": [
{
"featureCd": "PQRS",
"featureName": "Checking SecondAddOn Service",
"imaginaryInd": "100.0",
"actualInd": "200.0",
"extraInd1": "someRandomValue1",
"extraInd2": "someRandomValue1"
},
{
"featureCd": "XYZ",
"featureName": "Checking AddOn Service",
"imaginaryInd": "50.0",
"actualInd": "60.0",
"extraInd1": "someRandomValue1",
"extraInd2": "someRandomValue1"
}
]
}
最佳答案
一个更简单的例子可以让你更好地理解这个概念,特别是 karate.map()
甚至可以用于嵌套的 JSON 结构,请参见此处:https://stackoverflow.com/a/65036047/143475
并阅读文档:https://github.com/intuit/karate#json-transforms
* def response =
"""
{
"webServiceSummary":{
"service":{
"serviceCd":"ABCD",
"serviceDescription":"Checking Main Service",
"hypotheticalInd":"100.0",
"realInd":"200.0"
},
"includeServicesList":[
{
"serviceCd":"XYZ",
"serviceDescription":"Checking AddOn Service",
"hypotheticalInd":"50.0",
"realInd":"60.0"
},
{
"serviceCd":"PQRS",
"serviceDescription":"Checking SecondAddOn Service",
"hypotheticalInd":"100.0",
"realInd":"200.0"
}
]
}
}
"""
* def source =
"""
{
"webServiceDetail":{
"feature":{
"featureCd":"ABCD",
"featureName":"Checking Main Service",
"imaginaryInd":"100.0",
"actualInd":"200.0",
"extraInd1":"someRandomValue1"
},
"includefeatureList":[
{
"featureCd":"PQRS",
"featureName":"Checking SecondAddOn Service",
"imaginaryInd":"100.0",
"actualInd":"200.0",
"extraInd1":"someRandomValue1",
"extraInd2":"someRandomValue1"
},
{
"featureCd":"XYZ",
"featureName":"Checking AddOn Service",
"imaginaryInd":"50.0",
"actualInd":"60.0",
"extraInd1":"someRandomValue1",
"extraInd2":"someRandomValue1"
}
]
}
}
"""
* def feature = source.webServiceDetail.feature
* set expected.webServiceSummary.service
| path | value |
| serviceCd | feature.featureCd |
| serviceDescription | feature.featureName |
| hypotheticalInd | feature.imaginaryInd |
| realInd | feature.actualInd |
* def mapper = function(x){ return { serviceCd: x.featureCd, serviceDescription: x.featureName, hypotheticalInd: x.imaginaryInd, realInd: x.actualInd } }
* def expectedList = karate.map(source.webServiceDetail.includefeatureList, mapper)
* set expected.webServiceSummary.includeServicesList = '#(^expectedList)'
* print expected
* match response == expected
关于 Karate - 匹配两个动态响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53118601/
在使用 karate map 比较 XML 和 JSON 响应时,如果我在代码下方运行,我得到,TypeError: karate.map is not a function。这和我之前的questi
这个问题在这里已经有了答案: Karate framework retry until not working as expected (1 个回答) 去年关闭。 Karate 测试框架中的重试机制
我需要对 JSON 响应的结果执行两个操作。所以我们可以在单个 JS 文件中进行这些不同的操作吗?或者我们是否需要像一个 JS 文件那样为一项操作进行映射。 请帮忙解决这个问题 最佳答案 我不建议尝试
我需要在 URL 中传递多个同名的查询参数,但在让它与 Karate 一起使用时遇到问题。就我而言,URL 应如下所示: http://mytestapi.com/v1/orders?sort=ord
我需要在 URL 中传递多个同名的查询参数,但在让它与 Karate 一起使用时遇到问题。就我而言,URL 应如下所示: http://mytestapi.com/v1/orders?sort=ord
这个问题在这里已经有了答案: Tag logic for Parallel Run (1 个回答) 关闭 1 年前。 我有一个端到端的测试套件,其功能标有@e2e 标签。这些功能位于不同的模块中,即
这个问题在这里已经有了答案: Calling feature file with multiple arguments (1 个回答) 关闭 1 年前。 我正在将参数传递给 karate.call,
将 karate 配置为在任何场景失败时停止执行的最佳方法是什么? 我看到了 karate.abort() 但我认为它只会中止该特定场景。 我想中止整个特征文件的执行。 最佳答案 目前还不支持。直到现
任何人都可以帮助我重新运行 Karate 中失败的功能。下面是用于并行的 cucumber 选项和运行器测试 - @CucumberOptions(features = "classpath:feat
目标:匹配 check 值对于 API 中的 123S 和 123O 响应是正确的 首先检查此位置 x.details[0].user.school.name[0].codeable.text 的值是
为了测试我运行的 Karate 中的特定功能: mvn test -Dkarate.options="classpath:myfeature.feature" 有没有办法运行定义到功能中的单个场景?
我正准备用 Karate 进行一个小演示,我有以下 git 项目 https://github.com/TheRasanjana/karateTesting .我正在构建一个具有多种功能的测试套件。我
我正在点击 JIRA API 以根据周期名称获取周期 ID API : http://localhost:8080/rest/zapi/latest/cycle?projectId=78654&ver
我正在尝试编写一些空手道测试来检查某些预期结构的响应。例如,有一个看起来像这样的对象: { 'true|true':'disabled', 'true|false':'locked', '
使用以下测试用例 Background: * callonce read('auth.feature') * url java.lang.System.getenv('TEST_URL
我有一个像下面这样的对象数组。 "possibleValues": [ { "unitGroup": "A",
在空手道框架中执行功能文件时,将在模拟器中打开 Google URL。 但是由于以下原因,我得到的测试用例失败了: 17:49:10.459 [ForkJoinPool-1-worker-1] DEB
首先,感谢 build karate,它对测试 API 和 UI 非常有用。我们正在使用它来测试我们的许多端点,但我们想知道是否有一种方法或哪种方法是处理 header 中包含签名的请求的最佳方法。
我想使用 KARATE 框架的数据驱动功能为 JSON 中的某些元素动态设置值(从文件读取)。以下是更多详细信息: request.json -> { wheels : , color: '' } 功
我们可以通过在命令行中包含以下内容来选择多个场景:-Dcucumber.options="--tags @S1,@S2,@S6" 如果我想排除@S6,我可以:-Dcucumber.options="-
我是一名优秀的程序员,十分优秀!