python_locust_3类任务场景设计

本章概要:
(1)这个用的非常少:单独的任务
(2)常见:业务多个接口没有依赖关系_任务TaskSet:执行起来是并行的
(3)常见:业务多个接口有依赖关系_任务SequentialTaskSet是taskset的子类:只有这个子类执行是有序的 >>> 打开1次百度,执行10次登陆
(4)常见:业务比较简单_封装在httpuser用户里面的任务
(5)任务集合
from locust import HttpUser, constant, task


# (1)这个用的非常少:单独的任务
def task1(user):
    user.client.request(method="get", url="https://baidu.com", name="打开百度首页")

def task2(user):
    user.client.request(method="get", url="https://blog.csdn.net/weixin_45451320", name="打开腾哥首页")


# (2)常见:业务多个接口没有依赖关系_任务TaskSet:执行起来是并行的
from locust import TaskSet
class FlashTask(TaskSet):
    @task
    def addtask1(self):
        self.client.request(method="get", url="https://baidu.com", name="打开百度首页")
    @task
    def addtask2(self):
        self.client.request(method="get", url="https://blog.csdn.net/weixin_45451320", name="打开腾哥首页")


# (3)常见:业务多个接口有依赖关系_任务SequentialTaskSet是taskset的子类:只有这个子类执行是有序的 >>> 打开1次百度,执行10次登陆
from locust import SequentialTaskSet
class FlashSeqTask(SequentialTaskSet):
    @task
    def index(self):
        self.client.request(method="get", url="https://baidu.com", name="打开百度首页")

    @task(10)
    def login(self):
        self.client.request(method="get", url="https://blog.csdn.net/", name="打开CSDN首页")


# (4)常见:业务比较简单_封装在httpuser用户里面的任务
class FlashUser(HttpUser):
    host = "http://localhost:8089/"
    wait_time = constant(3)

    @task
    def task3(self):
        self.client.request(method="get", url="https://baidu.com", name="打开百度首页")

    @task
    def task4(self):
        self.client.request(method="get", url="https://blog.csdn.net/weixin_45451320", name="打开腾哥首页")


# (5)任务集合:
    # 运行被task装饰的任务
    task_1 = {
    
    task3: 3, task4: 1}
    # 运行自定义的任务task1
    task_2 = [task1, task2]
    # 运行类FlashTask > 任务集
    task_3 = [FlashTask]

猜你喜欢

转载自blog.csdn.net/weixin_45451320/article/details/117340051