Mock接口数据 = mock服务 + iptable配置

一、mock接口数据应用场景:

  1、测试接口A,A接口代码中调用其他服务的B接口,由于开发排期、测试环境不通等原因,依赖接口不可用

  2、测试异常情况,依赖接口B返回的数据格式不对、返回None、超时等,A接口的错误处理是否合理

二、 搭建mock服务 (python3.6 搭建,index.py),详细的flask使用,请另行百度。

  1、代码示例

# -*- coding: utf-8 -*-from flask import Flask,render_template,requestimport json,sys,flasksys.path.append("..")
app = Flask(__name__)
# get方法 1@app.route(‘/MockInterface/get_msg/<para>‘,methods=[‘GET‘])def my_mes(para):    if para:        return "succ"    else:        return "fail"

# get方法 2@app.route(‘/MockInterface/testget‘,methods=[‘GET‘])def testget():    para1 = flask.request.args.get(‘para1‘)    para2 = flask.request.args.get(‘para2‘)    para3 = flask.request.args.get(‘para3‘)    result = {        "para1":para1,        "para2":para2,        "para3":para3    }    return str(result)
# 设置用户的【用户等级】@app.route(‘/MockInterface/set_userinfo_level‘,methods=[‘POST‘])def set_userinfo_level():    try:        uid = str(flask.request.values.get(‘uid‘))
        level = int(flask.request.values.get(‘level‘))    except Exception as e:        datas = json.loads(flask.request.get_data())        uid = str(datas[‘uid‘])        level = int(datas[‘level‘])

    result = preAdmin_op().set_yh_evel(uid,level)  # 实际业务方法,可根据实际需求如何改    return(str(result))

if __name__ == ‘__main__‘:    app.run(host=‘0.0.0.0‘,port=5000,debug=True)
 

  2、启动mock服务

  注:mock部署的服务器,须与开发代码所在的服务器 网络互通。mock部署的位置信息用于以下iptable配置。

三、iptable配置 (在开发代码部署的机器上,root权限操作)

  1、查看iptables配置:iptables -t nat -L --line-number

  2、代码在A机器上,代码里需要访问192.169.4.17:80(依赖方),测试时候依赖方的接口没有准备好,就可以mock这个接口,让代码请求依赖方时,转到自己mock的服务上(192.169.4.18:8099),也方便构造各种场景

  iptables -t nat -A OUTPUT -d 192.169.4.17 -p tcp --dport 80 -j DNAT --to 192.169.4.18:8099

  3、参数含义:-t 表名 -A 增加规则名 -d 发往目的地ip -p 协议 -d端口号 -j 跳转目标 --to 目标ip:端口号

  4、测试完后,需要删除A机器上的这条转发规则。行号可根据第一步种查出

  iptables -t nat -D OUTPUT 行号

原文地址:https://www.cnblogs.com/wl-0929/p/mockInterface_wl.html

时间: 2024-11-07 12:02:06

Mock接口数据 = mock服务 + iptable配置的相关文章

iOS开发mock接口数据(三)之实战教程

??接上篇文章,我对一些匹配的方法进行了介绍,这篇文章主要为大家说说实际操作的步骤. plist文件如何配置 ??plist文件的配置对于APIMock的至关重要,直接关系到能否运用AOP编程思想实现JKAPIMock所要达到的目标.如下图: 这里主要针对GET,POST请求做了处理,如果某个接口不需要进行数据mock操作,isMock设置为NO即可,另外考虑到开发过程中开发,生产服务器会切换的情况我这里只匹配服务器后面的接口URL,不匹配服务器地址.当然了如果大家想的话,可以自己加上去. 如何

KB: Operations Manager为什么刚装好就显示数据访问服务SPN未注册

对于我这种强迫症患者,服务账号能用域账号就不用本地的.微软最佳实践也是这么建议的,于是我在安装SCOM的时候就是按照下面这样来规划账户的. 用户名 用途 权限级别 类型 隶属于 acertwp\svcomda OM数据访问服务和配置服务帐户 低权域用户 用户 SQL本地管理员SCOM本地管理员 acertwp\svcomw OM数据仓库写入账户 低权域用户 用户 SQL本地管理员SCOM本地管理员 acertwp\svcomr OM报表查询账户 低权域用户 用户 SQL本地管理员SCOM本地管理

转:Swagger2自动生成接口文档和Mock模拟数据

转自:https://www.cnblogs.com/vipstone/p/9841716.html 一.简介 在当下这个前后端分离的技术趋势下,前端工程师过度依赖后端工程师的接口和数据,给开发带来了两大问题: 问题一.后端接口查看难:要怎么调用?参数怎么传递?有几个参数?参数都代表什么含义? 问题二.返回数据操作难:数据返回不对或者不够怎么办?怎么才能灵活的操作数据? 这是很多公司前后端分离之后带来的困扰,那怎么来解决这些问题? 问题一的一般解决方案:后端团队共同维护一个在线文档,每次改接口再

在Vue中使用mock模拟接口数据

一.在配置文件里添加新的代理mock模拟数据的地址(如下) 二.使用接口地址 原文地址:https://www.cnblogs.com/exclusiveMemory/p/9842515.html

fiddler-9-结合 Mock.js 伪接口数据进行测试(上)

前言 fiddler 结合 Mcok.js 伪接口数据究竟如何使用呢?我将站在测试的角度出发进行使用,当然前端开发人员也是可以使用,本篇是首先熟悉 Mock.js 的基本使用和基本语法. 如果您需要安装 Mcok.js 请参考:https://www.cnblogs.com/gsxl/p/12173856.html 一.简单了解 Mock.js 使用 1.登录页面如下:  2.输入任意账号密码(不存在账号密码则是新注册) 3.添加项目:  4.创建接口:  5.Mock.js 语法:竖杠大法 |

测试开发系列之Python开发mock接口(二)

上一篇咱们已经把开发前的环境准备好了,还需要再做一点准备,你的账户信息是存在哪的呢,当然是存在数据库里的,咱们在去支付,扣钱的时候,肯定是从数据库里面操作的,去更新账户表里面的数据,所以咱们先要把数据库准备好,建好账户表,初始化几条账户信息,这样才能完整的把这个mock接口给完成. 这篇咱们就学习一下python怎么操作数据库,怎么执行sql,数据库使用sqlite,sqlite是一个跨平台开源的轻量级关系型数据库,不需要配置和安装直接就可以使用,sql语句和mysql.sqlserver.or

Python之mock接口开发

mock接口开发需要使用flask模块,安装flask模块 pip install flask import flask import json server=flask.Flask(__name__) #__name__是指把当前python文件当作一个服务 @server.route('/api/login',methods=['post','get']) #默认不传methods是get请求 def login(): username=flask.request.values.get('u

在vue-cli搭建的项目中在后台mock接口中支持req.body和req.cookies

在<vue-cli搭建的项目中增加后台mock接口>中实现了后台mock,但是前端post的t数据都要在mock的后台接口中使用req的接收数据事件获取http协议body中的数据. req.on('data', function(chunk){ //接收字节数据 }); req.end('data', function(){ //转换||处理 }); req.error('error', function(e){ //处理错误 }); 如果前端需要使用cookie,后端要读取,那么在后台mo

数据访问池+服务插件配置+数据库配置

01.数据访问对象池 TDBAPool a.分配访问对象: DBAPool.AllocateObject;  //每次都新建一个 b.返还访问对象: DBAPool.ReleaseObject(TDBAccess); //释放并注销掉 c.分配对象数量: DBAPool.AllocatedObjects; 02.服务端数据库配置信息的处理:TDBConfig a.取现有已注册数据库信息: DBConfig.FetchDatabaseList(var CDS:TClientDataSet) b.注