【发布时间】:2021-02-18 16:55:17
【问题描述】:
我已经使用 fastapi 实现了一个 websocket。我正在使用 Jmeter websocket 采样器对其进行负载测试,其中一些请求因 WebSocket I/O 错误而失败:读取超时(至少这是我在 Jmeter 方面遇到的错误)。服务器端的错误:
ERROR: Exception in ASGI application
Traceback (most recent call last):
File "/home/udit.pandey/Desktop/workspace/chat_server/venv/lib/python3.7/site-packages/uvicorn/protocols/websockets/websockets_impl.py", line 157, in run_asgi
result = await self.app(self.scope, self.asgi_receive, self.asgi_send)
File "/home/udit.pandey/Desktop/workspace/chat_server/venv/lib/python3.7/site-packages/uvicorn/middleware/proxy_headers.py", line 45, in __call__
return await self.app(scope, receive, send)
File "/home/udit.pandey/Desktop/workspace/chat_server/venv/lib/python3.7/site-packages/fastapi/applications.py", line 199, in __call__
await super().__call__(scope, receive, send)
File "/home/udit.pandey/Desktop/workspace/chat_server/venv/lib/python3.7/site-packages/starlette/applications.py", line 111, in __call__
await self.middleware_stack(scope, receive, send)
File "/home/udit.pandey/Desktop/workspace/chat_server/venv/lib/python3.7/site-packages/starlette/middleware/errors.py", line 146, in __call__
await self.app(scope, receive, send)
File "/home/udit.pandey/Desktop/workspace/chat_server/venv/lib/python3.7/site-packages/starlette/exceptions.py", line 58, in __call__
await self.app(scope, receive, send)
File "/home/udit.pandey/Desktop/workspace/chat_server/venv/lib/python3.7/site-packages/starlette/routing.py", line 566, in __call__
await route.handle(scope, receive, send)
File "/home/udit.pandey/Desktop/workspace/chat_server/venv/lib/python3.7/site-packages/starlette/routing.py", line 283, in handle
await self.app(scope, receive, send)
File "/home/udit.pandey/Desktop/workspace/chat_server/venv/lib/python3.7/site-packages/starlette/routing.py", line 57, in app
await func(session)
File "/home/udit.pandey/Desktop/workspace/chat_server/venv/lib/python3.7/site-packages/fastapi/routing.py", line 247, in app
await dependant.call(**values)
File "./websocket.py", line 29, in post_req
body = await websocket.receive_json()
File "/home/udit.pandey/Desktop/workspace/chat_server/venv/lib/python3.7/site-packages/starlette/websockets.py", line 98, in receive_json
self._raise_on_disconnect(message)
File "/home/udit.pandey/Desktop/workspace/chat_server/venv/lib/python3.7/site-packages/starlette/websockets.py", line 80, in _raise_on_disconnect
raise WebSocketDisconnect(message["code"])
starlette.websockets.WebSocketDisconnect: 1006
此负载测试涵盖了 2 个场景:
- 5 用户在 10 秒内产生 结果:没有失败。
- 10 秒内产生 10 个用户 结果:在 Jmeter 采样器上出现错误“WebSocket I/O 错误:读取超时”的随机故障。
非常感谢您对此的任何帮助。谢谢。
【问题讨论】:
标签: python websocket jmeter fastapi