【发布时间】:2021-09-22 14:00:10
【问题描述】:
当测试的 https 网站前的负载均衡器故障转移时,这会在几秒钟内产生一些 HTTPError 500,然后 Locust 挂起:
- 响应时间图停止(空图)
- 每秒的总请求数变成错误的绿色扁平线。 如果我只是停止并开始测试,locust 会重新启动正确监控响应时间。
- 我们可以在“失败”选项卡中看到一些 HTTPError 500
这是一个错误吗? 如何确保 Locust 手动或超时杀死并重新启动用户?
我尝试定期“立即重新安排任务”没有帮助。
我的 locustfile.py:
#!/usr/bin/env python
import time
import random
from locust import HttpUser, task, between, TaskSet
from locust.exception import InterruptTaskSet, RescheduleTaskImmediately
URL_LIST = [
"/url1",
"/url2",
"/url3",
]
class QuickstartTask(HttpUser):
wait_time = between(0.1, 0.5)
connection_timeout = 15.0
network_timeout = 20.0
def on_start(self):
# Required to use the http_proxy & https_proxy
self.client.trust_env = True
print("New user started")
self.client.timeout = 5
self.client.get("/")
self.client.get("/favicon.ico")
self.getcount = 0
def on_stop(self):
print("User stopped")
@task
def track_and_trace(self):
url = URL_LIST[random.randrange(0,len(URL_LIST))]
self.client.get(url, name=url[:50])
self.getcount += 1
if self.getcount > 50 and (random.randrange(0,1000) > 990 or self.getcount > 200):
print(f'Reschedule after {self.getcount} requests.')
self.client.cookies.clear()
self.getcount = 0
raise RescheduleTaskImmediately
【问题讨论】:
-
如果您有多个人试图同时访问 Locust UI,我已经看到了这种行为。您是唯一一个尝试查看 UI 的人还是其他人?