首页 > 其他分享 >mock框架与测试(用mock工具模拟后端与前端对接调试)

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

时间:2023-05-06 10:55:13浏览次数:40  
标签:description get 后端 request uri mock post response 调试

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

标签:description,get,后端,request,uri,mock,post,response,调试
From: https://www.cnblogs.com/fanf/p/17376593.html

相关文章

  • 用 VSCode 调试网页的 JS 代码有多香
    用VSCode调试网页的JS代码有多香Javascript代码主要有两个运行环境,一个是Node.js,一个是浏览器。一般来说,调试Node.js上跑的JS代码我会用VSCode的debugger,调试浏览器上的JS代码我会用chromedevtools。 相比纯看代码来说,我更推荐结合debugger来看,它可以让......
  • vue naive ui 前端获取日期数据传递给后端
    vuenaiveui前端获取日期数据传递给后端设置日期选择器1.使用表单输入绑定的方法把用户选定的日期传递给data中的值(检查数据是否更新的方法) 2.返回给后端的时间格式后端想要接收的格式为json,其中包括starttimeendtime和macid,并且时间格式为<class'datetime.date......
  • vue mock数据
    这里使用的是fastmock,找到官网 这里声明了一个名称是test,基础路径是/api的接口 点击右侧的箭头进入。 界面右侧有一个蓝色的新增接口按钮,点击一下。 输入接口内容,实例如下: 保存即可。 这时在前台根地址+接口地址就是完整的mock路径 ......
  • 记录一次非常麻烦的调试
    此次记录一次非常麻烦的调试问题,不是纯知识分享,只是记录这次调试过程引以为戒。问题简介这个功能是公司2021年写的老功能,一直都没有更新过代码,这次在导入一个1.03G的大文件进行读取的过程中出问题了。简单介绍一下这个功能:公司使用的springboot框架构建项目,该功能为项目内的......
  • nginx 发布网站通过域名访问,后端接口反向代理
    1、申请域名证书,申请好之后,下载Nginx域名部署包(包里一般会含义*.key和*.pem文件)2、把 *.key和*.pem文件放置到 Nginx程序 conf文件夹下,与nginx.conf文件路径保存一致3、修改Nginx的配置文件 server{    listen   443ssl;    #你的域......
  • 调试器是个大骗子!
    我叫GDB,是一个调试器,程序员通过我可以调试他们编写的软件,分析其中的bug。作为一个调试器,调试分析是我的看家本领,像是给目标进程设置断点,或者让它单步执行,又或是查看进程中的变量、内存数据、CPU的寄存等等操作,我都手到擒来。你只要输入对应的命令,我就能帮助你调试你的程序。我......
  • 下载文件(Excel)功能,后端返回blob字节流,前端怎么处理?
    在做大屏数据项目有个报表下载的功能,根据用户选择的时间下载对应时间的报表,后端返回的是文件流,前端需要怎么去处理呢?实现的功能效果: 后端返回的数据:需要我们处理的乱码:前端代码:1exportExcel(){2axios({3methods:"xxxx",4url:"xxx/xxxx/xx......
  • 调试器是个大骗子!
    我叫GDB,是一个调试器,程序员通过我可以调试他们编写的软件,分析其中的bug。作为一个调试器,调试分析是我的看家本领,像是给目标进程设置断点,或者让它单步执行,又或是查看进程中的变量、内存数据、CPU的寄存等等操作,我都手到擒来。你只要输入对应的命令,我就能帮助你调试你的程序。我......
  • Linux内核调试的方式以及工具集锦
    原文链接 https://blog.csdn.net/gatieme/article/details/68948080  ......
  • 面试题——python后端开发
    Python和Java、PHP、C、C#、C++等其他语言的对比?python语言,是面向对象、直译式计算机程序设计语言,python语法简洁清晰,具有丰富和强大的类库。Python是完全面向对象的语言。函数、模块、数字、字符串都是对象。并且完全支持继承、重载、派生、多继承,有益于增强源代码的复用性......