我创建了一个存根来测试API说:http://localhost:8080/test/ {customerName}
使用wiremock如下:
wireMock.stubFor(get(urlPathMatching(/test/([A-Z0-9]{10})))
.willReturn(aResponse().withStatus(OK).withBody("Hello World!"))
);
我需要做两件事:
我尝试扩展wiremock->自定义请求匹配器,但无法实现上述任何一项。
在第一个问题是您甚至无法使用stubFor(get(url...
创建存根您必须使用名称为自定义请求匹配器的stubFor(requestMatching..
创建。
标准功能将能够匹配URL的customer
部分并在响应中重用它。在下面的JSON示例中,这是实现的:
{
"request": {
"method" : "ANY",
"urlPattern": "/test/([a-z]*)"
},
"response": {
"status": 200,
"body": "Hello World: {{request.path.[1]}}",
"transformers": ["response-template"]
}
}
发送请求:http://localhost:8080/test/someclientname
将导致以下响应:Hello World: someclientname
。
可以创建自定义响应模板,该模板使用标准响应模板手柄功能来解析参数并使用该信息来获取特定文件,或者在不可用时使用通用文件。在高层次上,这个想法在WireMock Google Groups post中被描述。