流量回放平台iMock前后端实践

mock平台

Posted by WS on July 30, 2021

1.发现一个宝

Jvm Sandbox和Repeater已经实践完了, 和朋友聊天说起一个个人的开源iMock平台, 有点意思, 随fork到本地研究一二.

翻看了项目代码, mock底层还是用的sandbox, 直接在项目中引用sandbox核心子项目mock-module, 然后iMock平台中搭建自己的后台服务, 提供给前端web mock使用, 可自定义配置通过web存入后端链接sql, 有一定复用性, 有点意思, 以下是本地搭建上手过程.

2.门脸儿很重要

没有前端的项目, 操作起来是很痛苦的, 尤其在这种需要具体操作到项目方法级别的用例.步骤如下:

  1. 安装Node 环境

  2. 下载项目https://github.com/WillingSasi/imock-web.git

  3. 进入项目 /src/config 配置后台地址

  4. 进入项目 运行 yarn install (需要安装yarn npm install yarn)

  5. 启动 运行 yarn start

    1
    2
    3
    4
    5
    6
    7
    8
    
    const config = {
        "appCode": "",
        "pageTitle": "",
        "service": "",
        "backendMap": {
            "test": "http://127.0.0.1:8003"
        },
    }
    

    成功如图:

    javascript

    javascript

3.后端服务

后端项目两大部分, imock后端服务部分, 和sandbox部分,

下载项目https://github.com/WillingSasi/imock.git

  1. imock后端服务:

​ 1.数据初始化, 就是用来存储mock配置的数据库, sql表单格式[bin/sql/], sql地址我配置的TX买的云数据库地址

javascript

​ 2.启动mock-web springboot start

1
2021-09-07 18:00:00.075  INFO 24386 --- [   scheduling-1] com.tester.jvm.mock.task.AppTask         : ====== heartbeatTask  任务开始 ======
  1. sandbox:

​ 1. 安装mock-module(默认会安装jvm-sandbox)

​ 2.本地安装 到项目下的bin目录执行 install-local.sh

​ 3.Mac的默认安装路径就是~/sandbox/, 配置文件~/.sandbox-module/

​ 4.~/.sandbox-module/cfg 修改mock.properties

1
2
3
4
5
6
7
8
# 心跳上报配置  当环境变量没有配置的时候使用 该配置

# mock 服务的地址和端口
mock.host=http://127.0.0.1:8003
# 标识目标应用的名称
app.name=demoOne
# 标识目标应用的环境
app.env=demoOne
  1. 目标服务配置:

    1.本地简单的springboot项目:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    ```java
    @RequestMapping("/sendMq")
        public String sendMq() {
    //        produceService.directSend("test");
            System.out.println(sandboxMessage("httpMessage"));
            return "Test Successful!";
        }
       
        public String sandboxMessage(String sandboxMessage) {
            return sandboxMessage;
        }
    ```
    

    2.启动参数加上环境参数等配置后启动

    1
    
    -Dmock.host=http://127.0.0.1:8003 -Dapp.name=demoOne -Dapp.env=demoOne
    

    javascript

4.使用mock

  1. 新增配置, 相当于sandbox中的挂载

    javascript

  2. 更新配置, 相当于sandbox中的激活

    javascript

  3. 浏览器调用localhost:8090/sendMq

  4. console中说明已成功

    javascript


%