mirror of
https://github.com/fastapiadmin/FastapiAdmin.git
synced 2026-10-04 01:10:36 +00:00
refactor: 迁移前端资源文件至web目录 feat: 新增多种图标资源 style: 统一代码风格和格式化配置 docs: 更新README和文档说明 chore: 更新依赖和配置文件 fix: 修复部分类型定义和枚举 perf: 优化路由和组件加载逻辑
66 lines
2.0 KiB
Python
66 lines
2.0 KiB
Python
import time
|
|
from locust import HttpUser, task, between, User
|
|
from locust.runners import MasterRunner
|
|
|
|
from locust import events
|
|
|
|
@events.test_start.add_listener
|
|
def on_test_start(environment, **kwargs):
|
|
print("开始监听")
|
|
|
|
@events.test_stop.add_listener
|
|
def on_test_stop(environment, **kwargs):
|
|
print("结束监听")
|
|
|
|
@events.init.add_listener
|
|
def on_locust_init(environment, **kwargs):
|
|
if isinstance(environment.runner, MasterRunner):
|
|
print("我在master节点上")
|
|
else:
|
|
print("我在worker节点或独立节点上")
|
|
|
|
class QuickstartUser(HttpUser):
|
|
# 例如,让每个用户在每次任务执行之间等待0.5到10秒:
|
|
wait_time = between(0.5, 10)
|
|
|
|
# 例如,下一个用户类会睡一秒,然后两秒,再三秒,依此类推。
|
|
last_wait_time = 0
|
|
|
|
def wait_time(self):
|
|
self.last_wait_time += 1
|
|
return self.last_wait_time
|
|
|
|
# @task 会有一个可选的权重参数,可以用来指定任务的执行比率。在 以下示例,任务2被选中的概率是任务1的两倍:
|
|
@task(3)
|
|
def task1(self):
|
|
self.client.get("/hello")
|
|
self.client.get("/world")
|
|
|
|
@task(6)
|
|
def task2(self):
|
|
for item_id in range(10):
|
|
self.client.get(f"/item?id={item_id}", name="/item")
|
|
time.sleep(1)
|
|
|
|
|
|
@task
|
|
def my_task(self):
|
|
with self.client.get("/", catch_response=True) as response:
|
|
if response.text != "Success":
|
|
response.failure("Got wrong response")
|
|
elif response.elapsed.total_seconds() > 0.5:
|
|
response.failure("Request took too long")
|
|
elif response.status_code == 404:
|
|
raise RescheduleTask()
|
|
|
|
def on_start(self):
|
|
self.client.post("/login", json={"username":"foo", "password":"bar"})
|
|
|
|
# 例如,假设我们有一个WebUser类和一个MobileUser类,我们想让MobileUser类的用户权重为1,而WebUser类的用户权重为3。
|
|
class WebUser(User):
|
|
weight = 3
|
|
...
|
|
|
|
class MobileUser(User):
|
|
weight = 1
|
|
... |