我正在尝试为我的登录过程创建模拟。我使用带有几个字段和登录对象(带有登录名、密码等)的POST方法,为此我使用了JsonPath。下面的代码:
{
"request": {
"method": "POST",
"url": "/login",
"bodyPatterns" : [
{"matchesJsonPath" : "$.method"},
{"matchesJsonPath" : "$.params[?(@.clientVersion == "1")]"},
{"matchesJsonPath" : "$.params.login"},
{"matchesJsonPath" : "$.params.password"}
]
},
"response": {
"status": 200,
"bodyFileName": "login.json"
}
}
我正在检查clientVersion,因为它与示例相似。
我的问题是,与te给定POSTJSON:
{
"method": "login",
"params": {
"clientVersion": "1",
"login": "test@test.com",
"password": "681819535da188b6ef2"
}
}
我收到404。然而,当我改变
{"matchesJsonPath" : "$.params[?(@.clientVersion == "1")]"},
到正常
{"matchesJsonPath" : "$.params.clientVersion"},
一切都很好。
那么-如何检查内部wiremck,使用matchesJsonPath如果给定字段等于一些值?如何将它应用到根字段像方法在我的情况下?当我们在它-我有类似的问题,检查是否值不为空。我试图应用正则表达式等-没有运气。
它在我的情况下起作用:
威雷洛克:
"request": {
"urlPathPattern": "/api/authins-portail-rs/authins/inscription/infosperso",
"bodyPatterns" : [
{"matchesJsonPath" : "$[?(@.nir == '123456789')]"},
{"matchesJsonPath" : "$[?(@.nomPatronyme == 'aubert')]"},
{"matchesJsonPath" : "$[?(@.prenoms == 'christian')]"},
{"matchesJsonPath" : "$[?(@.dateNaissance == '01/09/1952')]"}
],
"method": "POST"
}
Json:
{
"nir": "123456789",
"nomPatronyme": "aubert",
"prenoms": "christian",
"dateNaissance": "01/09/1952"
}
以下为我工作。
"matchesJsonPath" : "$.rootItem. itemA[0].item…[?(@.field dName=='file')]"
Json:
{
"rootItem" : {
"itemA" : [
{
"item" : {
"fieldName" : "file",
"name" : "test"
}
}
]
}
}
威雷洛克
{
"request" : {
"urlPattern" : "/testjsonpath",
"method" : "POST",
"bodyPatterns" : [ {
"matchesJsonPath" : "$.rootItem.itemA[0].item..[?(@.fieldName=='file')]"
} ]
},
"response" : {
"status" : 200,
"body" : "{\"result\": \"success\"}",
"headers" : {
"Content-Type" : "application/json"
}
}
}
更新Wiremck。它应该适用于较新版本
使用双点运算符在语义上是不一样的,因为过滤器也将匹配树深处同名的元素。