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 相关文章推荐
浅谈numpy中linspace的用法 (等差数列创建函数)
Jun 07 Python
python利用正则表达式搜索单词示例代码
Sep 24 Python
详解python使用递归、尾递归、循环三种方式实现斐波那契数列
Jan 16 Python
Python爬取qq空间说说的实例代码
Aug 17 Python
python判断输入日期为第几天的实例
Nov 13 Python
selenium+python设置爬虫代理IP的方法
Nov 29 Python
对python周期性定时器的示例详解
Feb 19 Python
远程部署工具Fabric详解(支持Python3)
Jul 04 Python
详解Python绘图Turtle库
Oct 12 Python
Python3 元组tuple入门基础
Feb 09 Python
Python request使用方法及问题总结
Apr 26 Python
详解用Python调用百度地图正/逆地理编码API
Jul 02 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判断字符以及字符串的包含方法属性
2008/08/30 PHP
PHP实现支持SSL连接的SMTP邮件发送类
2015/03/05 PHP
laravel 解决Eloquent ORM的save方法无法插入数据的问题
2019/10/21 PHP
javascript 必知必会之closure
2009/09/21 Javascript
JSON.parse()和JSON.stringify()使用介绍
2014/06/20 Javascript
jQuery的one()方法用法实例
2015/01/19 Javascript
JS实现在线统计一个页面内鼠标点击次数的方法
2015/02/28 Javascript
轻松掌握jQuery中wrap()与unwrap()函数的用法
2016/05/24 Javascript
AngularJS实现分页显示数据库信息
2016/07/01 Javascript
jQuery之动画效果大全
2016/11/09 Javascript
详解Nuxt.js部署及踩过的坑
2018/08/07 Javascript
AngularJS发送异步Get/Post请求方法
2018/08/13 Javascript
深入解析ES6中的promise
2018/11/08 Javascript
python操作日期和时间的方法
2014/03/11 Python
python使用urllib2实现发送带cookie的请求
2015/04/28 Python
Python编程中运用闭包时所需要注意的一些地方
2015/05/02 Python
TensorFlow实现创建分类器
2018/02/06 Python
Python模拟登录的多种方法(四种)
2018/06/01 Python
Flask入门之上传文件到服务器的方法示例
2018/07/18 Python
对python Tkinter Text的用法详解
2018/10/11 Python
基于python监控程序是否关闭
2020/01/14 Python
详解有关PyCharm安装库失败的问题的解决方法
2020/02/02 Python
python numpy库linspace相同间隔采样的实现
2020/02/25 Python
基于Python数据分析之pandas统计分析
2020/03/03 Python
简单了解python关键字global nonlocal区别
2020/09/21 Python
美国潜水装备、水肺潜水和浮潜设备商店:Leisure Pro
2018/08/08 全球购物
美国香薰蜡烛品牌:PADDYWAX
2018/10/06 全球购物
海蓝之谜英国官网:La Mer英国
2020/01/15 全球购物
外企C语言笔试题
2013/11/10 面试题
玩手机检讨书1000字
2014/10/20 职场文书
期中考试复习计划
2015/01/19 职场文书
小学一年级数学教学计划
2015/01/20 职场文书
2015年保险公司内勤工作总结
2015/05/23 职场文书
2016年小学植树节活动总结
2016/03/16 职场文书
python中的3种定义类方法
2021/11/27 Python
HTML基本元素标签介绍
2022/02/28 HTML / CSS