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判断windows隐藏文件的方法
Mar 21 Python
python通过floor函数舍弃小数位的方法
Mar 17 Python
Python xlrd读取excel日期类型的2种方法
Apr 28 Python
python web框架学习笔记
May 03 Python
Python基础教程之内置函数locals()和globals()用法分析
Mar 16 Python
pandas DataFrame实现几列数据合并成为新的一列方法
Jun 08 Python
对dataframe进行列相加,行相加的实例
Jun 08 Python
python爬虫之urllib,伪装,超时设置,异常处理的方法
Dec 19 Python
python 通过麦克风录音 生成wav文件的方法
Jan 09 Python
Python将列表数据写入文件(txt, csv,excel)
Apr 03 Python
MoviePy常用剪辑类及Python视频剪辑自动化
Dec 18 Python
Django路由层如何获取正确的url
Jul 15 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
php结合mysql与mysqli扩展处理事务的方法
2016/06/29 PHP
使用正则去除php代码中的注释方法
2016/11/03 PHP
jquery tools 系列 scrollable学习
2009/09/06 Javascript
json 实例详细说明教程
2009/10/31 Javascript
Javascript下IE与Firefox下的差异兼容写法总结
2010/06/18 Javascript
StringTemplate遇见jQuery冲突的解决方法
2011/09/22 Javascript
用示例说明filter()与find()的用法以及children()与find()的区别分析
2013/04/26 Javascript
javascript学习笔记--数字格式类型
2014/05/22 Javascript
jQuery提示效果代码分享
2014/11/20 Javascript
js用拖动滑块来控制图片大小的方法
2015/02/27 Javascript
在AngularJS应用中实现一些动画效果的代码
2015/06/18 Javascript
JS+JSP通过img标签调用实现静态页面访问次数统计的方法
2015/12/14 Javascript
easyui validatebox验证
2016/04/29 Javascript
AngularJS 执行流程详细介绍
2016/08/18 Javascript
js时间戳格式化成日期格式的多种方法介绍
2017/02/16 Javascript
JS+CSS实现滚动数字时钟效果
2017/12/25 Javascript
vuex与组件联合使用的方法
2018/05/10 Javascript
JS实现马赛克图片效果完整示例
2019/04/13 Javascript
小程序云开发之用户注册登录
2019/05/18 Javascript
JS实现返回上一页并刷新页面的方法分析
2019/07/16 Javascript
javascript实现下拉菜单效果
2021/02/09 Javascript
在Python上基于Markov链生成伪随机文本的教程
2015/04/17 Python
详解Python核心编程中的浅拷贝与深拷贝
2018/01/07 Python
python 模拟贷款卡号生成规则过程解析
2019/08/30 Python
Python3显示当前时间、计算时间差及时间加减法示例代码
2019/09/07 Python
Python如何使用函数做字典的值
2019/11/30 Python
Django crontab定时任务模块操作方法解析
2020/09/10 Python
DC Shoes官网:美国滑板鞋和服饰品牌
2017/09/03 全球购物
酒店保洁主管岗位职责
2013/11/28 职场文书
深入开展党的群众路线教育实践活动方案
2014/02/04 职场文书
会计专业自荐信
2014/06/03 职场文书
实验室标语
2014/06/21 职场文书
俄语专业毕业生求职信
2014/07/12 职场文书
2014年出纳工作总结与计划
2014/12/09 职场文书
制定企业培训计划的五大要点!
2019/07/10 职场文书
zabbix自定义监控nginx状态实现过程
2021/11/01 Servers