Wiremock 查询参数 JSON 存根文件

Rob*_*eau 4 java stub wiremock

我正在尝试使用 wiremock JSON 存根文件模拟查询参数。

当我这样做时它会起作用:

{
  "request": {
    "method": "GET",
    "url": "/posts?id=1",
  },
//...
}
Run Code Online (Sandbox Code Playgroud)

但是,当我更改查询参数以使用这样的专用字段时,它不再起作用:

{
  "request": {
    "method": "GET",
    "urlPath": "/posts",
    "queryParameters": {
      "id": {
        "equalTo": "1"
      }
    }
  },
  //...
}
Run Code Online (Sandbox Code Playgroud)

知道为什么吗?

测试请求看起来像http://some-host/posts?id=1

Dea*_*ool 7

这对我有用,改变你的"urlPath""urlPathPattern"但在构造这个时要小心JSONurlPath精确匹配模式urlPathPattern也是如此,但路径和查询参数上的正则表达式匹配

  {
        "request": {
            "urlPathPattern": "/posts",
            "method": "GET",
            "queryParameters": {
                "id": {
                    "equalTo": "1"
                }
            }
        },
        "response": {
            "status": 200,
            "body":"This is successful"
        }
    }
Run Code Online (Sandbox Code Playgroud)


Sag*_*wal 7

您可以尝试用urlPathPattern代替urlPath.

正如这里所说,urlPath 用于精确匹配,而 urlPathPattern 用于regex.

因此,在 QueryParameter 中使用urlPathPattern您的查询即可得到解析。

{
  "request": {
    "method": "GET",
    "urlPathPattern": "/posts",
    "queryParameters": {
      "id": {
        "equalTo": "1"
      }
    }
  },
  //...
}
Run Code Online (Sandbox Code Playgroud)

尝试并理解以下Wiremock的概念。