我正在尝试为我的登录过程创建模拟。我将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,因为它与示例相似。
我的问题是,在给定POST JSON的情况下:
{
"method": "login",
"params": {
"clientVersion": "1",
"login": "[email protected]",
"password": "681819535da188b6ef2"
}
}
我收到404。
但是,当我改变
{"matchesJsonPath" : "$.params[?(@.clientVersion == "1")]"},
正常
{"matchesJsonPath" : "$.params.clientVersion"},
一切正常。
那么-如果给定字段等于某个值,如何使用matchesJsonPath检查wiremock内部?
在我的情况下,如何将其应用于像方法这样的根字段?
而当我们这样做时-我在检查该值是否不为null时遇到了类似的问题。我试图应用正则表达式,等等-没运气。
最佳答案
在我的情况下,它正在工作:
Wiremock:
"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"
}
杰森:
{
"nir": "123456789",
"nomPatronyme": "aubert",
"prenoms": "christian",
"dateNaissance": "01/09/1952"
}
关于json - 使用Wiremock匹配JsonPath中的数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28671753/