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抓取网页中的图片示例
Feb 28 Python
Python算法之栈(stack)的实现
Aug 18 Python
Python UnicodeEncodeError: 'gbk' codec can't encode character 解决方法
Apr 24 Python
python操作ie登陆土豆网的方法
May 09 Python
Python中强大的命令行库click入门教程
Dec 26 Python
Python将DataFrame的某一列作为index的方法
Apr 08 Python
解决Python print 输出文本显示 gbk 编码错误问题
Jul 13 Python
Python3.6简单的操作Mysql数据库的三个实例
Oct 17 Python
python getpass实现密文实例详解
Sep 24 Python
pytorch绘制并显示loss曲线和acc曲线,LeNet5识别图像准确率
Jan 02 Python
解决keras使用cov1D函数的输入问题
Jun 29 Python
python海龟绘图之画国旗实例代码
Nov 11 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
phpMyAdmin 链接表的附加功能尚未激活的问题
2010/08/01 PHP
php实现SAE上使用storage上传与下载文件的方法
2015/06/29 PHP
py文件转exe时包含paramiko模块出错解决方法
2016/08/12 PHP
php与c 实现按行读取文件实例代码
2017/01/03 PHP
PHP mysqli事务操作常用方法分析
2017/07/22 PHP
PHP基于mcript扩展实现对称加密功能示例
2019/02/21 PHP
PHP 实现文件压缩解压操作的方法
2019/06/14 PHP
js option删除代码集合
2008/11/12 Javascript
悄悄用脚本检查你访问过哪些网站的代码
2010/12/04 Javascript
js 获取后台的字段 改变 checkbox的被选中的状态 代码
2013/06/05 Javascript
JS获取几种URL地址的方法小结
2014/02/26 Javascript
JavaScript中this的用法及this在不同应用场景的作用解析
2017/04/13 Javascript
BootStrap中Table隐藏后显示问题的实现代码
2017/08/31 Javascript
element ui里dialog关闭后清除验证条件方法
2018/02/26 Javascript
vue实现登录页面的验证码以及验证过程解析(面向新手)
2019/08/02 Javascript
JS实现横向轮播图(初级版)
2020/06/24 Javascript
[01:04:05]VG vs Newbee 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
[50:50]完美世界DOTA2联赛PWL S3 Galaxy Racer vs Phoenix 第一场 12.10
2020/12/13 DOTA
Python中使用支持向量机(SVM)算法
2017/12/26 Python
selenium+python自动化测试环境搭建步骤
2019/06/03 Python
python识别文字(基于tesseract)代码实例
2019/08/24 Python
python实现视频读取和转化图片
2019/12/10 Python
Pygame的程序开始示例代码
2020/05/07 Python
python boto和boto3操作bucket的示例
2020/10/30 Python
PyCharm安装PyQt5及其工具(Qt Designer、PyUIC、PyRcc)的步骤详解
2020/11/02 Python
python爬虫看看虎牙女主播中谁最“顶”步骤详解
2020/12/01 Python
Python 求向量的余弦值操作
2021/03/04 Python
美国快时尚彩妆品牌:Winky Lux(透明花瓣润唇膏)
2018/11/06 全球购物
大学生工作推荐信范文
2013/12/02 职场文书
社团成立邀请函
2014/01/08 职场文书
安全生产大检查方案
2014/05/07 职场文书
微电影大赛策划方案
2014/06/05 职场文书
音乐幼师求职信
2014/07/09 职场文书
校园主题婚礼活动策划方案
2014/09/15 职场文书
客房领班岗位职责
2015/02/11 职场文书
求职推荐信范文
2015/03/27 职场文书