栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

locust官方文档-Tasks

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

locust官方文档-Tasks

Tasks
当负载测试启动时,将为每个模拟用户创建一个User类的实例,它们将开始在自己的green thread中运行。当这些用户运行时,他们选择他们执行的任务,休眠一段时间,然后选择一个新任务,等等。
这些任务是普通的python可调用对象,如果我们对一个拍卖网站进行负载测试,它们可以做诸如“加载起始页面”、“搜索某些产品”、“出价”等事情。
@task 装饰器
为用户添加任务最简单的方法是使用任务装饰器。

from locust import User, task, constant

class MyUser(User):
    wait_time = constant(1)

    @task
    def my_task(self):
        print("User instance (%r) executing my_task" % self)

@task有一个可选的权重参数,可以用来指定任务的执行比例。在下面的例子中,task2被选为task1的概率是task1的两倍:

from locust import User, task, between

class MyUser(User):
    wait_time = between(5, 15)

    @task(3)
    def task1(self):
        pass

    @task(6)
    def task2(self):
        pass

tasks 属性
定义User任务的另一种方法是设置tasks属性。
tasks属性要么是Task的列表,要么是 dict,其中Task要么是一个python可调用对象,要么是一个TaskSet类。如果任务是一个普通的python函数,它们会收到一个参数,即正在执行任务的User实例。
下面是一个User任务声明为普通python函数的示例:

from locust import User, constant

def my_task(user):
    pass

class MyUser(User):
    tasks = [my_task]
    wait_time = constant(1)

如果tasks属性指定为一个列表,那么每次执行任务时,它将从tasks属性中随机选择。但是,如果tasks是一个字典-将可调用对象作为键,将int作为值-将随机选择要执行的任务,但以int作为比例。所以有这样一个任务:

{my_task: 3, another_task: 1}

My_task被执行的可能性是另一个task的3倍。
在内部,上面的字典实际上会被扩展成一个列表(task属性也会被更新),如下所示:

[my_task, my_task, my_task, another_task]

然后使用Python的random.choice()从列表中挑选任务。
@tag 装饰器
通过使用@tag装饰器来标记任务,您可以使用–tags和–exclude-tags参数来挑选测试期间执行的任务。考虑下面的例子:

from locust import User, constant, task, tag

class MyUser(User):
    wait_time = constant(1)

    @tag('tag1')
    @task
    def task1(self):
        pass

    @tag('tag1', 'tag2')
    @task
    def task2(self):
        pass

    @tag('tag3')
    @task
    def task3(self):
        pass

    @task
    def task4(self):
        pass

如果您使用–tags tag1开始这个测试,那么在测试期间只会执行task1和task2。如果您以–tags tag2 tag3开始,那么只有task2和task3会被执行。
–exclude-tags将以完全相反的方式运行。因此,如果使用–exclude-tags tag3开始测试,那么只会执行task1、task2和task4。排除总是胜过包含,所以如果一个任务有一个你包含的标签和一个你排除的标签,它将不会被执行。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/934790.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号