Python MOCK SERVER moco模拟接口测试过程解析


Posted in Python onApril 13, 2020

MOCK的意义

1.接口测试等待开发完成接口开发之后再进行,不符合测试的尽早测试的基本原则,我们可以利用MOCK工具来模拟接口,减少对开发的依赖,从而可使测试与开发同步进行

2.接口存在很多依赖关系,现实中,由于一些客观的原因,我们在测试环境所要的测试条件可能无法满足,此时就需要我们用MOCK工具来进行模拟,如网上商城有个支付业务,与工商银行做对接,工商银行只提供正式环境的对接,没有测试环境支持,那我们在测试环境测试就需要利用MOCK工具进行模拟,完成支付业务流

mock工具-moco

官网地址

1.安装配置jdk1.8

2.下载moco jar包:moco-runner-0.10.0-standalone.jar

3.新建配置config.json,在jar包所在目录输入cmd,cmd 输入:java -jar moco-runner-0.10.0-standalone.jar http -p 9999 -c config.json,启动moco mock

jar下输入cmd,如下图:

Python MOCK SERVER moco模拟接口测试过程解析

成功启动mock,如下图

Python MOCK SERVER moco模拟接口测试过程解析

config.json 内容:

[
 {
  "request" :
   {
    "method": "get",
    "uri" : "/1"
   },
  "response" :
   {
    "text" : "mock mo ren"
   }
 }
]

4.浏览器输入http://127.0.0.1:9999/1,打印“mock mo ren”,说明:9999为运行配置的端口,/1为配置文件请求的url,“mock mo ren”为访问url的响应的内容

5.一般mock启动不要用https,https需要证书的,配置起来麻烦

模拟-get

(confing.json配置文件,duocs.json有两条记录,dancs.json有一条记录),执行http://127.0.0.1:9999/cs/duo 显示duocs.json两条记录;

执行http://127.0.0.1:9999/cs/dan 显示 dancs.json一条记录

执行http://127.0.0.1:9999/temp?zw=9 返回:“返回参数中文9”,其中zw=9 ,zw为动态参数,注意返回的值是text类型,目前moco的josn格式不支持中文,text格式可以返回中文,但是意义不大。

如config.json 内容:"text" : {
"template": "返回参数中文${req.queries['zw']}"
}

config.json 内容:

[
 {
  "request" :
   {
    "method": "get",
    "uri" : "/cs/duo"
   },
  "response" :
   {
    "file" : "duocs.json"
   }
 },
 {
  "request" :
   {
    "method": "get",
    "uri" : "/cs/dan"
   },
  "response" :
   {
    "file" : "dancs.json"
   }
 },
 {
  "request" :
   {
    "method": "get",
    "uri" : "/temp"
   },
  "response" :
   {
    "text" : {
     "template": "返回参数中文${req.queries['zw']}"
    }
   }
 }
]

dancs.json 内容:

{
	"name": "yiqiao",
	"age": "30"
}

duocs.json 内容:

[
 {
  "name": "zhangshan",
  "age": "28"
 },
 {
  "name": "lishi",
  "age": "38"
 }
]

模拟-post

config.json 内容:

[
 {
  "request" :
   {
    "method": "post",
    "uri" : "/posts",
    "file": {
     "json": "requestcs.json"
    }
   },
  "response" :
  {
   "json": {"success": "true"}
  }
 }, 
 {
  "request" :
   {
    "method": "put",
    "uri" : "/puts",
    "file": {
     "json": "requestcs.json"
    }
   },
  "response" :
  {
   "json": {"success": "puttrue"}
  }
 },
 {
  "request" :
   {
    "method": "delete",
    "uri" : "/deletes"
   },
  "response" :
  {
   "json": {"success": "deletetrue"}
  }
 }
]

requestcs.json 入参文件内容:

{
	"usename": "test",
	"password" : "test"
}

1.访问post:结合配置文件config.json 内容:url:/posts;入参格式为:"json": "requestcs.json",返回json格式值 "success": "true",如下图postman操作:选择body-raw,选择josn(application/josn),输入URL:http://127.0.0.1:9999/posts,返回 "success": "true"

Python MOCK SERVER moco模拟接口测试过程解析

2.访问put

Python MOCK SERVER moco模拟接口测试过程解析

3.访问delete

Python MOCK SERVER moco模拟接口测试过程解析

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python自动zip压缩目录的方法
Jun 28 Python
Windows下Anaconda的安装和简单使用方法
Jan 04 Python
Python logging管理不同级别log打印和存储实例
Jan 19 Python
python和c语言的主要区别总结
Jul 07 Python
django中账号密码验证登陆功能的实现方法
Jul 15 Python
浅谈Django中view对数据库的调用方法
Jul 18 Python
关于Python中定制类的比较运算实例
Dec 19 Python
Python 开发工具PyCharm安装教程图文详解(新手必看)
Feb 28 Python
Python爬虫爬取、解析数据操作示例
Mar 27 Python
python对接ihuyi实现短信验证码发送
May 10 Python
2021年最新用于图像处理的Python库总结
Jun 15 Python
python计算列表元素与乘积详情
Aug 05 Python
JupyterNotebook 输出窗口的显示效果调整方法
Apr 13 #Python
解决Jupyter Notebook开始菜单栏Anaconda下消失的问题
Apr 13 #Python
Python selenium文件上传下载功能代码实例
Apr 13 #Python
20行Python代码实现视频字符化功能
Apr 13 #Python
解决jupyter notebook 前面书写后面内容消失的问题
Apr 13 #Python
jupyter notebook实现显示行号
Apr 13 #Python
Python文件时间操作步骤代码详解
Apr 13 #Python
You might like
PHP4和PHP5性能测试和对比 测试代码与环境
2007/08/17 PHP
利用PHP扩展vld查看PHP opcode操作步骤
2013/03/04 PHP
有关PHP性能优化的介绍
2013/06/20 PHP
php读取文件内容的几种方法详解
2013/06/26 PHP
PHP版微信第三方实现一键登录及获取用户信息的方法
2016/10/14 PHP
jquery tablesorter.js 支持中文表格排序改进
2009/12/09 Javascript
使用jQuery清空file文件域的解决方案
2013/04/12 Javascript
详解JavaScript函数绑定
2013/08/18 Javascript
教你如何使用PHP输出中文JSON字符串
2014/05/22 Javascript
jQuery简单实现页面元素置顶时悬浮效果示例
2016/08/01 Javascript
jQuery实现鼠标选中文字后弹出提示窗口效果【附demo源码】
2016/09/05 Javascript
vue.js实现用户评论、登录、注册、及修改信息功能
2020/05/30 Javascript
vue移动端实现下拉刷新
2018/04/22 Javascript
JS实现的input选择图片本地预览功能示例
2018/08/29 Javascript
深入了解JavaScript代码覆盖
2019/06/13 Javascript
2020淘宝618理想生活列车自动领喵币js脚本的代码
2020/06/02 Javascript
js判断鼠标移入移出方向的方法
2020/06/24 Javascript
EXTJS7实现点击拖拉选择文本
2020/12/17 Javascript
kNN算法python实现和简单数字识别的方法
2014/11/18 Python
利用Python实现Windows定时关机功能
2017/03/21 Python
对python_discover方法遍历所有执行的用例详解
2019/02/13 Python
使用Python检测文章抄袭及去重算法原理解析
2019/06/14 Python
python实现将列表中各个值快速赋值给多个变量
2020/04/02 Python
Django Session和Cookie分别实现记住用户登录状态操作
2020/07/02 Python
pycharm 2020 1.1的安装流程
2020/09/29 Python
HTML5 audio标签使用js进行播放控制实例
2015/04/24 HTML / CSS
ProBikeKit德国:在线公路自行车专家
2018/06/03 全球购物
美津浓巴西官方网站:Mizuno巴西
2019/07/24 全球购物
大学生农村教师实习自我鉴定
2013/09/21 职场文书
追悼会子女答谢词
2014/01/28 职场文书
办公室秘书岗位职责范本
2014/02/11 职场文书
职位说明书范文
2014/05/07 职场文书
鸟的天堂导游词
2015/01/31 职场文书
运动会加油稿30字
2015/07/21 职场文书
高一作文之乐趣
2019/11/21 职场文书
Python实现批量自动整理文件
2022/03/16 Python