最近在进行性能接口测试时,学习到一款http接口mock测试工具:moco
Github地址:https://github.com/dreamhead/moco
moco组成:
一个jar包(moco-runner-0.10.0-standalone.jar)和 json文件(模拟请求和响应)
下面以http POST请求 为例进行说明,分享对moco工具的使用过程:
1、json 文件(foo.json):
[
{
"description":"这是第一个moco例子",
"request":{
"uri":"/login",
"method":"post",
"headers":{
"content-type":"application/json"},
"cookies":{
"session":"12345678"
},
"json":{
"name":"unknown",
"old":"30"
}
},
"response":{
"status":200,
"json":{
"sucess":"True",
"code":"100"
}
}
}
]
2、加载配置启动Moco HTTP Server:.
3、这时就可以用 jmeter等工具进行接口测试了,配置好 header 和 cookie,请求参数;
4、通过对一个post接口进行模拟测试,jmeter返回结果是我们定义的。
通过对真实的调用信息进行发起请求,生成模拟的返回结果,大大简化了测试对调用接口的依赖,大大提高测试效率。
但mock同时可能导致问题遗漏,因为mock的模拟行为与真实行为可能存在差异(返回结果是自己构造的),
导致基于mock的测试虽然通过了,但是基于真实对象的测试可能会存在失败。