mock

FastAPI+Charles进行数据Mock

1 场景使用

在以下场景可以用上Mock:

  • 存在第三方接口,但是第三方接口不好调用,比如第三方接口需要内网,需要VPN,这种情况下,如果进行接口自动化或者演示或者其他业务场景,那么就需要模拟出该接口的返回数据
  • 当一些特殊的测试场景,如测试字段超长显示,测试数据在较多的情况下的滑动/显示效果,这个时候就可以用到Mock

2 解决方案

  • FastAPI:是python中一个快速构建API的的Web框架,利用FastAPI进行构造接口名称和返回的数据,运行就后可以当作接口的服务端进行调用
  • Charles:进行抓包和代理,利用Charles的代理,将原本的接口请求代理到FastAPI中构造的接口,这个时候就会返回构造的数据了。

先进行fastapi安装

1
2
pip install fastapi
pip install uvicorn

编写代码创建一个main.py

1
2
3
4
5
6
7
8
from fastapi import FastAPI

app = FastAPI()

@app.get("/tree")
def get_louceng():
json_data = {"message": "Hello"}
return json_data

在控制台运行代码,产生一个服务端。如上代码运行后,访问127.0.0.1:8000/tree就会得到json_data数据

1
2
# fastapidemo是代码文件名称,app是实例化的对象
uvicorn fastapi:app --reload

在Charles的Tools—>Map remote中设置接口的代理信息,也可以抓包到要代理的接口后,选中接口点击右键,在右键菜单中点击Map remote。设置好接口代理信息后,再次进行抓包时,代理的接口就会请求FastAPI中的接口。

------------- End -------------