场景测试

WireMock 中一个很有用的高级特性是支持场景配置,场景是通过状态机来触发,默认状态是 STARTED,通过设置场景(设置 scenarioName )可以在触发后变更新的状态(设置 requiredScenarioState),并根据新的状态(设置 requiredScenarioState )来实现灵活匹配。比如下例就是一个对同一地址重复发送请求返回不同响应的场景配置。

  1. 添加第一个场景规则

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    {
    "scenarioName": "delete book",
    "requiredScenarioState": "Started",
    "newScenarioState": "deleted",
    "request": {
    "method": "DELETE",
    "url": "/api/book/1"
    },
    "response": {
    "status": 200,
    "jsonBody" : {"message":"删除成功"}
    }
    }

    image-20201012194911017

  2. 在添加一个场景规则

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    {
    "scenarioName": "delete book",
    "requiredScenarioState": "deleted",
    "request": {
    "method": "DELETE",
    "url": "/api/book/1"
    },
    "response": {
    "status": 404,
    "jsonBody" : {"error":"未找到资源"}
    }
    }

    image-20201012195039118

  3. 验证,请求接口:

    image-20201012195124887

    再次请求

    image-20201012195201861