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网络编程之数据传输UDP实例分析
May 20 Python
Python3中的真除和Floor除法用法分析
Mar 16 Python
python编程羊车门问题代码示例
Oct 25 Python
Python金融数据可视化汇总
Nov 17 Python
python3.6+django2.0开发一套学员管理系统
Mar 03 Python
浅谈python连续赋值可能引发的错误
Nov 10 Python
浅谈Python在pycharm中的调试(debug)
Nov 29 Python
解决pyecharts在jupyter notebook中使用报错问题
Apr 23 Python
python实现连连看辅助之图像识别延伸
Jul 17 Python
django 消息框架 message使用详解
Jul 22 Python
python 调试冷知识(小结)
Nov 11 Python
Python 中判断列表是否为空的方法
Nov 24 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 模拟post_验证页面的返回状态(实例讲解)
2013/10/28 PHP
PHP扩展程序实现守护进程
2015/04/16 PHP
php利用递归实现删除文件目录的方法
2016/09/23 PHP
PHP实现登陆表单提交CSRF及验证码
2017/01/24 PHP
PHP7.3.10编译安装教程
2019/10/08 PHP
火狐浏览器(firefox)下获得Event对象以及keyCode
2008/11/13 Javascript
javascript十个最常用的自定义函数(中文版)
2009/09/07 Javascript
JavaScript中各种编码解码函数的区别和注意事项
2010/08/19 Javascript
修改jquery里的dialog对话框插件为框架页(iframe) 的方法
2010/09/14 Javascript
jquery判断密码强度的验证代码
2020/04/22 Javascript
JS HTML5实现拖拽移动列表效果
2020/08/27 Javascript
jstl中判断list中是否包含某个值的简单方法
2016/10/14 Javascript
NodeJS 实现手机短信验证模块阿里大于功能
2017/06/19 NodeJs
JS遍历DOM文档树的方法实例详解
2018/04/03 Javascript
Bootstrap 模态框自定义点击和关闭事件详解
2018/08/10 Javascript
nodejs中函数的调用实例详解
2018/10/31 NodeJs
Vue中props的详解
2019/05/16 Javascript
easyUI 实现的后台分页与前台显示功能示例
2020/06/01 Javascript
简单了解vue 插值表达式Mustache
2020/07/22 Javascript
[44:30]完美世界DOTA2联赛PWL S2 GXR vs Magma 第一场 11.25
2020/11/26 DOTA
打包发布Python模块的方法详解
2016/09/18 Python
Python模拟鼠标点击实现方法(将通过实例自动化模拟在360浏览器中自动搜索python)
2017/08/23 Python
Python连接phoenix的方法示例
2017/09/29 Python
把vgg-face.mat权重迁移到pytorch模型示例
2019/12/27 Python
Python实现井字棋小游戏
2020/03/09 Python
Python-openCV开运算实例
2020/07/05 Python
阿玛尼美国官方网站:Armani.com
2016/11/25 全球购物
Crabtree & Evelyn英国官网:瑰珀翠护手霜、香水、沐浴和身体护理
2018/04/26 全球购物
教师自我反思材料
2014/02/14 职场文书
信息技术培训感言
2014/03/06 职场文书
弘扬雷锋精神演讲稿
2014/05/10 职场文书
装饰施工员岗位职责
2015/04/11 职场文书
禁毒主题班会教案
2015/08/14 职场文书
致创业您:正能量激励人心句子(48条)
2019/08/15 职场文书
解决Golang time.Parse和time.Format的时区问题
2021/04/29 Golang
MySQL限制查询和数据排序介绍
2022/03/25 MySQL