测试API的模拟主要分以下2块
- 1.模拟服务器
- 2.模拟测试数据
一、模拟服务器解决方案
1).使用Apache开启 Web Server
Mac自己集成了Python和Apache
启动:sudo apachectl start
1 | 停止:sudo apachectl stop |
浏览器打开 http://127.0.0.1 可以看到 It works! 的页面.
- 使用本地回环测试地址http://127.0.0.1
- 使用http://locahost
mac下Apache的默认文件夹为/Library/WebServer/Documents
在该目录添加一个名为test.json文件
浏览器输入http://127.0.0.1/test 即可看到test.json文件内容
修改Apache目录
以上说的有点杂,折腾很久还是出现Forbidden You don't have permission to access / on this server.
上面说到了mac下Apache的默认文件夹为/Library/WebServer/Documents,该目录默认是隐藏的,操作不是很方便,我们可以将其修改成自定义的目录。
- 1.1、打开终端,输入命令:
sudo vim /etc/apache2/httpd.conf
也可以找到httpd.conf文件进行编辑
1 | cd /etc/apache2 #进入文件夹 |
- 1.2、找到如下两处
DocumentRoot "/Library/WebServer/Documents"
<Directory "/Library/WebServer/Documents">
- 1.3、将两处中引号中的目录替换为自定义的目录,如”
/Library/apacheWeb“
完成以上三步后,重启Apache,浏览器输入http://127.0.0.1
Forbidden You don't have permission to access / on this server.
这个折腾了好久,修改权限sudo chmod -R 777 apacheWeb也不行,灵机一动把/Library/WebServer/Documents目录中的index.html.en文件拷贝到自定义的目录,sudo apachectl restart 后就可以看到 It works! 的页面!
访问某一文件如:http://127.0.0.1/db
其它修改方式参考
2).使用Python开启 Web Server
相比Apache更简单不需要改本地服务器路径,随便进入一个目录即可开启
1 | python -m SimpleHTTPServer #默认8000端口 |
python会以当前目录作为根目录起一个本地server, 访问localhost:8000就可以看到效果了。
3)使用Node.js 模拟服务器
3.1 json-server
3.1.1、全局json-server安装
1 | sudo npm install json-server -g |
安装完成后可以用 json-server -h 命令检查是否安装成功,成功后会出现帮助命令选项。
3.1.2.启动server
1 | cd ~/Desktop/mock #进入db.js文件目录 |
如果成功会出现:
1 | \{^_^}/ hi! |
json-server启动默认端口为3000;
这个时候访问 http://localhost:3000/db可以查看所定义的全部数据。
3.2 使用http-server搭建静态服务器
1.安装http-server
1 | npm install http-server -g |
2.启动
1 | http-server -a 127.0.0.1 #默认端口8080 |
更多:https://www.npmjs.com/package/http-server
3.2 ohana
ohana 是一个返回模拟 json 数据的 node http 服务器,默认集成了 mockjs 生成动态的 json 数据,支持 POST, GET, PUT, DELETE 四种请求。
特点:
使用 mockjs 生成 json 数据
支持路由规则
可跨域访问
如何使用:
作者主页http://blog.allenice233.com/2014/12/01/ohana-node-server/
常用web服务器框架
开源项目:
aspserver 帮助快速搭建一个服务器,并自动拥有目录浏览等功能。
-
以上是个人使用过的一些库,还有更多好用的库可以在https://www.npmjs.com中搜索
二、模拟数据生成
1.常用node.js数据模拟库
2.生成模拟 JSON 在线工具:
3.JSON API 在线模拟工具:
-
商业化方案
代理服务器
- 使用 charles作为代理服务器
- 使用代理服务器的 map(映射)& rewrite(重写)功能
示例代码:
mock.js 生成模拟数据,其它如json-server,koa,express等直接引用生成的数据就行
1 | // 使用 Mock 保存为mock_users.js |
使用json-server模拟http server
1 | //保存为 jsonserverMockAPI.js |
运行服务 json-server --watch jsonserverMockAPI.js
使用express模拟http server
1 | //保存为 expressMockAPI.js |
express服务器启动 $ node expressMockAPI.js
使用koa模拟http server
1 | //保存为如:KoaMockAPI001.js |
如何自动化
可以用如nodemon 去启动你的 express
https://github.com/remy/nodemon
1 | nodemon app.js |