Locust的API介绍-----TaskSet类和task decorator

TaskSet类

定义Locust用户将执行什么样的任务的类。


当TaskSet开始运行时,它将从tasks属性中选择一个任务,执行它,调用它的wait函数,它将在min_wait和max_wait毫秒之间休眠一个随机数 。然后它将安排另一个执行任务等等。


TaskSet可以嵌套,这意味着TaskSet的tasks属性可以包含另一个TaskSet。如果嵌套的TaskSet计划执行,它将被实例化并从当前执行的TaskSet中调用。然后,当前运行的TaskSet中的执行将被移交给嵌套的TaskSet,该TaskSet将继续运行,直到它抛出一个InterruptTaskSet异常,这在TaskSet.interrupt()被调用时完成 。(执行将继续在第一个TaskSet)。


client
引用父类Locust的click属性。


interrupt(reschedule = True )
中断TaskSet并将执行控制权交给父TaskSet。


如果reschedule为True(默认),父Locust将立即重新计划并执行新任务


这个方法不应该被父TaskSet(即立即附加到Locust类“ task_set”属性)的TaskTable调用,而是在层次结构下面的嵌套TaskSet类中。


locust =无
当TaskSet已被实例化时,将引用Locust类实例


max_wait =无
执行Locust任务之间的最长等待时间。可用于覆盖父Locust类中定义的max_wait,如果在TaskSet上未设置,将会使用Locust类中的。


min_wait =无
执行Locust任务之间的最短等待时间。可用于覆盖父Locust类中定义的min_wait,如果在TaskSet上未设置,将使用Locust类中的。


parent =无
当TaskSet已被实例化时,将引用父TaskSet或Locust类实例。适用于嵌套的TaskSet类。


schedule_task(task_callable,args = None,kwargs = None,first = False )
将任务添加到Locust的任务执行队列。


参数:

task_callable:要执行的Locust任务

args:将传递给任务可调用的参数

kwargs:将传递给任务可调用的关键字参数的Dict。

first:可选关键字参数。如果为True,则任务将首先放在队列中。


tasks = []
列出代表Locust用户要执行的任务。


如果任务是一个列表,则要执行的任务将被随机挑选。


如果任务是一个(callable,int)二元组列表,或者一个{callable:int} dict,那么要执行的任务将被随机挑选,但是每个任务将根据它的相应的int值进行加权。所以在以下情况下,ThreadPage将比write_post更可能被挑选十五倍:

class ForumPage(TaskSet):
    tasks = {ThreadPage:15, write_post:1}


task decorator(任务装饰器)

task(weight=1)

使用@task修饰符可以在一个TaskSet类中添加多个任务,并且可以指定任务的执行比重


class ForumPage(TaskSet):
    @task(100)
    def read_thread(self):
        pass
    
    @task(7)
    def create_thread(self):
        pass


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值