搭建Mock Server

1.为什么要搭建mock-server?

为了更好的分工合作,让前端能在不依赖后端环境的情况下进行开发,其中一种手段就是为前端开发者提供一个 web 容器,这个本地环境就是 mock-server。

目前很多前端 mock 数据的方案的基本流程都是使用 node.js 来模拟 http 请求,配置 router 返回 mock 数据。

一个比较好的 mock-server 该有的能力:

1.与线上环境一致的接口地址,每次构建前端代码时不需要修改调用接口的代码

2.所改即所得,具有热更新的能力,每次增加 /修改 mock 接口时不需要重启 mock 服务,更不用重启前端构建服务

3.能配合 Webpack

4.mock 数据可以由工具生成不需要自己手动写

5.能模拟 POST、GET 请求

6.简单(包括:文件结构简单、编写代码简单)

2.我们mock server 服务器

1.就是一个基于Node的 Express web 搭建的一个本地server。

2.数据mock的思路就是在这个本地server端进行,Promise 发出http请求,通过 router 返回mock数据。

3.与线上环境一致,前端代码构建和接口服务是分开独立的

app.listen(3001, () => {

debug(`The fake API server is listening on ${‘3001‘.rainbow}.`)

}) //启动一个服务并监听从 3001 端口进入的所有API连接请求

在webpack 配置中, 比较简单:

proxy: {

‘/api/*‘: {

target: `http://${host}:3001`,

secure: false,

},

将匹配 ‘/api/*’ 这种格式的API的域名重定向为 http://${host}:3001

4.具有热更新的能力,每次增加 /修改 mock 接口(入口api/index.js)时自动重启 mock 服务

nodemon 自动重启的工具 启动 mock server

5.mock 数据可以由工具生成不需要自己手动写,还能模拟 POST、GET 请求

用到LowDB,LowDB 基于Lo-Dash 中间件, 基于Node的纯Json文件数据库,LowDB支持 JSON Server 和 JSONPlaceholder.

dbs[entry] = low(`${entries[i]}/data.json`)

返回或者创建一个Lo-Dash包裹数组。然后,您可以使用这些方法: where, find, filter, sortBy, groupBy, ...和来自Underscore.db的方法

目录结构,根据大模块划分了mock数据目录结构,

每一个模块下,都有个schemas/*.js  Object类型 default 数据定义,然后JSON.stringify(data)转为JSON 字符串,同步写入data.json文件中。用到Faker.js 的一些API。 (mock一些不变的数据)

每一个模块下,都有routes/*.js , 每个模块都对应创建了 express.Router() 实例,在具体app.get(‘/’, (req, res)) 对应的URL 或 路由 来模拟POST 或者GET 请求 以及PUT和DELETE请求,固定的status code 对应了不同的error。

6.简单(包括:文件结构简单、编写代码简单)

如何在src (业务代码) 中调用mock server呢?

在src 下modules/*.js 中定义Promise 请求

export const myFun = () => ({

  type: MYFUN,

  promise: (dispatch, getStore, api) => api.get(URL.myFun)

})

URL 对应配置了不同环境的url 请求, 生产环境(真实),开发环境 (mock server 路由),测试环境(unit test)

时间: 2024-10-29 19:08:09

搭建Mock Server的相关文章

改造vue-cli,使用mockjs搭建mock server

关于 最近准备开发一款web应用,考虑到可能会有前后端并行开发的场景,所以决定使用mockjs做mock server. 浏览官网文档时发现没有跑在webpack上的例子,索性自己找方法解决. 什么是mockjs?他的使用场景是什么? 当前端工程师需要独立于后端并行开发时,后端接口还没有完成,那么前端怎么获取数据? 这时可以考虑前端搭建web server自己模拟假数据,mockjs用来生成随机数据,拦截 Ajax 请求. 下面引用mockjs官网的图片: 正文:如何改造vue-cli,将moc

Mock Server的搭建

一.概述 我们系统与第三方开票系统有交互,场景是我们系统请求第三方开票系统,第三方开票系统根据我们的请求数据,生成开票信息然后返回发票号或异常信息,我们根据返回的信息做对应的处理.因为配合上存在一些障碍,因此想要搭建个mock server,先验证己方系统的正确性. 什么是Mock Server ? 顾名思义,mock:模拟,mock server:实现 mock 功能的一个服务. Mock Server的作用? 下图很好的解释了Mock Server 位置和作用(图来自虫师的博客): 二.py

Python+Flask搭建mock api server

前言: 近期由于工作需要,需要一个Mock Server调用接口直接返回API结果: 假如可以先通过接口文档的定义,自己模拟出服务器返回结果,直接对接口基本功能进行联调测试并编写自动化测试脚本,等服务器上线之后,切换server地址,直接可以简化调试时间,缩短项目测试周期: 准备工作 Python安装 Flask安装:pip install flask Get 请求 简单的python代码 from flask import abort, jsonify, Flask, request, Res

Python接口测试实战5(下) - RESTful、Web Service及Mock Server

如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战2 - 使用Python发送请求 Python接口测试实战3(上)- Python操作数据库 Python接口测试实战3(下)- unittest测试框架 Python接口测试实战4(上) - 接口测试框架实战 Python接口测试实战4(下) - 框架完善:用例基类,用例标签,重新运行上次失败用例

搭建mock服务器(微信小程序)

搭建mock服务器(微信小程序) 如何在微信小程序使用mock.js实在是个问题,为了完全模拟访问路由和数据,选择在搭建本地mock服务器是一个不错的选择. 以下示例了一个mock服务器的搭建过程以及以学生为对象进行增删改查分页的示例. 前提要求 安装了node.js 创建服务器 我们在自己电脑上选择一个位置,创建一个新的文件夹mockServer,用vscode打开这个文件夹 使用命令安装以下模块 cnpm install express body-parser cors nodemon mo

用VLC搭建流媒体server

VLC开元项目相当强大,我们既能够将其作为播放核心用于二次开发,又能够将其作为高性能的流媒体server.今篇博客主要讲用VLC搭建流媒体server. VLC搭建流媒体server步骤非常easy:选择输入数据.选择输出格式.选择编码器.选择流通量.输入数据来源非常多,能够是本地文件,能够是网络流,能够是音频.甚至图片.编码器选择主要是选择音频编码器.视频编码器用以确定声音输出质量和图像质量.输出格式较多,能够是本地文件,能够是网络流,也能够是组播:流通量眼下保留.实际没有多少用处. 以下我用

从0开始搭建SQL Server AlwaysOn 第一篇(配置域控)

从0开始搭建SQL Server AlwaysOn 第一篇(配置域控) 网上的 AlwaysOn可以说是非常的多,也可以说是非常的千篇一律,而且很多都是搭建非常顺利的,没有坑的,难道搭建 AlwaysOn真的可以这麽顺利吗?????? 由于公司使用的是最新的Windows Server 2012 R2,网上用的都是Windows Server 2008 R2 ,2012 R2和2008 R2在故障转移集群界面菜单和AD 服务管理工具 已经有较大变化,有一些步骤跟Windows Server 20

在Windows Server 2012 R2中搭建SQL Server 2012故障转移集群

需要说明的是我们搭建的SQL Server故障转移集群(SQL Server Failover Cluster)是可用性集群,而不是负载均衡集群,其目的是为了保证服务的连续性和可用性,而不是为了提高服务的性能. SQL Server始终在负载均衡集群方面都缺少自己的产品,多由第三方厂家提供,但SQL Server故障转移集群却由来已久,在SQL Server 2012还提供了一个可用性组(AlwaysOn High Availability Groups)的新特性,我们知道微软的故障转移集群(W

怎样使用Mock Server

一,去这里https://github.com/dreamhead/moco 下载moco runner jar包 二,编写配置文件,并将配置文件和jar包放在同一个文件夹下(下面是config.json的内容) [ { "request" : { "uri" : "/" }, "response" : { "text" : "mock server started" } }, { &q