我想运行独立的wiremock jar文件,并在用户点击特定网址后发送一些json数据。
我创建了一个示例json文件并将其放在我的应用程序的映射目录中。
sample.json
{
"request":
{
"url": "/data?date=date",
"method": "GET",
"queryParameters" : {
"date" : {
"matches" : "^\\d{4}-\\d{2}-\\d{2}$"
}
}
},
"response":
{
"status": 200,
"headers":
{
"Content-Type" : "application/json"
},
"body": "[{\"a\":\"A\",\"b\":\"B\",\"c\":\"C\"},{\"a\":\"A\",\"b\":\"B\",\"c\":\"C\"}]"
}
}
我想在浏览器中ping下面的url,以便我可以在浏览器上获得json响应。
已编辑的网址
192.168.0.5:8080/data?date=2017-02-02
我正在使用以下命令来运行我的应用程序 -
java -jar wiremock-standalone-2.6.0.jar
我想将查询参数日期值与请求的查询参数日期值匹配。
我无法在浏览器中看到json响应,因为它无法识别请求的URL。
在编写映射json文件时我缺少什么?
如何编写查询参数以便识别我的输入请求并在浏览器上提供json响应?
答案 0 :(得分:3)
问题在于您如何设置网址格式。您可以直接在url部分或queryParameters块中指定查询参数,但不能同时指定两者。
尝试: “urlPath”:“/ data”
答案 1 :(得分:0)
在我的情况下,我有一个常量字符串查询参数,我使用此方法:
@Rule
public WireMockRule wireMockRule = new WireMockRule(8080);
...
private void stubApiEndPoint() {
stubFor(get(urlEqualTo("/api/users?id=123&name=Tom"))
.willReturn(aResponse()
.withStatus(200)));
}
答案 2 :(得分:0)
一种方法是使用正则表达式
mockMvc.perform(get(uri)).withQueryParam("query_param_name", matching("^(.*)wiremock([A-Za-z]+)$"))
。
我们也可以将正则表达式用于查询参数名称,以便它可以模拟任何查询参数名称及其值。