FastAPI 学习之路(四十八)WebSockets(四)接口测试

在我们测试的过程中,肯定会对接口进行测试。之前分享过的FastApi学习之路(三十八)对开发接口进行测试,那么我们针对websockets接口怎么测试呢。

其实也很简单

复制代码
from fastapi.testclient import TestClient
from main import app


def test_websocket():
    client = TestClient(app)
    with client.websocket_connect("/items/ws?token=fake-token") as websocket:
        websocket.send_text("Hello, this is testing websocket")
        data = websocket.receive_text()
        assert str(data) == f"Message is: Hello, this is testing websocket"


if __name__ == '__main__':
    test_websocket()

执行测试发现报错

这个错误,主要是我们在最后的时候没有释放链接,我们可以在代码中链接接受到消息后,返回完毕关闭链接,或者说我们单元测试的时候关闭链接。

复制代码
@app.websocket("/items/ws")
async def websocket_endpoint(
    websocket: WebSocket,
    cookie_or_token: str = Depends(get_cookie_or_token),
):
    await websocket.accept()
    while True:
        data = await websocket.receive_text()
        if data == "Hello, this is testing websocket":
            await websocket.send_text(f"Message is: {data}")
            break
        else:
            await websocket.send_text(f"Message is: {data}")

其实要做的测试很简单,我们可以利用这个方式对于我们已经开发的接口进行测试。

相关推荐
蓝倾3 天前
小红书获取笔记详情API接口调用操作指南
前端·api·fastapi
六毛的毛3 天前
FastAPI入门:表单数据、表单模型、请求文件、请求表单与文件
前端·python·fastapi
码@农4 天前
Python三大Web框架:FastAPI vs Flask vs Django 详解与快速入门指南
python·fastapi
MC皮蛋侠客4 天前
AsyncIOScheduler 使用指南:高效异步任务调度解决方案
网络·python·fastapi
蓝倾5 天前
淘宝拍立淘(以图搜图)API接口调用流程指南
前端·api·fastapi
cts6188 天前
全文检索官网示例
python·全文检索·fastapi
半新半旧9 天前
FastAPI中间件
中间件·fastapi
爱吃羊的老虎10 天前
【后端】FastAPI的Pydantic 模型
数据库·后端·python·fastapi
Elastic 中国社区官方博客10 天前
使用 FastAPI 构建 Elasticsearch API
大数据·数据库·python·elasticsearch·搜索引擎·全文检索·fastapi
陈小桔11 天前
SQLALchemy
python·fastapi