mock框架与测试(用mock工具模拟后端与前端对接调试)

mock简介
应用在前后端分离的开发模式中
敏捷管理中需要测试左移
模拟后端与前端对接调试。实现满足接口逻辑通路,保证基本接口功能。

mock开源框架
只需配置request和response就可以满足要求
支持http/https/socket 协议
支持在request中配置header、cookie、StatusCode
对GET /POST/PUT/DELET请求方式都支持
有java环境即可
配置后即可生效
支持多种数据格式:JSON、HTML、xml、File
mock服务搭建
moco项目是java开发的,启动moco前需要安装jdk
验证环境:

java --version
或者

javac


工具下载:
官网:
https://github.com/dreamhead/moco#latest-release
链接:https://pan.baidu.com/s/1-fMUu-s4fPeuLoMy64kbuw
提取码:ertf

运行方法:通过执行工具运行moco的jar包:

通过java指令只需要修改相应协议、执行端口号(不冲突都行)、执行文件名,就可以执行mock进行测试接口

注意:
1.端口号自定义不要设置常用的,8080,443,22,80以免冲突。
2.moco跨平台的,支持windows/linux系统、Mac系统
3.上述命令是制作成了启动文件,也可以直接在命令行窗口执行手打执行,相对麻烦

执行

编写接口文档,也就是json执行文件

脚本如下:
[
{
"description":"demo1=约定URI",
"request":{
"uri":"test001"
},
"response":{
"text":"Hello,world"
}
}
]
启动moco服务

验证接口
在网页输入:127.0.0.1:9999/test001

响应日志:

也可以通过postman调用验证:

本地脚本修改保存,
服务自动重启,不用每次都关闭服务:这就是非常方便的好处

---------------------------------以上是基本的mock的工作原理-------------------------------------------
配置不同的请求编写
GET请求可以在浏览器中直接访问:http://localhost:9999/uri?queries 返回json数据。

Moco框架的http协议get方法的Mock实现
不带参数的get实现:访问:http://localhost:9999/getdemo
[
{
"description":"This is Get request without paramter",
"request":{
"uri":"/getdemo",
"method":"get"
},
"response":{
"text":"This is response for Get request without paramter "
}
}
]
1
2
3
4
5
6
7
8
9
10
11
12
验证结果:


带参数的get实现:访问:http://localhost:9999/getwithparam?name=zhangsan&age=18
{
"description":"This is Get request with paramter",
"request":{
"uri":"/getwithparam",
"method":"get",
"queries":{
"name":"zhangsan",
"age":"18"
}
},
"response":{
"text":"This is response for Get request with paramter "
}
}

验证结果:


post请求不能直接在浏览器中访问,我们需要借助jmeter、 postman或者写代码等测试工具进行post请求的测试

Moco框架的http协议Post方法的Mock实现
不带参数的post请求
[
{
"description":"This is Post request",
"request":{
"uri":"/postdemo",
"method":"post"
},
"response":{
"text":"This is Post response"
}
}
]

postman验证:

python脚本验证:


带参数的post请求实现
[
{
"description":"This is Post request with paramter",
"request":{
"uri":"/postwithparam",
"method":"post",
"forms":{
"name":"zhangsan",
"age":"18"
}
},
"response":{
"text":"This is Post response with paramter"
}
}
]


postman验证:

python脚本验证:


Moco框架如何加入Cookies
带cookies信息的get请求
[
{
"description":"This is Get request with cookies",
"request":{
"uri":"/get/with/cookies",
"method":"get",
"cookies":{
"login":"true"
}
},
"response":{
"text":"This is get response with cookies"
}
}
]

postman验证:
配置postman,添加域名:127.0.0.1,add cookie:login=true ,path=/get/with/cookies,保存
1、入口
2、添加域名

3、添加cookie信息

4、header自动添加cookie参数信息

5、发送get请求


python脚本实现:


带cookies信息的post请求
[
{
"description":"This is Post request with cookies",
"request":{
"uri":"/post/with/cookies",
"method":"post",
"cookies":{
"login":"true"
},
"json":{
"name":"zhangsan",
"age":"18"
}
},
"response":{
"status":200,
"json":{
"zhangsan":"success",
"status":"1"
}
}
}
]


postman验证:
在postman中,body选择raw,json格式,输入发送的json数据(注意不带方括号[]),得到响应成功返回的json数据

python脚本:


Moco框架如何加入Header
Header请求头信息的格式在get和post请求中是一致的。
{
"description":"This is Post request with header",
"request":{
"uri":"/postwithheader",
"method":"post",
"headers":{
"content-type":"application/json"
},
"json":{
"name":"zhangsan",
"age":"18"
}
},
"response":{
"text":"This is Post response with paramter"
}
}


postman验证:

python脚本:


Moco框架如何进行重定向
重定向到baidu
{
"description":"redirect to www.baidu.com",
"request":{
"uri":"/redirect"
},
"redirectTo":"http://www.baidu.com"
}


重定向到自己网站的某个地址
{
"description":"redirect to my path",
"request":{
"uri":"/redirect2"
},
"redirectTo":"redirected"
},

{
"description":"This is my path",
"request":{
"uri":"/redirected"
},
"response":{
"text":"redirect success!"
}
}


重定向多层跳转,实际就是嵌套了重定向的逻辑。跳转到重定向的逻辑内再次重定向。

 

mock框架搭建完成后,使用JMeter执行接口验证测试的方法------参考地址:https://blog.csdn.net/qq_40207262/article/details/129519145

————————————————
版权声明:本文为CSDN博主「^会飞的鱼Fly^」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_40207262/article/details/129468858

posted on   FanF  阅读(614)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示