接口测试快速mock接口数据的工具——FastApi

FastApi教程

软件测试者一定要的微信公众号 软件测试技术 ,每天有大量干货更新,不仅仅有测试技术哦~

fastapi

官网介绍如下:

FastAPI framework, high performance, easy to learn, fast to code, ready for production.
FastAPI框架,高性能,易于学习,代码快速,可投入生产

安装

版本 python3.6+

pip install fastapi
pip install uvicorn
快速上手案例

创建一个main.py的文件

from fastapi import FastAPI

app = FastAPI()


@app.get("/")
def read_root():
    return {"Hello": "World"}


@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None):
    return {"item_id": item_id, "q": q}
运行

运行命令 uvicorn main:app --reload

$ uvicorn main:app --reload

InFo: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
InFo: Started reloader process using 
InFo: Started server process 
InFo: Waiting for application startup.
InFo: Application startup complete.
登入url查看

登录http://127.0.0.1:8000/,返回:

{"Hello":"World"}

登录http://127.0.0.1:8000/items/9527?q=1234,返回:

{"item_id":9527,"q":"1234"}

登录http://127.0.0.1:8000/docs,可以看到自动交互API文档:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FurVBujH-1591090260868)(https://i.loli.net/2020/06/01/u6PBzxEbS9dmYw1.png)]

如果运行的时候增加,--reload命令参数,则API文档自动会随着定义而更新。例如增加put请求:

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()


class Item(BaseModel):
    name: str
    price: float
    is_offer: bool = None


@app.get("/")
def read_root():
    return {"Hello": "World"}


@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None):
    return {"item_id": item_id, "q": q}


@app.put("/items/{item_id}")
def update_item(item_id: int, item: Item):
    return {"item_name": item.name, "item_id": item_id}

登录 http://127.0.0.1:8000/redoc,备份Api文档,可以实时看到文档变化:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MPxqSMCz-1591090260869)(https://i.loli.net/2020/06/01/fniypldOPUbjRSN.png)]

调试

登录http://127.0.0.1:8000/docs,点击对应的接口下的Try it out,就可以调试接口:

调试

性能

官方对性能解释如下:

Independent TechEmpower benchmarks show FastAPI applications running under Uvicorn as one of the fastest Python frameworks available, only below Starlette and Uvicorn themselves (used internally by FastAPI).

独立机构 TechEmpower 所作的基准测试结果显示,基于 Uvicorn 运行的 FastAPI 程序是 最快的 Python web 框架之一,仅次于 Starlette 和 Uvicorn 本身(FastAPI 内部使用了它们)

总结
  • 就像声明函数的参数类型一样只声明了一次请求参数、请求体等的类型。
  • 你使用了标准的现代 Python 类型来完成声明。
  • 你不需要去学习新的语法、了解特定库的方法或类,等等只需要使用标准的 Python 3.6 及更高版本。
软件测试交流群 209092584
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

软件测试技术

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值