mockserver实践:本地启动以命令行方式运行,实现挡板和转发

mockserver

官网学习地址 https://www.mock-server.com/#what-is-mockserver

mockserver下载和启动

下载

官网下载jar包 https://www.mock-server.com/where/downloads.html
本次实践所用jar包 mockserver-netty-5.14.0-shaded.jar

本地启动

需要先准备好jave环境

1.普通启动

java -jar mockserver-netty-5.14.0-shaded.jar -serverPort 1080 -logLevel INFO
##-serverPort 后跟端口号
##-logLevel设置日志类型

在这里插入图片描述

2.带有初始化文件/设置记录数据文件启动

java -Dmockserver.watchInitializationJson=true -Dmockserver.initializationJsonPath=挡板规则.json -Dmockserver.persistExpectations=true -Dmockserver.persistedExpectationsPath=挡板规则.json -jar mockserver-netty-5.14.0-shaded.jar -serverPort port -logLevel INFO
##-Dmockserver.watchInitializationJson=true   --要初始化
##-Dmockserver.initializationJsonPath=挡板规则.json    --初始化挡板规则的文件,启动时可以直接加载
##-Dmockserver.persistExpectations=true --实现数据持久化,在mockserver启动后设置的挡板规则时会直接记录下来
##-Dmockserver.persistedExpectationsPath=挡板规则.json --保存挡板规则的json文件

验证是否启动成功

打开前端日志 http://localhost:1080/mockserver/dashboard
mockserver实践:本地启动以命令行方式运行,实现挡板和转发_第1张图片
看到这个界面就算启动成功啦~

设置挡板规则-即创建expectations

1.postman

put方法 url: http://localhost:1080/mockserver/expectation
body里写规则,json格式
规则内容示例:

{
  "id": "test_mock", //id唯一,id重复时会直接更新之前设置的规则
  //请求体规则
  "httpRequest" : {
    "path" : "/test1",  //路径, host:port/test1
    "method":"POST"     //方法
  },
  //预期响应报文
  "httpResponse" : {
    "body" : {
    "status": 200,
    "result": "Welcome to mock server!"
    }
  },
  "priority" : 0    //优先级,数值越大优先级越高
}

mockserver实践:本地启动以命令行方式运行,实现挡板和转发_第2张图片
日志里也可以看到创建记录
mockserver实践:本地启动以命令行方式运行,实现挡板和转发_第3张图片

2.命令行

curl -v -X put "http://localhost:1080/mockserver/expectation" -d "规则"
##这里的规则=postman body里的内容

3.记在规则文件里,然后以上面说的第二种启动方法重新启动

[
	规则1, //postman body里的内容
	规则2,
	......
]

创建好就可以用postman调用试试效果
mockserver实践:本地启动以命令行方式运行,实现挡板和转发_第4张图片

常见规则的一些写法

匹配路径/方法/body里是否包含某个字符串
设置预期响应报文/转发
更多写法可以在官网上学习~~

 { "httpRequest" : {
    "method" : "方法类型",//支持正则匹配
    "path" : "调用路径",
    //匹配body里是否包含某个字符串
    "body" : {
      "type" : "STRING",
      "string" : "YXDTK",
      "subString" : true
    }
  },
  //挡板,预期响应报文
  "httpResponse" : {
    "body" : {
      "status" : 200,
      "result" : "Welcome to mock server!"
    }
  },
  //转发
  "httpForward":{
  	"host":"ip",
  	"post":port,
  	"scheme":"HTTP"
  },
  
  "id" : "test_mock", //id唯一,id重复时会直接更新之前设置的规则
  "priority" : 0    //优先级,数值越大优先级越高
}

你可能感兴趣的:(软件测试,mockserver,挡板,单元测试)