我成功地在同一个域上使用docker和本地为GET请求运行了locust。但我不能让它在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文件不正确时容器立即退出?
谢谢!
发布于 2021-03-02 01:40:31
您只是省略了下面这行的结束括号:
events.request_success.fire(下面是你的代码修复:
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://stackoverflow.com/questions/66426851
复制相似问题