部署自己的MOCK(一)

简介: 本文适合团队内部没有MOCK服务,对mock有实际需要的小伙伴。

一、前言


本文基于开源项目:

https://github.com/easy-mock/easy-mock

  

我们在进行新项目开发、或者项目迭代开发,有些时候我们前端先一步开发完页面,就需要等待后端伙伴开发完成才可以联调。如果有个Mock服务我们就可以先一步验证我们页面的功能,提早发现并完成调整优化。 

 

使用Mock的好处有很多,这里就不啰嗦了。    


新项目一般我们直接调用Mock的api url即可,对于一些迭代开发的项目,我们既可以调用之前联调好的自己服务api,同时也可以调用我们的Mock,两者同时访问并不冲突的。有很多种处理方式,例如我们通过url上进行一些特定的处理即可。
 

广东靓仔在18年的时候分享过这方面的内容,这里给小伙伴们重温下。
业界有不少关于MOCK这方面的应用,列举几个:

  • Mock
  • RAP
  • NEI
  • EASY MOCK
  • api blueprint


   严谨的技术团队一般会选择本地部署自己的Mock服务

   这里广东靓仔主要讲EASY MOCK本地部署、以及它的语法


二、easy-mock拥有的特性


  • 支持API代理
  • 便捷的快捷方式
  • 支持协同编辑
  • 支持团队项目
  • 支持RESTful
  • 支持Swagger | OpenAPI规范(1.22.03.0
  • 基于Swagger快速创建项目
  • 支持显示参数和返回值
  • 支持显示类模型
  • 响应数据更加灵活和可扩展
  • 支持自定义响应配置(例如:状态/标题/ cookie)
  • 使用Mock.js模式
  • 支持restc预览API

这些特性都是官方列举出来的,大家有兴趣可以去看官方文档。


三、easy-mock本地部署


   要私有部署easy-mock,我们需要安装Node.jsv8.x,不支持v10.xMongoDB> = v3.4)以及 REdis> = v4.0)。    


具体安装方式大家可以网上找对应的版本进行安装,这里就不展开了。安装完以上三个东东,我们安装最主要的easy-mock,操作如下


$ git clone https://github.com/easy-mock/easy-mock.git
$ cd easy-mock && npm install

 

接着我们配置一下,查找config / default.json或创建config / local.json覆盖某些配置。配置有很多,有兴趣可以自行查看,这里简单的配置参考如下


{
  "port": 7300,
  "host": "0.0.0.0",
  "pageSize": 30,
  "proxy": false,
  "db": "mongodb://localhost/easy-mock",
  "unsplashClientId": "",
  "redis": {
    "keyPrefix": "[Easy Mock]",
    "port": 6379,
    "host": "localhost",
    "password": "",
    "db": 0
  },
  "blackList": {
    "projects": [], // projectId, e.g."5a4495e16ef711102113e500"
    "ips": [] // ip, e.g. "127.0.0.1"
  },
  "rateLimit": { // https://github.com/koajs/ratelimit
    "max": 1000,
    "duration": 1000
  },
  "jwt": {
    "expire": "14 days",
    "secret": "shared-secret"
  },
  "upload": {
    "types": [".jpg", ".jpeg", ".png", ".gif", ".json", ".yml", ".yaml"],
    "size": 5242880,
    "dir": "../public/upload",
    "expire": {
      "types": [".json", ".yml", ".yaml"],
      "day": -1
    }
  },
  "ldap": {
    "server": "", // Set server to enable LDAP login. e.g. "ldap://localhost:389" or "ldaps://localhost:389"(use SSL)
    "bindDN": "", // Username,e.g. "cn=admin,dc=example,dc=com"
    "password": "",
    "filter": {
      "base": "", // Base where we can search for users,e.g. "dc=example,dc=com"
      "attributeName": "" // e.g. "mail" or "email" etc.
    }
  },
  "fe": {
    "copyright": "",
    "storageNamespace": "easy-mock_",
    "timeout": 25000,
    "publicPath": "/dist/"
  }
}


部署,官方建议使用PM2,操作如下


全局安装PM2

$ [sudo] npm install pm2 -g


通过PM2启动


应该在此步骤之前运行build

$ NODE_ENV=production pm2 start app.js


当我们完成以上操作后,启动服务,在页面访问,会看到以下页面:

image.png

image.png


   当然,我们得做点什么,让页面看起来高大上一点。我们可以对这个页面的改造,比如我们把logo换成我们自己团队的,把里面的一些不经常用的入口屏蔽了。在里面增加一些其他操作都是可以的,别把应用搞崩即可。     我们改造完成之后,重新打包,更新服务就可以看到效果了。
相关文章
|
前端开发
什么是 Mock 测试?掌握 Mock 测试的核心原理
Mock 的意思就是,当你很难拿到源数据时,你可以使用某些手段,去获取到跟源数据相似的假数据,拿着这些假数据,前端可以先行开发,而不需要等待后端给了数据后再开发。
|
XML 前端开发 测试技术
【前端小技巧】如何使用 Eolink Apilkit 调用 Mock ?
在开发过程中,进度比较赶的情况下,前端人员当页面写完时,后台的接口还没写完,等要交付的时候后端才把接口给你,这个时候就很尴尬。 这个时候 Mock 就可以很好的解决这个问题,前端团队可以在 API 还没开发完成的情况下,借助 Mock API 实现预对接,加速开发进程。测试团队可以通过 Mock API 解决不必要的系统,完成集成测试。 Eolink Apikit 为前端工程师提供 API 文档管理,快速接口测试,以及 Mock API 创建与调用,及查看文档变更历史的能力。有助于前端工程师快速查看 API 文档详情与历史记录,快速生成和使用 Mock API 提前进行页面效果验证。
65 0
|
2月前
|
存储 缓存 NoSQL
webFilter实现mock接口
这段代码实现了一个名为 `MockFilter` 的类,继承自 `WebFilter` 接口,用于处理 HTTP 请求和响应。它通过从 Redis 缓存中获取配置信息来决定是否使用模拟数据或缓存数据来响应请求。如果开启了生产模式或关闭了模拟和缓存功能,则直接放行请求。否则,它会检查请求体并根据配置返回相应的模拟或缓存数据。同时,该过滤器支持对响应结果进行处理,并将结果存储回 Redis 中。
|
4月前
|
测试技术
详解单元测试问题之处理@Mock注解时mock对象的创建如何解决
详解单元测试问题之处理@Mock注解时mock对象的创建如何解决
41 1
|
4月前
|
前端开发
什么是 Mock 测试?
Mock 是在前后端分离开发中,用于模拟后端数据的工具,让前端能提前开发而无需等待真实接口。它的重要性在于加速协同开发,避免因数据延迟导致的阻塞。通过工具如 Apifox,可以创建请求,设定 Mock 参数和测试脚本,进行 Mock 测试以确保数据符合预期。了解 Mock.js 语法有助于更好地进行 Mock 测试。
|
6月前
|
JavaScript 数据安全/隐私保护
Mock
Mock
85 0
|
前端开发 JavaScript 测试技术
【Eolink Apikit】Mock 解决方案
在开发过程中,由于后端与前端并行开发,或者前端需要等待后台开发,难以保证对接效率,同时即使用开发好的 API 对接,也有可能一个 API 不通就阻塞了整个软件的对接工作。同时对软件的敏感度也很高,一不小心就可能导致整个软件不能正常工作。并且界面之间存在着严重的相互依赖关系,产生的业务逻辑非常复杂,这些都会对软件的开发效率产生很大的影响。 所以学习如何利用最好的 Mock 数据是很关键的。这样做会降低前端开发者的工作量,降低开发费用,提高开发效率。 以下是一些常见的 Mock 方法,我们可以根据具体的场景和条件来进行选择和配置。最关键的是要知道如何去做,并从中挑选出最适合自己的方式。
297 0
【Eolink Apikit】Mock 解决方案
|
数据可视化 前端开发 Java
Mock工具介绍,为什么使用Mock?
Mock工具介绍,为什么使用Mock?
587 0
部署自己的MOCK(二)
本文适合团队内部没有MOCK服务,对mock有实际需要的小伙伴。
|
敏捷开发 设计模式 Java
mock打桩之EasyMock
TDD是测试驱动开发(Test-Driven Development)的英文简称,是敏捷开发中的一项核心实践和技术,也是一种设计方法论。TDD的原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。TDD虽是敏捷方法的核心实践,但不只使用于XP(Extreme Programming),同样可以适用于其他开发方法和过程。
mock打桩之EasyMock