蝗虫 gevent 语法?
Locust gevent syntax?
我成功地 运行 蝗虫在同一域上的 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(
这是您修复的代码:
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)
我成功地 运行 蝗虫在同一域上的 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(
这是您修复的代码:
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)