【发布时间】:2021-03-01 17:33:45
【问题描述】:
我在同一个域上成功地运行了 locust 以获取 GET 请求,无论是使用 docker 还是在本地。 但我不能让它与 websocket 一起工作。
我的 locustfile.py:
import time, websocket
from locust import HttpUser, task, between, events
from websocket import create_connection
import gevent
class QuickstartUser(HttpUser):
wait_time = between(1, 5)
@task
def on_start(self):
ws = create_connection('wss://REDACTED.com')
g = gevent.spawn(self.connect)
g.get(block=True, timeout=10)
g = gevent.spawn(self.subscribe)
g.get(block=True, timeout=10)
g = gevent.spawn(self.send)
g.get(block=True, timeout=10)
def _receive():
while True:
res = ws.recv()
events.request_success.fire(
request_type='Websocket Receive Message',
name='test websocket message receive',
response_time=0,
response_length=len(res)
gevent.spawn(_receive)
(取自https://medium.com/@rajatsaxena120/websockets-in-python-d91c7bc2fd22)
我不断得到:
File "./locustfile.py", line 27
gevent.spawn(_receive)
^
SyntaxError: invalid syntax
我还注意到docker镜像中缺少websocket,一旦py文件不正确,容器退出时如何添加pip install websocket-client?
谢谢!
【问题讨论】:
-
数一数你的括号!
-
是的,看来括号是问题所在。
events.request_success.fire(的结尾括号在哪里?我已在my answer 中修复它