如何将wiremock POST 请求与一些可选的JSON 参数和任何值相匹配?

joh*_*gar 6 wiremock

我需要使用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
}
Run Code Online (Sandbox Code Playgroud)

前 3 个字段(姓名、出生日期和电子邮件)是固定的已知值,不会从一个请求到下一个请求而改变。

最后 2 个字段(currentDate 和 status)从一个请求到下一个请求随机变化,但它们是强制字段,可以保存任何值。

我如何设计一个测试这个的映射?

提前致谢。

Woj*_*tek 4

您可以使用JsonPath 正则表达式请求正文匹配器,例如在您的情况下您应该使用此 JsonPath:

$[?(@.name == 'known fixed value' && @.dateOfBirth == 5123456789000 && @.email == 'known fixed value' && @.currentDate =~ /[0-9]*/i && @.status =~ /.*/i)]
Run Code Online (Sandbox Code Playgroud)

这将匹配示例请求正文:

{
"name": "known fixed value",
"dateOfBirth": 5123456789000,
"email": "known fixed value",
"currentDate": 23123,
"status": "rfjhg33443"
}
Run Code Online (Sandbox Code Playgroud)