karate - 空手道 DSL_GET 每个参数有两个值。验证它们是否包含在响应中
问题描述
这是我的特点:
Feature: test
Background:
Given url baseUrl + pathApiSurvey
Scenario: filtro varios valores
Given path id_survey_erc,'controls',69, 'evidences'
And param nombre = 'postman,extorsion'
When method Get
* print response
Then status 200
And match response.status == 'success'
And match response.data !contains null
And match each response.id[*].nombre contains any 'postman','extorsion'
在我正在测试的 api 中,您可以通过逗号分隔的多个值过滤参数。通过我拨打的电话,它向我显示“名称”包含“邮递员”或“勒索”的记录
示例响应:
{
"status": "success",
"code": 200,
"current_page": 1,
"data": [
{
"id": 1,
"id_evidencia": 1,
"id_encuesta": 43,
"identificador": 2,
"tipo": 15,
"periodicidad": 1,
"fecha": 1633310022,
"activa": 1,
"nombre": "prueba evidencia modificada por postman",
"evidencia_modificada": 1
},
{
"id": 2,
"id_evidencia": 2,
"id_encuesta": 43,
"identificador": 2,
"tipo": 16,
"descripcion": null,
"ubicacion": null,
"size_evidencia": null,
"periodicidad": null,
"fecha": null,
"activa": 1,
"nombre": "evidencia 2 extorsion por amenaza C1",
"evidencia_modificada": 1
}
]
}
我无法通过组合条件逻辑和匹配包含来验证。有人可以帮助我。谢谢!
解决方案
这一行是一个解决方案:
* match each response..nombre == "#? _.includes('postman') || _.includes('extorsion')"
如果需要了解它的工作原理,请阅读文档,另请参阅:https ://stackoverflow.com/a/50350442/143475
推荐阅读
- debugging - ASP.NET Core 3.1 调试内置管道
- ruby-on-rails - 将 rails 5.0 升级到 rails 6.0.1 - 现有应用程序
- mysql - 在 SQL 中加入 3 个表时出现重复条目
- marklogic - Marklogic 中文档的时间戳
- mysql - 如何在 sequelize 中使用 mysql date_add 函数?
- angular - 如何让“ng serve”等待“ng build”完成使用 ng 库?
- block - 为什么“deleteBlocks”在 phpWord 中不起作用?
- javascript - 使用 html 和 javascript 在谷歌地图距离计算中删除 KM
- css - 如何最小化 Wordpress 的超级菜单和搜索框上方和下方的空间?
- intellij-idea - IntelliJ Kubernetes View 不显示任何集群信息