一、moco框架的基本功能

  1. moco是一个模拟接口请求和发送的测试框架,包括但不局限于get请求,post请求,cookies和heades等等,是github上一个开源的测试框架,官网:https://github.com/dreamhead/moco,下载moco框架地址https://repo1.maven.org/maven2/com/github/dreamhead/moco-runner/1.2.0/
  2. 下载moco框架,下载完成后是一个jar包,将该jar包导入到idea中

    在与mocojar包同级的目录下新建一个txt文件,用于说明如何启动moco服务
    启动服务
java -Dfile.encoding=UTF-8  -jar ./moco-runner-1.2.0-standalone.jar http  -p 8888 -c startupGet.json

Dfile.encoding=UTF-8表示以UTF-8的编码启动,如果不加这个编码,有可能访问接口会出现乱码
-p表示以哪个端口启动
-c表示启动哪个json文件的内容,这里必须是json文件格式,这里的json文件可以写绝对路径,json文件也可以放到另外目录
http表示访问该服务的协议
由于该文件中jar包和json文件放在同一目录,故jar包的路径写为./moco-runner-1.2.0-standalone.jar

二、模拟get请求

  1. 在和jar包同级的目录下新建一个json文件,json文件的内容有2中写法
    第一种写法:
[{"resource": {"name": "targets","get": [{"id": "*","response": {"json": {"code": 1,"message": "rest风格的不带参数的get请求"}}}]}}
]

这里targets是自己定义的名称,*表示id可以为任何值,json的对象表示返回的code是1,message是“rest风格的不带参数的get请求”

第二种写法

[{"description": "不带参数的get请求","request": {"uri": "/api/first" ,"method":"get" },"response": {"text": "这是不带参数的get请求"}}
]

description描述此会话的用途。它只是用作注释,在运行时将被忽略
requests请求的路径参数方法等等,可以不写,不写的时候访问该接口时不需要添加路径
response请求的返回值
上面请求返回的结果为:

以上2种都是模拟get的请求,但是2中的写法不同,第一种get请求的参数不需要用?拼接,第二种,如果需要参数则需要用?拼接,如

[{"description": "带参数的get请求","request": {"uri": "/api/withParam","method": "get","queries": {"id":"1","name": "faith"}},"response": {"text": "翠花姐回来了!!!"}}
]

访问后的效果

三、模拟post请求

1. 不带参数

模拟post请求的第一种方式

[{"resource": {"name": "targets","post": [{"response": {"status": 201,"headers": {"Location": "/targets/123"}}}]}}
]


模拟post请求的第二种方式

[{"description": "不带参数的post请求","request": {"uri": "/api/post","method": "post"},"response": {"text": "这是不带参数的post请求"}}
]

访问截图

2. 带参数的post请求

带参数的post请求有2种方式,一种是form表单的提交方式,一种是json格式的提交方式

  • form表单的提交方式默认的提交类型是application/x-www-form-urlencoded; charset=UTF-8
{"description": "带参数的post请求","request": {"uri": "/api/withPost","method": "post","forms": {"name": "faith","sex": "man"}},"response": {"text": "翠花姐带参数来了!!!"}}

请求的截图

响应成功后的截图

  • json格式的提交方式
{"description": "json格式的post请求","request": {"uri": "/api/jsonParam","method": "post","json": {"name": "marry","age":"18"}},"response": {"json": {"message": "success","data": {"sex": "women","score": "90"}}}}

这里模拟的是请求参数是json格式的,返回参数也是json格式
得到的响应结果为:

四、模拟cookies

  • get请求中method就写get,post请求就写post,别的没有区别
{"description": "模拟cookies","request": {"uri": "/api/withCookie","method": "get","cookies": {"cookie": "fdsfdsjewobxgow825wgwe621"}},"response": {"json": {"message": "cookies模拟成功"}}}

访问带cookie的请求时,需要在jmeter中添加cookie管理器,cookie管理器中的配置如下,其中,127.0.0.1和请求中的填写一致,不能填写localhost,/表示跟目录下的所有地址访问都生效

响应的结果为

  • 在模拟的响应中可以添加status属性
{"description": "模拟cookies","request": {"uri": "/api/withCookie","method": "post","cookies": {"cookie": "fdsfdsjewobxgow825wgwe621"}},"response": {"json": {"message": "cookies模拟成功","status": 0}}}

五、模拟headers

header信息在get请求和post请求中都一样,以下是以post请求为例

{"description": "模拟header","request": {"uri": "/api/withHeader","method": "post","headers": {"content-type": "application/json"}},"response": {"json": {"message": "header模拟成功","status": 200}}}

访问该接口的响应为

访问该接口需要在jmeter中添加信息头管理器,管理器里面添加:"content-type": "application/json",如果要带参数,就在request对象中添加json格式的内容

六、模拟重定向

  • 重定向到百度
{"description": "模拟重定向","request":{"uri": "/redirect"},"redirectTo": "http://www.baidu.com"}
  • 重定向到自己写的地址
[{"description": "重定向到自己写的地址","request": {"uri": "/redirect/path"},"redirectTo": "/newPath"},{"description": "被重定向到的请求","request": {"uri": "/newPath"},"response": {"json":{"status": 200,"message": "success","data": "true"}}}
]

由于这是一个get请求,不写method默认是get请求,所以可通过浏览器访问,输入http://localhost:8888/redirect/path,访问后的效果

七、当请求的内容和响应的内容过长时,可以通过json文件写内容

[{"description": "请求和响应都写在json文件里面","request": {"uri": "/jsonFile","method": "get", //post请求就写成post"file": {"json": "request_file.json" //参数的json文件,绝对路径}},"response" :{"file" : "response_file.json", //响应的json文件,绝对路径"charset": "GBK"      //响应的编码格式}}
]

Moco接口框架的应用实战相关推荐

  1. moco接口框架介绍

    moco接口框架介绍 Moco 是一个搭建模拟服务器的工具,其支持 API 和独立运行两种方式,前者通常是在 junit .testng等测试框架中使用,后者则是通过运行一个 jar 包开启服务 在m ...

  2. moco常用配置参数及实战

    VOL 182 14 2020-12 今天距2021年17天 这是ITester软件测试小栈第182次推文 点击上方蓝字"ITester软件测试小栈"关注我,每周上午 08:30准 ...

  3. php调用好单库api视频教程,[8.1]-PhalApi视频教程 | PhalApi(π框架) - PHP轻量级开源接口框架 - 接口,从简单开始!...

    [8.1] PhalApi视频教程 先在这里感谢以下录制小组的同学,是你们让世界看到PhalApi的视频教程! A西瓜妹子.听风不语.彩色的雨.Catch.喵了个咪.dogstar PhalApi教程 ...

  4. 【笔记-node】《Egg.js框架入门与实战》、《用 React+React Hook+Egg 造轮子 全栈开发旅游电商应用》

    20210226-20210227:<Egg.js框架入门与实战> 课程地址:https://www.imooc.com/learn/1185 第一章 课程导学 01-01 课程介绍 一. ...

  5. 《精通Python网络爬虫:核心技术、框架与项目实战》——1.3 网络爬虫的组成...

    本节书摘来自华章出版社<精通Python网络爬虫:核心技术.框架与项目实战>一书中的第1章,第1.3节,作者 韦 玮,更多章节内容可以访问云栖社区"华章计算机"公众号查 ...

  6. Python-基于flask的接口框架

    Python-基于flask的接口框架 ​Flask是一个Python编写的Web 微框架,让我们可以使用Python语言快速实现一个网站或Web服务.本文参考自Flask官方文档,大部分代码引用自官 ...

  7. 学习推荐《精通Python网络爬虫:核心技术、框架与项目实战》中文PDF+源代码

    随着大数据时代的到来,我们经常需要在海量数据的互联网环境中搜集一些特定的数据并对其进行分析,我们可以使用网络爬虫对这些特定的数据进行爬取,并对一些无关的数据进行过滤,将目标数据筛选出来.对特定的数据进 ...

  8. 轻量级PHP接口框架PhalApi开源接口框架 v2.17.1源码

    简介: PhalApi简称π框架(派框架),一个轻量级PHP开源接口框架,配套运营管理平台,专注于接口服务开发,支持HTTP/SOAP/RPC协议,拥有自动生成的在线文档.多种开发语言的客户端SDK包 ...

  9. Android网络框架Volley项目实战-刘桂林-专题视频课程

    Android网络框架Volley项目实战-5257人已学习 课程介绍         使用Google 2013 I/O大会上发布的Volley请求框架做几个实战项目,归属地查询,QQ测试吉凶,天气 ...

最新文章

  1. 笑抽了!这个程序员正在坐电梯,被HR逮到偷偷出去面试!
  2. 用Python做地图投影 - 多面孔的世界
  3. php 一行代码解决二维数组去重
  4. Set the roller speed
  5. 手机端实现点击复制功能
  6. 给web请求加遮罩动画
  7. 二分类minst0-1到0-9近似迭代次数公式和准确率公式汇总
  8. ABAP模块P类型详细解释
  9. 温州大学《机器学习》课程课件(三)逻辑回归
  10. Java 进程占用 VIRT 虚拟内存超高的问题研究
  11. VTK:八叉树可视化用法实战
  12. sql2005 无法解决 equal to 操作Chinese_PRC_CI_AS 和 Chinese_PRC_CS_AS 之间的排序
  13. php搜索间隔,php – 如何查找超过2个用户的匹配时间间隔
  14. 流程代码中js报错,在javaScript或者jQuery中字符串比较没有equals()方法
  15. 国产441b电子计算机,国产441B晶体管计算机文档(讲义)
  16. LaTex写实验报告
  17. 数据地图在商业数据分析中的5种应用
  18. 请求接口报502错误
  19. Diabetes Care:西湖大学郑钜圣等机器学习揭示影响2型糖尿病的肠道菌群特征
  20. VS2019左侧 黄、绿线条 以及 错误波浪线 隐藏

热门文章

  1. 天池-一起挖掘幸福感!
  2. 电脑屏幕分辨率分布统计(基于CNZZ统计数字) 2012-03 更新
  3. FPGA/IC领域术语表
  4. 龙芯推出兼容IE的龙芯浏览器解决方案,全面支持ActiveX插件等应用类型
  5. mt6735[CTS Verifier][Test Method] Camera Orientation
  6. 使用PACKET_MMAP + PF_PACKET实现ZERO COPY抓包和发包
  7. wdcdn为您提供CDN系统解决方案
  8. FW:HP笔记本type-c接口失效
  9. linux并发连接50万的配置
  10. win7c语言编译器死机,win7 死机_电脑在装win7的时候,到了选择语言这里会死机呢?......