mockserver

mockserver

代理

模拟

新增接口

  • 接口路径 host:1080/mockserver/expectation

  • 请求类型

    • put
  • exceple

    • {
      “httpRequest” : {
      “path” : “/some/path”
      },
      “httpResponse” : {
      “body” : “some_response_body”
      },
      “times” : {
      “remainingTimes” : 1,
      “unlimited” : false
      },
      “timeToLive” : {
      “timeUnit” : “SECONDS”,
      “timeToLive” : 60,
      “unlimited” : false
      },
      “priority” : 10
      }
  • 请求体

    • 1 请求

      • httpRequest

        • path 路径

          • “path” : “/some.*” (按正则表达式匹配路径)
          • “path” : “!/some.*” (通过不匹配的路径)
        • pathParameters 路径参数

          • 匹配固定的值

            • “pathParameters”: {
              “cartId”: [“055CA455-1DF7-45BB-8535-4F83E7266092”]
              },
          • 路径参数正则表达式匹配

            • “pathParameters”: {
              “cartId”: ["[A-Z0-9\-]+"]
              }
          • 路径参数 使用json模式

            • “pathParameters”: {
              “cartId”: [{
              “schema”: {
              “type”: “string”,
              “pattern”: “1+$”
              }
              }],
              “maxItemCount”: [{
              “schema”: {
              “type”: “integer”
              }
              }]
              }
        • queryStringParameters 请求参数

          • 正则匹配 值

            • “queryStringParameters”: {
              “type”: ["[A-Z0-9\-]+"]
              }
          • 正则匹配 键

            • “queryStringParameters”: {
              “[A-z]{0,10}”: [“055CA455-1DF7-45BB-8535-4F83E7266092”]
              }
          • 请求参数 使用json模式

            • “queryStringParameters”: {
              “cartId”: [{
              “schema”: {
              “type”: “string”,
              “pattern”: “2+$”
              }
              }]
              }
          • 请求参数为可选参数 ?

            • “queryStringParameters”: {
              “?cartId”: ["[A-Z0-9\-]+"],
              “?maxItemCount”: [{
              “schema”: {
              “type”: “integer”
              }
              }],
              “?userId”: [{
              “schema”: {
              “type”: “string”,
              “format”: “uuid”
              }
              }]
              }
              }
        • headers

          • 匹配指定的头

            • “headers” : {
              “Accept” : [ “application/json” ],
              “Accept-Encoding” : [ “gzip, deflate, br” ]
              }
          • 不匹配指定的头

            • “headers” : {
              “!Accept” : [ “." ],
              “!Accept-Encoding” : [ ".
              ” ]
              }
          • 通过json模式匹配到指定的请求头

            • “headers”: {
              “Accept.*”: [{
              “schema”: {
              “type”: “string”,
              “pattern”: “^.gzip.$”
              }
              }]
              }
        • cookies

          • 匹配固定的cookie

            • “cookies” : {
              “session” : “4930456C-C718-476F-971F-CB8E047AB349”
              }
          • 使用json模式匹配

            • “cookies”: {
              “session”: {
              “schema”: {
              “type”: “string”,
              “format”: “uuid”
              }
              }
              }
          • 可选 cookis

            • “cookies”: {
              “?session”: {
              “schema”: {
              “type”: “string”,
              “format”: “uuid”
              }
              }
              }
        • body

          • 字符串匹配

            • “body” : {
              “type”: “STRING”,
              “string”: “some_string”,
              “subString”: true
              }

            • 指定编码类型

              • “body” : {
                “type” : “STRING”,
                “string” : “我说中国话”,
                “contentType” : “text/plain; charset=utf-16”
                }
          • 正则匹配

            • “body”: {
              “type”: “REGEX”,
              “regex”: “starts_with_.*”
              }
          • 表单方式提交

            • “body” : {
              “type” : “PARAMETERS”,
              “parameters” : {
              “email” : [ “joe.blogs@gmail.com” ],
              “password” : [ “secure_Password123” ]
              }
          • xpath 匹配

            • “body” : {
              “type” : “XPATH”,
              “xpath” : “/bookstore/book[price>30]/price”
              }

            • 不通过 xpath 匹配

              • “body” : {
                “type” : “XPATH”,
                “xpath” : “/bookstore/book[price>30]/price”
                }
          • “type” : “XML”,

          • json匹配 完全匹配

            • “body”: {
              “type”: “JSON”,
              “json”: {
              “id”: 1,
              “name”: “A green door”,
              “price”: 12.50,
              “tags”: [“home”, “green”]
              },
              “matchType”: “STRICT”
              }

              • STRICT,该模式匹配所有字段,数组顺序且不允许其他字段
              • ONLY_MATCHING_FIELDS仅匹配请求匹配器中提供的字段。
          • 使用 占位符 与 json匹配

            • “body” : {
              “type” : “JSON”,
              “json” : {
              “id” : 1,
              “name” : “A green door”,
              “price” : “ j s o n − u n i t . i g n o r e − e l e m e n t " , " e n a b l e d " : " {json-unit.ignore-element}", "enabled" : " jsonunit.ignoreelement","enabled":"{json-unit.any-boolean}”,
              “tags” : [ “home”, “green” ]
              }
              }
    • 2 响应

      • httpResponse

        • statusCode

        • reasonPhrase

        • headers

        • body

          • uutf16 主题的字面响应

            • “httpResponse”: {
              “headers”: {
              “content-type”: [“text/plain; charset=utf-16”]
              },
              “body”: {
              “type”: “BINARY”,
              “base64Bytes”: “/v9iEYv0Ti1W/Yvd”
              }
              }
          • 带有utf8 的json 响应

            • “body”: {
              “type”: “STRING”,
              “string”: “سلام”,
              “contentType”: “text/plain; charset=utf-8”
              }
          • 纯文本

            • “httpResponse” : {
              “body” : “some_response_body”
              }
          • json 类型

            • “httpResponse” : {
              “statusCode”: 200,
              “body” : {
              “type”: “JSON”,
              “json”: {“data”:[{“permitAssetDispose”:true,“serviceFee”:54.28,“overdueInterest”:350.45,“overdueAmount”:921.69,“guaranteeFee”:0,“loanContractAmount”:“4000”,“paySubject”:“HAOHUAN”,“overdueMgmtFee”:50.00,“otherFee”:0.00,“t0EarlyServiceFeeOverDueInterest”:0,“funderOverdueInterest”:0,“t0DivideServiceFee”:0,“commutation”:0,“principal”:462.34,“transfer”:false,“interest”:4.62,“fund”:“XWBANK”,“overdueDays”:673,“partnerLoanNo”:“c30c217f-015b-4692-ae60-979eb9ad6379”,“guaranteeDeposit”:0,“loanKey”:“F4FC91A4858E408FB94E6F03DA4A6D0F”,“earlyGuaranteeDepositServiceFee”:0,“startDate”:1548595446000,“t0EarlyServiceFee”:0}],“message”:“操作成功”,“status”:“000000”}
              }
              }
        • cookies

        • delay

          • {
            “timeUnit”: “SECONDS”,
            “value”: 10
            }
    • 3 . 优先级

      • priority

        • 整数
        • 负优先级可用于指定默认的期望或响应。
    • 4 . 次数

      • times

        • remainingTimes

          • 整数
        • unlimited

          • ture
          • false
        • atLeast

          • 最少
        • atMost

          • 最多
        • 是否是两次

          • “times”: {
            “atLeast”: 2,
            “atMost”: 2
            }
    • 5 连接时间

      • timeToLive

        • timeUnit

          • SECONDS
        • timeToLive

          • 整数
        • unlimited

          • ture
          • false

查询接口

  • 根据创建的的 接口配置的 接口路径进行查询

    • eg:
      http://172.17.17.135:1080 /account/ermas/overDueInfo

删除接口

  • 删除指定的接口

    • 根据类型删除接口

      • 请求地址

        • http://172.17.17.135:1080/mockserver/clear?type=EXPECTATIONS
      • 请求方式

        • PUT
      • 请求参数

        • {
          “path”: “/account/ermas/overDueInfo”
          }

          • path 对应的值为 需要删除的 uri
  • 删除全部的接口

    • http://172.17.17.135:1080/mockserver/reset

官网地址

https://mock-server.com/

日志地址

http:// host:1080//mockserver/dashboard

  • http://172.17.17.135:1080/mockserver/dashboard

github地址

https://github.com/mock-server/mockserver


  1. A-Z0-9- ↩︎

  2. A-Z0-9- ↩︎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值