• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
九五二七乌托邦
博客园    首页    新随笔    联系   管理    订阅  订阅

四、locust 阶梯加压

# *_*coding:utf-8 *_*
# @Author : zyb
from locust import HttpUser, TaskSet, task, constant,FastHttpUser
from locust import LoadTestShape
class UserTasks(TaskSet):
    @task
    def get_root(self):
        self.client.get("/GetTztAll/")
class WebsiteUser(FastHttpUser):
    wait_time = constant(0.5)
    tasks = [UserTasks]
class StagesShape(LoadTestShape):
    #duration:运行时间,注意的地方就是 他是总时间,不是固定。
    #users:用户数
    #spawn_rate:每秒孵化数
    stages = [
        {"duration": 30, "users": 10, "spawn_rate": 10},
        {"duration": 80, "users": 50, "spawn_rate": 10},
    ]
    def tick(self):
        run_time = self.get_run_time()

        for stage in self.stages:
            if run_time < stage["duration"]:
                tick_data = (stage["users"], stage["spawn_rate"])
                return tick_data
        return None

if __name__ == "__main__":
    import os
    file_path = os.path.abspath(__file__)
    os.system(f"locust -f {file_path} --host=http://127.0.0.1:8000")

 

posted @ 2024-12-11 10:47  九五二七乌托邦  阅读(28)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3