使用moco mock http请求
moco可以用来模拟http、https、socket请求,这里介绍下最常用的http请求。
大家也可以查看moco关于http请求的官方文档
一、json文件基本格式
moco使用json文件配置请求的基本格式为
[{请求1},{请求2},等等
]
每个请求需要包含request和response,description可选。
二、常用关键字
2.1 Description描述
在所有JSON API中,您可以使用description来描述此会话的内容。它只是用作注释,在运行时将被忽略。
[{"description": "这里用来描述会话的内容,只是注释,运行时忽略","response": {"text": "foo"}}
]
2.2 Request请求部分
moco提供了很多关键字,用于配置request部分的内容。
关键字 | 描述 | 格式 |
---|---|---|
text | 配置请求内容 | 字符串 |
file | 若响应内容太多,可以方法文件中,配置存放请求内容的文件名 | 字符串 |
uri | 请求路径 | 字符串 |
queries | 用于get请求传递参数 | json串 |
method | 请求方式,包括get/post/put/delete等 | 字符串 |
version | http请求版本号,比如HTTP/1.0 | 字符串 |
headers | 请求头 | json串 |
cookies | cookie信息 | json串 |
forms | 用于post请求传递参数 | json串 |
match | 用于配置符合正则表达式的请求 | 字符串 |
json | get请求参数为json串 | |
startsWith | 以…开头 | 字符串 |
endsWith | 以…结尾 | 字符串 |
contain | 包含…内容 | 字符串 |
exist | 用于判断…请求信息是否存在 | 字符串 |
2.3 Response响应部分
关键字 | 描述 | 格式 |
---|---|---|
text | 配置响应内容 | 字符串 |
file | 若响应内容太多,可以方法文件中,配置存放响应内容的文件名 | 字符串 |
charset | 设置文件编码 | 字符串 |
status | 状态码 | int |
version | http响应版本号,默认情况下,http响应版本号应该是http请求版本号,但是你也可以自行设置响应版本号 | 字符串 |
headers | 响应头 | json串 |
proxy | 我们也可以使用指定的URL进行响应,就像代理一样。 | |
failover | 除了基本功能外,代理还支持故障转移,这意味着如果远程服务器暂时不可用,服务器将从本地配置恢复。 | |
playback | 回放 | |
redirectTo | 重定向 | |
cookies | cookie信息 | json串 |
json | responese为json串 |
三、举例
例1:get请求带参数
[{"description": "模拟一个没有参数的get请求","request": {"uri": "/getdemo","method": "get"},"response": {"headers": {"Content-Type": "text/html;charset=gbk"},"text": "这是一个没有参数的get请求"}}, {"description": "模拟一个带参数的get请求","request": {"uri": "/getwithparam","method": "get","queries": {"name": "zhangsan","age": "18"}},"response": {"headers": {"Content-Type": "text/html;charset=gbk"},"text": "我叫张三"}}]
例2:post请求带参数
[{"description": "这是一个没有参数的post请求","request": {"uri": "/postdemo","method": "post"},"response": {"headers": {"Content-Type": "text/html;charset=gbk"},"text": "这是mock的post请求"}},{"description": "这是一个带参数的post请求","request": {"uri": "/postwithparam","method": "post","forms": {"name": "zhangsan","age": "18"}},"response": {"headers": {"Content-Type": "text/html;charset=gbk"},"text": "我是张三!"}}]
不带参数的post请求结果
带参数的post请求结果
例3:请求/响应带cookies信息
[ {"description": "这是一个带cookies信息的get请求","request": {"uri": "/get/withCookies","method": "get","cookies": {"login": "true"}},"response": {"headers": {"Content-Type": "text/html;charset=gbk"},"text": "这是一个需要携带cookies信息才能访问的get请求"}}, {"description": "这是一个带cookies信息的post请求","request": {"uri": "/post/withCookies","method": "post","cookies": {"login": "true"},"json": {"name": "zhangsan","age": "18"}},"response": {"headers": {"Content-Type": "text/html;charset=gbk"},"status": 200,"json": {"zhangsan": "success","status": "1"}}},{"description": "这是一个会返回cookies信息的get请求","request": {"uri": "/getCookies","method": "get"},"response": {"headers": {"Content-Type": "text/html;charset=gbk"},"cookies": {"login": "true"},"text": "恭喜你获得cookies信息"}}
]
带cookies信息的get请求,执行结果
带cookies信息的post请求,执行结果
返回cookies信息的get请求,执行结果
例4:请求/响应带headers信息
[{"description": "这是一个带header信息的post请求","request": {"uri": "/post/withHeaders","method": "post","headers": {"content-type": "application/json"},"json": {"name": "zhangsan","sex": "male"}},"response": {"json": {"success": "true","status": "1"}}}
]
执行结果如下:
例5:重定向
[{"description": "重定向到百度","request": {"uri": "/redirect"},"redirectTo": "http://www.baidu.com"},{"description": "重定向到一个自己的url上","request": {"uri": "/redirect/topath"},"redirectTo": "/redirect/new"}, {"description": "这是一个被重定向到的请求","request": {"uri": "/redirect/new"},"response": {"headers": {"Content-Type": "text/html;charset=gbk"},"text": "重定向到new请求啦"}}
]
输入localhost:8888/redirect,重定向到了百度,结果如下
输入http://localhost:8888/redirect/topath,重定向到自己写的url,结果如下
使用moco mock http请求相关推荐
- Jest中Mock网络请求
Jest中Mock网络请求 最近需要将一个比较老的库修改为TS并进行单元测试,修改为TS还能会一点,单元测试纯粹是现学现卖了,初学Jest框架,觉得在单元测试中比较麻烦的就是测试网络请求,所以记录一下 ...
- 实现moco模拟https请求
moco 环境搭建完毕,只能使用http请求,无法使用https的请求.下面讲解https证书的生成和使用,让moco能够支持https请求的mock 1.https服务启动命令: java -jar ...
- 详解构建mock服务最方便的神器——Moco
moco介绍 moco框架是github上的一个开源项目,可模拟http,https,Socket协议的mock操作.如果大家不了解什么是mock请参考文章: 从0到1学会使用SpringBoot 搭 ...
- mock模拟数据,get、post请求
一.为什么使用mockjs 在做开发时,当后端的接口还未完成,前端为了不影响工作效率,手动模拟后端接口 1.我们可以使用json文件来模拟后台数据,但比较局限,无法模拟数据的增删改查 2.使用json ...
- 干货!用大白话告诉你什么是Mock测试
初识mock 作为一个动词,mock是模拟.模仿的意思:作为一个名词,mock是能够模仿真实对象行为的模拟对象. 在软件测试中,mock所模拟的对象是什么呢? 它一定不是我们所测试的对象,而是 SUT ...
- 如何用Postman mock服务?
VOL 315 03 2021-11 今天距2022年58天 这是ITester软件测试小栈第315次推文 点击上方蓝字"ITester软件测试小栈"关注我,每周一.三.五早上 0 ...
- vue前端用服务器上路径的图片展示_5分钟教你用nodeJS手写一个mock数据服务器
对于前端开发者而言,javascript正扮演着越来越重要的地位,它不仅能为浏览器端赋能,在web服务器方面也有很大的价值(我们可以用nodeJS来写服务端代码,启动web服务器),因此本文所要描述的 ...
- mock 测试 MVC
SpringMVC测试框架 基于RESTful风格的SpringMVC的测试,我们可以测试完整的Spring MVC流程,即从URL请求到控制器处理,再到视图渲染都可以测试. 一 MockMvcBui ...
- 如何开发rest接口服务_如何简化网络请求接口开发
日常开发中,需要大量和后端对接接口,很容易写出大量的模板代码,比如把对接口的请求放到组件内,或者虽然有数据访问层,但是有大量 get,post 方法的调用,传参的字符串拼接,异常处理等等,有些逻辑是可 ...
最新文章
- CENTOS6.4 IBUS输入法不显示候选词解决办法
- 高级打字机【主席树】【滚动数组】【块状链表】
- 用平方映射理解tanh
- [思考]-ARM LR寄存器的思考
- java亮剑_黄金矿工3-太空版
- 替换Quartus 自带编辑器 (转COM张)
- Scrum实践:每日站会
- 新手如何发布第一个Python项目开源包?这里有一份详细指南
- 2019/04/05 腾讯笔试 后台及综合卷(java)
- 被马斯克热炒的人形机器人Optimus“擎天柱“,中国厂商或后来居上
- SQL学习(四)Where语句中的各种匹配方式
- 【react踩坑】前端显示文件流图片
- dva的state引用及connect连接
- 解决k8s中的长连接负载均衡问题
- 2021前端面试题汇总——查漏补缺
- C语言实现顺序栈的基本操作(初始化、判断空、入栈、出栈、获取栈顶元素)
- 堆排序 ← 改编自《啊哈!算法》
- 微型计算机的外辅储存器,微型计算机的外辅储存器是指
- 使用java容器(集合类)模拟商城
- 贝茨视觉训练法 [20160316]