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 相关文章推荐
以911新闻为例演示Python实现数据可视化的教程
Apr 23 Python
Django小白教程之Django用户注册与登录
Apr 22 Python
从CentOS安装完成到生成词云python的实例
Dec 01 Python
Python实现Event回调机制的方法
Feb 13 Python
详解Python给照片换底色(蓝底换红底)
Mar 22 Python
PyQt5中多线程模块QThread使用方法的实现
Jan 31 Python
python 弧度与角度互转实例
Apr 15 Python
Python执行时间的几种计算方法
Jul 31 Python
利用Python的folium包绘制城市道路图的实现示例
Aug 24 Python
python 实现控制鼠标键盘
Nov 27 Python
Python竟然能剪辑视频
May 25 Python
详解Python常用的魔法方法
Jun 03 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
牡丹941资料
2021/03/01 无线电
PHP 和 MySQL 基础教程(四)
2006/10/09 PHP
PHP不使用递归的无限级分类简单实例
2016/11/05 PHP
php使用Jpgraph创建折线图效果示例
2017/02/15 PHP
thinkphp5 URL和路由的功能详解与实例
2017/12/26 PHP
PHP实现通过CURL上传文件功能示例
2018/05/30 PHP
laravel5使用freetds连接sql server的方法
2018/12/07 PHP
PHP后期静态绑定实例浅析
2018/12/21 PHP
Javascript操作select方法大全[新增、修改、删除、选中、清空、判断存在等]
2008/09/26 Javascript
javascript 写类方式之三
2009/07/05 Javascript
HTML Dom与Css控制方法
2010/10/25 Javascript
javascript怎么禁用浏览器后退按钮
2014/03/27 Javascript
JQuery中使用.each()遍历元素学习笔记
2014/11/08 Javascript
Javascript核心读书有感之语句
2015/02/11 Javascript
jQuery实现新消息闪烁标题提示的方法
2015/03/11 Javascript
Javascript中的匿名函数与封装介绍
2015/03/15 Javascript
JavaScript提升性能的常用技巧总结【经典】
2016/06/20 Javascript
JS图片左右无缝隙滚动的实现(兼容IE,Firefox 遵循W3C标准)
2016/09/23 Javascript
JavaScript 最佳实践:帮你提升代码质量
2016/12/03 Javascript
温故知新——JavaScript中的字符串连接问题最全总结(推荐)
2017/08/21 Javascript
Vue数据监听方法watch的使用
2018/03/28 Javascript
vue中v-model的应用及使用详解
2018/06/27 Javascript
微信小程序实现收藏与取消收藏切换图片功能
2018/08/03 Javascript
使用Javascript简单计算器
2018/11/17 Javascript
[23:18]Spirit vs Liquid Supermajor小组赛A组 BO3 第二场 6.2
2018/06/03 DOTA
python利用hook技术破解https的实例代码
2013/03/25 Python
Python中super关键字用法实例分析
2015/05/28 Python
python实现简单购物商城
2016/05/21 Python
使用Python获取爱奇艺电视剧弹幕数据的示例代码
2021/01/12 Python
html5构建触屏网站之网站尺寸探讨
2013/01/07 HTML / CSS
农村面貌改造提升实施方案
2014/03/18 职场文书
优秀应届本科生求职信
2014/07/19 职场文书
商业用房租赁协议书
2014/10/13 职场文书
趣味运动会赞词
2015/07/22 职场文书
Django 实现jwt认证的示例
2021/04/30 Python
bose降噪耳机音能消除人声吗
2022/04/19 数码科技