问题描述
我需要什么时候第一次请求然后得到存根响应代码 = 401。
第二个 SAME 请求何时执行,然后获取存根响应代码 = 200。
为此,我使用场景。
{
"scenarioName": "Request transfer,401","requiredScenarioState": "Started","newScenarioState": "Triggered Once","request": {
"method": "POST","urlPattern": "/api/T2A"
},"response": {
"headers": {
"Content-Type": "application/json"
},"status": 401
}
}
{
"scenarioName": "Request transfer,200","requiredScenarioState": "Triggered Once","newScenarioState": "Started","status": 200,"bodyFileName": "VB/back/request_transfer.json"
}
}
什么时候第一次请求我得到存根响应 = 401。
不错。但是当第二个相同的请求 wiremock 返回错误代码 = 404 时。
Request was not matched
=======================
-----------------------------------------------------------------------------------------------------------------------
| Closest stub | Request |
-----------------------------------------------------------------------------------------------------------------------
|
POST | POST
/api/T2A | /api/T2A
|
|
-----------------------------------------------------------------------------------------------------------------------
2021-03-02 22:44:34.802 Request received:
127.0.0.1 - POST /api/T2A
{"MTS":"2be192ca-dabe-47b9-b","IDNP":"1"}
Matched response deFinition:
(no response deFinition configured)
Response:
HTTP/1.1 404
(no headers)
2021-03-02 22:44:34.805 Received request to /not-matched with body
为什么第二个 SAME 请求不返回存根响应状态 = 200?
解决方法
您的场景必须具有相同的名称。这就是 WireMock 识别映射属于该场景的方式。
您收到 404 错误,因为场景 Request transfer,401
和场景状态 Triggered Once
中没有映射。
将两个映射的场景名称更改为 Request transfer
将解决您的问题。