doraemon 1.0.0 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +106 -17
- data/exe/doraemon +1 -1
- data/lib/doraemon/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 40d6031e236f4e0ecaad08587400227ecbc42f61eded9c4e446688ffb71e31a8
|
4
|
+
data.tar.gz: 42910edc1ff8273520e7c09edfd9105d243bbfa5553fd63cdacafe219d6973aa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 02b10db8fc9d4c64b38a388dd52d4639c3187dc344d62f666bca6697b4bc593d16e830fb1d01bdda33ba26868154191404e21a95d3491fc3f5383f2430230210
|
7
|
+
data.tar.gz: 5eff94c8fc5571a4edc5743ac32173414a0b27a397c773b3170ad7c8bb5354599a890252b2c6d4e1c29cd77cfb7d0c17edaec6aeca77c5432ea35e74d0bd1c35
|
data/README.md
CHANGED
@@ -1,35 +1,124 @@
|
|
1
1
|
# Doraemon
|
2
2
|
|
3
|
-
|
3
|
+
一个简单的 API Mock Server,让你脱离后端进行高效的接口数据测试,同时无需侵入客户端代码
|
4
4
|
|
5
|
-
|
5
|
+
## 安装
|
6
6
|
|
7
|
-
|
7
|
+
在命令行运行:
|
8
8
|
|
9
|
-
|
9
|
+
```
|
10
|
+
$ [sudo] gem install doraemon
|
11
|
+
```
|
12
|
+
|
13
|
+
等待安装完成
|
14
|
+
|
15
|
+
## 使用方法
|
16
|
+
|
17
|
+
### 1. 创建 Mock 文件
|
18
|
+
|
19
|
+
将 API 地址 path 部分中的斜杠(/)替换为下划线(_),并追加文件扩展名(.rb / .json / .api 均可)
|
20
|
+
|
21
|
+
例如:v4/homepage/recommend 接口的 Mock 文件就是 v4_homepage_recommend.rb
|
22
|
+
|
23
|
+
### 2. 启动 doraemon
|
24
|
+
|
25
|
+
在 Mock 文件所在目录运行
|
10
26
|
|
11
|
-
```
|
12
|
-
|
27
|
+
```
|
28
|
+
$ doraemon
|
13
29
|
```
|
14
30
|
|
15
|
-
|
31
|
+
此时可以看到 doraemon 已经将目录下所有 Mock 文件载入
|
32
|
+
```
|
33
|
+
[~/api] ls
|
34
|
+
v3_homepage_tiger_list.rb v4_homepage_recommend.rb
|
35
|
+
[~/api] doraemon
|
36
|
+
/v4/homepage/recommend => v4_homepage_recommend.rb
|
37
|
+
/v3/homepage/tiger/list => v3_homepage_tiger_list.rb
|
38
|
+
......
|
39
|
+
```
|
16
40
|
|
17
|
-
|
41
|
+
### 3. 测试设备连接代理
|
18
42
|
|
19
|
-
|
43
|
+
将测试设备的代理设置到 doraemon 的默认 4000 端口上
|
20
44
|
|
21
|
-
|
45
|
+
### 4. 安装 SSL 证书(如需调试 HTTPS 接口)
|
22
46
|
|
23
|
-
|
47
|
+
打开手机浏览器,访问 doraemon 的 4001 端口,即可下载安装 SSL 证书
|
24
48
|
|
25
|
-
|
49
|
+
## 使用案例
|
26
50
|
|
27
|
-
|
51
|
+
### 例1. 直接 Mock JSON 数据
|
52
|
+
假设我们想测试首页搜索栏中的提示文案,涉及 v3/word/default接口
|
53
|
+
创建 v3_word_default.rb 文件,内容如下:
|
54
|
+
```
|
55
|
+
{
|
56
|
+
"code": 0,
|
57
|
+
"res": {
|
58
|
+
"id": 2018050924,
|
59
|
+
"hintWord": "天王盖地虎",
|
60
|
+
"word": "宝塔镇河妖"
|
61
|
+
},
|
62
|
+
"msg": "请求已成功处理"
|
63
|
+
}
|
64
|
+
```
|
65
|
+
切换 tab 至首页,可以看到上方搜索栏的提示文案已被 Mock 数据替代
|
28
66
|
|
29
|
-
|
67
|
+
### 例2. 操作请求参数
|
68
|
+
假设我们想测试优惠券兑换相关流程,涉及 v4/activity/coupon/code/exchange 接口
|
69
|
+
创建 v4_activity_coupon_code_exchange.rb 文件,内容如下:
|
70
|
+
```
|
71
|
+
# 通过 _params 变量访问请求的参数
|
72
|
+
correct = _params['exchageCode'] == 'abc123'
|
73
|
+
{
|
74
|
+
'code': correct ? 0 : -1,
|
75
|
+
'msg': correct ? '兑换成功' : '兑换码无效'
|
76
|
+
}
|
77
|
+
```
|
78
|
+
这样,当我们输入兑换码 abc123 进行验证,将会返回成功的数据,其他情况均为失败的结果
|
79
|
+
|
80
|
+
### 例3. 获取原始返回数据
|
81
|
+
假设我们想调试个我的页面的会员信息展示,涉及 v2/users/center 接口
|
82
|
+
创建 v2_users_center.rb 文件,内容如下:
|
83
|
+
```
|
84
|
+
# 通过 _result 变量访问原始的返回数据
|
85
|
+
_result['res']['level'] = 3
|
86
|
+
_result['res']['score'] = 666666
|
87
|
+
_result
|
88
|
+
```
|
89
|
+
切换到我的页面,可以发现等级已经被改写成 3,分数被改为 66666,如果想测试其他等级的数据,直接修改保存即可。
|
90
|
+
|
91
|
+
⚠️ 所有 Mock 数据文件最后一个表达式必须是这个文件的返回值,比如例3中,如果缺额少最后一行的 _result,那该文件返回的就是最后那句赋值表达式的值(即666666)
|
92
|
+
|
93
|
+
## 参数
|
94
|
+
### 指定端口
|
95
|
+
```
|
96
|
+
$ doraemon --port=5000
|
97
|
+
```
|
98
|
+
这时 API 监听端口就是5000,而证书下载的端口再加1也就是5001
|
99
|
+
|
100
|
+
### 指定目录
|
101
|
+
```
|
102
|
+
$ doraemon --root=~/api
|
103
|
+
```
|
104
|
+
指定工作目录为 ~/api,可以在这个目录下维护一些测试 API 文件
|
105
|
+
|
106
|
+
## Tips:
|
107
|
+
|
108
|
+
1. API 的修改是支持热重载的,即修改文件内容无需重启服务。但增加 API 文件是需要重启的,后期必要的话可以添加更完善的热重载机制
|
109
|
+
|
110
|
+
2. iOS 端可以通过 Shadowrocket 创建一个 Today Widget 快速切换是否 Mock,不过这个工具是收费的
|
111
|
+
|
112
|
+
3. 使用时可以固定一个 api 目录(假设 ~/api),这时你可以在 .bash_profile 中增加一行
|
113
|
+
```
|
114
|
+
alias mock='doraemon --root=~/api --port=4000'
|
115
|
+
```
|
116
|
+
|
117
|
+
然后运行以下命令
|
118
|
+
```
|
119
|
+
$ source ~/.bash_profile
|
120
|
+
```
|
30
121
|
|
31
|
-
|
122
|
+
以后只要打开 Terminal 执行命令 mock 就可以开始以 ~/api 为工作目录进行数据 mock 了
|
32
123
|
|
33
|
-
## Contributing
|
34
124
|
|
35
|
-
Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/doraemon.
|
data/exe/doraemon
CHANGED
data/lib/doraemon/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: doraemon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- zhuoyi
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-11-
|
11
|
+
date: 2018-11-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|