美文网首页
尝试 MockServer 吧

尝试 MockServer 吧

作者: 我是石巍 | 来源:发表于2020-06-15 13:20 被阅读0次

    背景就不赘述了,直接操作 GitHub 上 Star 数还挺高的 MockServer。其官网也详细介绍了 什么是 MockServer

    搭建启动

    我总是喜欢 docker 搭建服务器,因为确实很方便……

    docker-compose.yaml 如下:

    version: '2'
    services:
      mockserver:
        image: mockserver/mockserver
        container_name: mockserver
        ports:
          - 1080:1080
        environment:
          LOG_LEVEL: "DEBUG"
          SERVER_PORT: 1080
    

    利用 docker-compose 直接启动一个 MockServer

    docker-compose -f docker-compose.yaml
    

    定义接口预期

    • 简单的接口定义方法
      比如想定义一个登录接口,往 /mockserver/expectation 发送 PUT 请求,body 至少包含 httpRequesthttpResponse
      • httpRequest 定义接口的请求规则,包含 method path body
      • httpResponse 定义接口的返回规则,包含 statusCode body
    curl -v -X PUT "http://localhost:1080/mockserver/expectation" -d '{
      "httpRequest" : {
        "method": "POST",
        "path": "/login",
        "body": {
            "username": "will",
            "password": "myMockServer"
        }
      },
      "httpResponse" : {
        "statusCode": 200,
        "body" : {
          "title": "Login",
          "detail": "Login succeed"
        }
      }
    }'
    

    若该请求成功,会返回 201 Created

    测试接口

    按照定义好的接口规则发送请求

    curl -v -X POST "http://localhost:1080/login" -d '{
      "username" : "will",
      "password" : "myMockServer"
    }'
    

    该请求会按照预期返回 200 OK

    批量初始化预期接口规则

    但实际上如果在测试过程中总是用这种方式添加规则,很不便利,于是 MockServer 提供了 批量初始化的功能

    首先定义一个 json 列表文件,包含所有的接口规则

    [
      {
        "httpRequest" : {
          "method": "POST",
          "path": "/login",
          "body": {
              "username": "will",
              "password": "myMockServer"
          }
        },
        "httpResponse" : {
          "statusCode": 200,
          "body" : {
            "title": "Login",
            "detail": "Login succeed"
          }
        }
      }
    ]
    

    docker-compose 启动 MockServer 的 YAML 文件配置挂载该文件,并定义 MockServer 的配置环境变量 MOCKSERVER_INITIALIZATION_JSON_PATH

    version: '2'
    services:
      mockserver:
        image: mockserver/mockserver
        container_name: mockserver
        ports:
          - 1080:1080
        environment:
          LOG_LEVEL: "DEBUG"
          SERVER_PORT: 1080
          MOCKSERVER_INITIALIZATION_JSON_PATH: /config/initializerJson.json
        volumes:
          - ./initializerJson.json:/config/initializerJson.json
    

    启动成功之后,initializerJson.json 中定义的所有接口规则都已经配置完成。

    相关文章

      网友评论

          本文标题:尝试 MockServer 吧

          本文链接:https://www.haomeiwen.com/subject/vhjcxktx.html