这里选择moco一款基于 Java 开发的开源项目来搭建测试服务器。
moco使用的场景是什么呢?
1、我是一个企业级软件开发人员,每次面对集成就是我头疼开始的时候,漫长集成拉锯战拖延了我们的进度。幸好有了moco,几行配置就可以模拟一个服务,我再也不需要看集成服务团队的脸色了。
2、我是一个移动开发人员,上级催得紧,可服务器端开发进度慢,我空有一个漂亮的App应用,发挥不出作用。幸好有了moco,很快就可以搭建出一个模拟服务,不用把时间浪费在无效的等待上了。
3、我是一个前端开发人员,做Inception的时候,客户总想看到一个完整的应用演示,可哪有时间开发后端服务啊!幸好有了moco,几下就可以弄出一个模拟服务,我做的页面一下就有了生命力。
接下来我们就开始搭建本地测试服务器,首先需要下载一个moco服务端的jar包,当然你可以从官网下载源代码按照官网的说明编译生成jar包。这里不想搞的过于复杂,我们需要的快速搭建测试服务器,直接下载jar包就Ok。
测试打印Hello world!
首先把刚才下载的jar包放在本地文件夹这里文件夹命名为MINE_API,然后在文件夹里创建一个MineAPI.json文件(.json是文件后缀)。
然后在MineAPI.json文件里输入一下内容
[
{
"response": {
"text": "Hello world!"
}
}
]
接下来打开终端,输入以下内容:
//指向你创建的MINE_API当前目录,注意每个人的这个目录不一样,不要直接复制拿去使用
cd /Users/kabuqinuofu/CNKI/MINE_API
回车后再输入以下内容然后回车:
java -jar moco.jar start -p 8888 -c MineAPI.json
在浏览器流输入:http://localhost:8888可以看到”Hello World!”字样。
说明模拟服务器是可以正常使用的。到此服务器基本就搭建完毕了,还是挺简单的。
这里虽然请求出来了”Hello World!”,但是和我们实际项目中的需要还是有差别的,顾这里模拟一下项目中实际需要场景。
这里我要使用moco服务器,模拟项目中的登陆界面和登录以后界面列表数据。
在实际项目中,请求接口数据比较多。因此把所有的配置放在同一个文件里,是非常不合适的,这里需要进行全局配置。
前期准备,写配置文件
在MINE_API文件夹创建settings.json,同时创建login和asset两个文件夹(为了方便查找)。
在login文件夹内创建login.json和login_response.json两个文件。
在asset文件夹内创建assetList.json和assetList_response.json两个文件。
1、在settings.json文件输入以下内容:
[
{
"include" : "login/login.json"
},
{
"include" : "asset/assetList.json"
}
]
2、login.json输入以下内容:
[
{
"request" :
{
"uri" : "/assetApp/login",
"method" : "get",
"queries" :
{
"username" : "kabuqinuofu",
"password" : "666666"
}
},
"response" :
{
"file" : "./login/login_response.json"
}
}
]
3、login_response.json 输入以下内容:
[
{
"status" : "OK"
}
]
4、assetList.json内容
[
{
"request" :
{
"uri" : "/assetApp/assetList",
"method" : "post",
"headers" : {
"content-type" : "application/json",
"sessionid": "h3yh82hdbd8nf"
}
},
"response" :
{
"file" : "./asset/assetList_response.json"
}
}
]
5、assetList_response.json 内容
[
{
"name": "雷军",
"unit": "小米",
},
{
"name": "董明珠",
"unit": "格力",
},
{
"name": "乔布斯",
"unit": "苹果",
},
{
"name": "马云",
"unit": "阿里",
},
{
"name": "李彦宏",
"unit": "百度",
},
{
"name": "马化腾",
"unit": "腾讯",
}
]
配置完以上内容后在终端里输入以下方法
cd /Users/kabuqinuofu/CNKI/MINE_API
//然后回车,在输入以下内容,这里注意是 -g 不在是 -c了
java -jar moco.jar start -p 8888 -g settings.json
http://localhost:8888/assetApp/login?username=kabuqinuofu&password=666666
http://localhost:8888/assetApp/assetList
请求测试返回结果如图:
到这里就介绍完毕了,完全可以满足本地使用需求了,接下来返回什么数据就看自己需求定义了。[附:项目中使用的接口测试工具为谷歌浏览器的一个插件,名叫RestLet Client,挺好用值得推荐!]