如何将线程模式POST请求与一些可选的JSON参数匹配&任何价值观?

时间:2017-10-30 15:52:54

标签: 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
}

前3个字段,名称,dateOfBirth和电子邮件是固定的,已知值,不会从一个请求更改为下一个请求。

最后两个字段currentDate和status从一个请求随机变换到下一个请求,但是是可以保存任何值的必填字段。

如何设计测试它的映射?

提前致谢。

2 个答案:

答案 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/中的“占位符”部分