locust之权重标签

locust默认是随机执行taskset里面的task的。

权重是通过在@task参数中设置的,如代码中my_task1:my_task2:my_task3是1:3:2,实际执行时的代码,在user中tasks会将任务生成列表[my_task1,my_task2,my_task2,my_task2,my_task3,my_task3]

执行时就随机从列表中选取task。

task不止一个时,可以通过@tag给task打标签进行分类,在执行测试时,通过--tags name执行指定带标签的task。

# locust -f .\example_taskset_weight.py --tags tag1

只会执行my_task1和my_task2

#!/usr/bin/env python
# -*- coding:utf-8 -*-

# import os
from locust import TaskSet, HttpUser, task, tag, constant


class MyTaskSet(TaskSet):
    """ 定义用户行为 """

    wait_time = constant(1)

    def on_start(self):
        print("Executing on_start ...")

    def on_stop(self):
        print("Executing on_stop ...")

    @tag("tag1")
    @task(1)
    def my_task1(self):
        print("Executing my_task1 ...")

    @tag("tag1", "tag2")
    @task(3)
    def my_task2(self):
        print("Executing my_task2 ...")

    @tag("tag2")
    @task(2)
    def my_task3(self):
        print("Executing my_task3 ...")


class MyUserGroup(HttpUser):
    """ 定义线程组 """
    tasks = [MyTaskSet]
    host = "http://192.168.2.129"

# locust -f .\example_taskset_weight.py --tags tag1

 

上一篇:性能工具之locust工具get与post请求


下一篇:Locust-命令行参数详解