moco框架应用一步到位
1. Moco部署
5.1 运行环境
ü Java运行环境
ü moco-runner-0.11.0-standalone.jar
jar包:
Windows Java环境配置
略
5.2 模拟一个HTTP的post请求
Json文件说明
Moco服务启动会读取对应的JSON文件信息,这里我们先一起看一下我本地的JSON文件
.
根据上图,我们可以观察到
第一层结构中由下面三个对象组成
ü description : 自定义的备注信息
ü request : 请求信息集合
ü response : 回执信息集合
第二层结构中:
ü Request 集合包含 Uri , method , headers , json
Uri : 自定义的访问地址;按照上面配置,访问启动后,我们可以直接使用http://localhost:{Port}后续启动自定义/ api/1.0/internalPerson 进行访问。
Method:请求方法; 如 get , post 等。
Headers: 请求头信息 集合; 这里我们定义了连接类型为json格式,根据项目需要可增加其他字段信息,如 Cookie ,
JSON:请求协议boby;根据项目协议进行配置,注意不得含中文。
ü Response集合包含 JSON
JSON:回执信息boby;根据项目协议进行配置。
实例文件:
启动moco服务
将jar包与JSON文件在某个目录文件夹内
shift+鼠标右键点击所在目录空白处,点击“在此打开命令窗口”
命令窗口输入启动命令
java -jar ./moco-runner-0.11.0-standalone.jar http -p 8821 -c testdome22.json
说明:
ü HTTP :当前使用传输协议
ü -p 8821:运行使用的自定义端口号
ü -c testdome22.json:运行服务读取的指定JSON文件
使用命令后,可以看到;服务在8821端口正常启动
验证接口协议
这里我们使用Postman来验证;Postman软件包见附件
打开Postman,根据上述JSON文件说明信息,填写如下:
请求方式选择post,URL 输入 http://本地IP:{$启动端口号}{ JSON文件中的Uri }
由于是JSON传输,这里headers里面设置传输格式为application/json
Boby选项中选择raw,并将格式选择为json; 内容为JSON文件说明中"request"集合对象的JSON内容
配置完成后,点击send;返回请求后的JSON信息。返回的信息为JSON文件中"response"集合对象的JSON
这里模拟向后台发送的post请求回执就完成了。方便快捷吧!
5.3 模拟一个HTTP的get请求
操作步骤同模拟一个HTTP的post请求,只是在JSON配置文件中,"method"方法写成”get”即可。
5.4 模拟一个HTTPS的post请求
证书制作
HTTPS在传输数据之前需要客户端(浏览器)与服务端(网站)之间进行一次握手,在握手过程中将确立双方加密传输数据的密码信息。此时这里需要证书作为公钥,我们先制作一个证书。
进入本地JAVA_HOME路径的bin目录下,shift+右键选择“在此打开命令窗口”
使用jdk自带的证书工具生成证书,输入以下命令
keytool -genkey -alias zhwei -keypass 123456 -keyalg RSA -keysize 1024 -validity 365 -keystore e:/zhengshu.keystore
storepass 123456
说明:
ü -alias zhwei (别名)
ü -keypass 123456(别名密码)
ü -keyalg RSA(生证书的算法名称,RSA是一种非对称加密算法)
ü -keysize 1024(密钥长度,证书大小)
ü -validity 365(证书有效期,天单位)
ü -keystore e:/zhengshu.keystore (指定生成证书的位置和证书名称)
ü -storepass 123456(获取keystore信息的密码)
到E盘下可以看到生成的keystore文件
JSON文件说明
无需任何配置,可直接使用Json文件说明中的JSON文件
启动moco服务
将证书拷贝到JSON文件,jar包所在的目录下,命令窗口运行以下命令
java -jar ./moco-runner-0.11.0-standalone.jar https -p 443 -c startup2.json --https zhengshu.keystore --cert 123456 --keystore 123456
说明:
https :协议改为了HTTPS
-p 443:HTTPS默认请求端口号
-c startup2.json :指定读取的JSON文件
--https zhengshu.keystore : 指定读取的证书路径和证书名
--cert 123456 :秘钥的密码
--keystore 123456:指定秘钥库的密码
Moco服务在443端口正常启动
验证接口协议
由于在是采用的之前http post请求的JSON文件,这里我们在Postman做下修改
这里我们才用HTTPS请求,请求端口改为443,其他内容参考验证接口协议中的内容,不做修改。Send以后我们观察返回值
命令窗口打印信息
5.5 模拟一个HTTPS的get请求
操作步骤同模拟一个HTTPS的post请求,只是在JSON配置文件中,"method"方法写成”get”即可。
2. 小结
目前调研的内容已经满足常规的应用场景,后续学习到新的知识点会不断更新补充,欢迎各种同僚在使用中针对出现的问题进行积极反馈,便于整理加入到FAQ章节中。
3. FAQ
6.1Moco交互过程中字符串乱码问题答疑
启动命令中加入-Dfile.encoding=UTF-8 进行强制转换
如:
java -jar -Dfile.encoding=UTF-8 ./moco-runner-0.11.0-standalone.jar http -p 8821 -c startup2.json
图1为gbk格式
图2为强制转换后
4. 参考文档
https://blog.csdn.net/ibelieve1974/article/details/70142176
https://www.cnblogs.com/hanschen-coder/p/6528829.html
https://blog.csdn.net/lluozh2015/article/details/79133892
https://www.cnblogs.com/hua198/p/5226219.html
https://www.jianshu.com/p/9846e30081e1
https://blog.csdn.net/dwyane__wade/article/details/80350548
moco框架应用一步到位的更多相关文章
- Mock1 moco框架的基本介绍
前言: Mock就是模拟接口的,一般在开发人员还没有开发完接口,但是有接口文档,这个时候就可以执行接口测试,前端同学也可以用mock功能给自己使用. 功能:可以模拟http协议发送请求 下载链接:ht ...
- 郑晔谈 Moco 框架的开发:写一个好的内部 DSL ,写一个表达性好的程序
作者:张龙 出处:http://www.infoq.com/cn/news/2013/07/zhengye-on-moco 郑晔谈Moco框架的开发:写一个好的内部DSL,写一个表达性好的程序 作者 ...
- Moco 框架以及其在 Web 集成测试的应用
转自:https://www.ibm.com/developerworks/cn/web/1405_liugang_mocowebtest/ Moco 框架以及其在 Web 集成测试的应用 我们往往将 ...
- Mockserver之Moco框架搭建使用
客户要求进行完整的产品展示,人员和时间都有限,来不及开发后端服务... 工期比较紧的项目,前端已开发完成,需要调试,后端接口还未开发完成... 公司某个项目依赖于第三方服务,但是第三方服务不方便频繁调 ...
- 『居善地』接口测试 — 12、Moco框架介绍
目录 1.Mock功能介绍 2.Moco框架介绍 3.Moco框架在接口测试中的作用 4.Moco框架的优点 5.Moco框架的下载与启动 (1)Moco框架的下载 (2)Moco框架的启动 1.Mo ...
- 『居善地』接口测试 — 13、Moco框架的使用
目录 1.Moco框架第一个练习 2.Get方法的Mock实现 3.Post方法的Mock实现 4.请求中加入Cookies 5.请求中加入Header 6.Moco模拟重定向 7.综合练习 8.总结 ...
- Mock8 moco框架如何返回一个cookie信息
还是用之前的startupWithCookies.json这个文件,直接往里面添加上面的一个代码: [ { "description":"这是一个会返回cookies信息 ...
- Mock7 moco框架重定向
新建一个startupWithRedirect.json [ { "description": "重定向到百度", "request": { ...
- Mock6 moco框架中如何加入header
新建一个 startupWithHeader.json,这次在request里面添加了headers属性 [ { "description": "这是一个带header的 ...
随机推荐
- Spring IoC的概念
Spring IoC的基础知识 Spring 框架可以说是Java世界中最成功的框架,它的成功来自于理念,而不是技术,它最核心的理念是IoC(控制反转)和AOP(面向切面编程),其中IoC是Sprin ...
- 务必收藏备用:.net core中通过Json或直接获取图形验证码(数字验证码、字母验证码、混合验证码),有源代码全实战demo(开源代码.net core3.0)
很多人写的博客大家看了会一知半解,不知道怎么用,应该引用什么类库或者代码不全,这样很多小白很是头疼,尤其是尝新技术更是如此.我们这边不止告诉你步骤,而且还提供开源demo.随着时间的推移,我们的dem ...
- abp(net core)+easyui+efcore实现仓储管理系统——EasyUI之货物管理七(二十五)
abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+ ...
- Educational Codeforces Round 71 (Rated for Div. 2)E. XOR Guessing
一道容斥题 如果直接做就是找到所有出现过递减的不同排列,当时硬钢到自闭,然后在凯妹毁人不倦的教导下想到可以容斥做,就是:所有的排列设为a,只考虑第一个非递减设为b,第二个非递减设为c+两个都非递减的情 ...
- C#之委托如此简单
近期和几位做嵌入式开发的朋友闲聊过程中,一位朋友抱怨到:这C#太难用了,我想在N个窗体(或者是N个用户组件之间)传递值都搞不定,非得要定义一个全局变量来存储,然后用定时器来刷新值,太Low了.我急切的 ...
- WeihanLi.Npoi 近期更新
WeihanLi.Npoi 近期更新 Intro 最近对我的 NPOI 扩展做了一些改变,一方面提高性能,一方面修复bug,增加一些新的功能来让它更加好用,前几天发布了 1.5.0 版本,下面来介绍一 ...
- 如何在Vue项目中给路由跳转加上进度条
1.前言 在平常浏览网页时,我们会注意到在有的网站中,当点击页面中的链接进行路由跳转时,页面顶部会有一个进度条,用来标示页面跳转的进度(如下图所示).虽然实际用处不大,但是对用户来说,有个进度条会大大 ...
- React第一次渲染为何容易出现TypeError: Cannot read property 'XX' of undefined
此题可能大家会不屑一顾,哎,错误都给你怼脸上了你还不会嘛,其实大家有没有认真思考过这其中的原因.先上一张错误图,剩余的全靠编.没兴趣看图的老铁们可以拉到最底下直接看结论 错误: 代码: 其次,我再把 ...
- Springboot中的缓存Cache和CacheManager原理介绍
背景理解 什么是缓存,为什么要用缓存 程序运行中,在内存保持一定时间不变的数据就是缓存.简单到写一个Map,里面放着一些key,value数据,就已经是个缓存了 所以缓存并不是什么高大上的技术,只是个 ...
- TRANK和VTP
需求:因为公司规模逐渐扩大,出现相同部门不同办公室的情况,老板提出新的要求:相同部门可以通信,不同部门不能通信. 利用vlan: 缺点:浪费材料,应用技术手段把两条交叉线变成一条. 因此,引进trun ...