我需要使用wiremck来测试发送如下数据的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个字段,name、dateOfBirth和email是固定的已知值,不会从一个请求更改到下一个请求。
最后2个字段,当前日期和状态从一个请求随机更改到下一个请求,但它们是可以保存任何值的必填字段。
如何设计一个测试这个的映射?
提前感谢。
您可以使用JsonPath正则表达式请求正文匹配器,例如,在您的案例中,您应该使用以下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"
}
如果你用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/