Python MOCK SERVER moco模拟接口测试过程解析
作者:天天向上327 发布时间:2023-12-15 06:37:00
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,如下图:
成功启动mock,如下图
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"
2.访问put
3.访问delete
来源:https://www.cnblogs.com/yiwenrong/p/12664385.html


猜你喜欢
- 本文实例讲述了Python编程之变量赋值操作。分享给大家供大家参考,具体如下:#coding=utf8''''
- 引言首先来一段简单的代码逻辑热身,下面的代码大家觉得应该会打印什么呢?type OKR struct { id
- 最近,Facebook设计团队在其位于加州帕罗奥多市(Palo Alto)的总部,提到了他们为2.5亿用户设计的原理和方法。 他们特别强调了
- 首先来看一个例子,正常情况下我们定义并且实例一个类如下class Foo(object):def __init__(self):  
- 最近开始研究Python的并行开发技术,包括多线程,多进程,协程等。逐步整理了网上的一些资料,今天整理了一下greenlet相关的资料。并发
- 目录v-model.sync细微之处的区别总结功能作用场景:v-model <!--父组件--> &n
- 现在基于WEB页的HTML的编辑器在新闻系统,文章系统中用得越来越广,一个网页一粘就可以保持原来的样式,同时图片也可以在这个页中保持。但是在
- 前言在学习任何一个后端技术,如果不让数据库参与进来,那只能说在学习过程中都不算完整的。以前用的是5.7版本的MySQL,在学习实践Sprin
- 我们也可以来做一个,但这个“定时器”的工作时间范围应控制在1个小时至100 毫秒之间: <%sub StartTi
- 前言本文给大家详细介绍了解决php-fpm.service not found问题的相关内容,文中介绍的非常详细,下面来一起看看详细的介绍:
- print() 方法用于打印当前窗口的内容,支持部分或者整个网页打印。调用 print() 方法所引发的行为就像用户单击浏览器的打印按钮。通
- PyQt实现界面翻转切换效果是用qt的场景功能来实现的,用到了QGraphicsView,QGraphicsLinearLayout,QGr
- win7 64位下如何安装配置mysql-5.7.5-m15-winx64 距离上次安装MySQL已经过去好久了。步骤这些,有可能
- 前言在laravel项目开发中,经常使用到公共函数,那如何在laravel配置全局公共函数呢??下面话不多说了,来一起看看详细的介绍吧方法如
- 一、前言为方便描述教程例子,这里给出mysql表结构定义和golang结构体定义。下面是教程用到的foods表结构定义:CREATE TAB
- 一、前端请求的封装1.将请求地址封装起来,以便日后修改,在src/assets/js目录下创建getPath.js文件export defa
- pickle 是一个 python 中, 压缩/保存/提取 文件的模块,字典和列表都是能被保存的.但必须注意的是python2以ASCII形
- 总结大家都知道,在开发中提供用户登录以及维护用户的登录状态,是一个拥有用户系统的软件应用普遍需要做的事情。像微信这样的一个社交平台,如果做一
- TensorFlow提供了一种统一的格式来存储数据,就是TFRecord,它可以统一不同的原始数据格式,并且更加有效地管理不同的属性。TFR
- 拼音类文件py_class.php源码如下:<?php class py_class{ function py_class(){