我需要使用wiremock来测试发送这样的数据的POST请求:
{
"name": "known fixed value",
"dateOfBirth": 5123456789000,
"email": "known fixed value",
"currentDate": any numeric value,
"status": any text value with alphabets, numbers and symbols
}
前3个字段,名称,dateOfBirth和电子邮件是固定的,已知值,不会从一个请求更改为下一个请求。
最后两个字段currentDate和status从一个请求随机变换到下一个请求,但是是可以保存任何值的必填字段。
如何设计测试它的映射?
提前致谢。
答案 0 :(得分:1)
您可以使用JsonPath regex request body matcher,例如在您的情况下,您应该使用此JsonPath:
$[?(@.name == 'known fixed value' && @.dateOfBirth == 5123456789000 && @.email == 'known fixed value' && @.currentDate =~ /[0-9]*/i && @.status =~ /.*/i)]
这将匹配示例请求正文:
{
"name": "known fixed value",
"dateOfBirth": 5123456789000,
"email": "known fixed value",
"currentDate": 23123,
"status": "rfjhg33443"
}
答案 1 :(得分:0)
如果使用JSON存根,则可以编写
"request": {
"bodyPatterns": [
{
"equalToJson": {
"name": "known fixed value",
"dateOfBirth": 5123456789000,
"email": "known fixed value",
"currentDate": "${json-unit.any-number}",
"status": "${json-unit.any-string}"
}
}
]
}
引用:http://wiremock.org/docs/request-matching/中的“占位符”部分