You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Sequential Task类按顺序运行HttpUser类方法

用SequentialTaskSet实现HttpUser方法的顺序执行

完全可以用SequentialTaskSet来实现按顺序运行get/put方法,它就是Locust中专门用于按定义顺序执行任务的组件,下面是具体实现步骤:

实现步骤

  1. 导入依赖模块
    首先导入Locust的核心类和装饰器:

    from locust import HttpUser, SequentialTaskSet, task, between
    
  2. 定义顺序任务集合
    创建继承自SequentialTaskSet的类,把需要按顺序执行的get、put请求方法放在里面,用@task装饰每个方法——这里的权重设置不会影响执行顺序,任务会严格按照你定义的先后顺序执行:

    class OrderedTaskSet(SequentialTaskSet):
        @task
        def execute_get(self):
            # 执行GET请求,替换为你的实际接口路径和参数
            response = self.client.get("/api/data")
            # 可选:添加响应断言或日志
            if response.status_code != 200:
                print("GET请求失败")
    
        @task
        def execute_put(self):
            # 执行PUT请求,替换为你的实际接口路径和请求体
            payload = {"id": 1, "content": "updated content"}
            response = self.client.put("/api/data/1", json=payload)
            if response.status_code != 200:
                print("PUT请求失败")
    
  3. 关联HttpUser与任务集合
    修改你的HttpUser类,将tasks属性指向上面定义的顺序任务集合类:

    class MyHttpUser(HttpUser):
        tasks = [OrderedTaskSet]
        # 可选:设置任务之间的等待时间范围(单位:秒)
        wait_time = between(1, 3)
    

扩展:循环执行任务序列

如果需要让用户重复执行整个get→put的任务序列,可以在任务集合类中添加循环逻辑,比如借助on_start方法:

class OrderedTaskSet(SequentialTaskSet):
    def on_start(self):
        # 启动后循环执行任务序列
        while True:
            self.execute_get()
            self.execute_put()
            # 触发wait_time定义的等待
            self.wait()

    @task
    def execute_get(self):
        self.client.get("/api/data")

    @task
    def execute_put(self):
        payload = {"id": 1, "content": "updated content"}
        self.client.put("/api/data/1", json=payload)

注意事项

  • SequentialTaskSet中的任务会严格按照方法定义的先后顺序执行,和@task的权重参数无关
  • 可以通过on_start和on_stop方法添加任务序列的初始化和清理逻辑
  • 确保self.client的调用正确,它继承自HttpUser的客户端实例,用于发送HTTP请求

内容的提问来源于stack exchange,提问作者Saro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 00:07:12