基于python的性能负载测试Locust-3-脚本编写之Locust类

Locust类

Locust类体现了一个用户(或者一窝蜜蜂)。Locust将会为每个被模拟的用户产下一个locust类的实例。locust类需要定义如下属性:

task_set属性

task_set属性指向了定义用户行为的TaskSet类,关于属性的具体描述如下:

min_wait 和 max_wait 属性

伴随着task_set属性,往往会声明min_wait 和 max_wait属性。也就是以毫秒为单位的最小时间和最大时间,用于设置虚拟用户执行任务的间隔时间。min_wait 和 max_wait默认为1000,因此如果没有声明min_wait 和 max_wait,一个locust将会在执行完一个任务后等待1秒。

下面的locust文件,每个用户执行任务的间隔是5到15秒

from locust import Locust, TaskSet, task

class MyTaskSet(TaskSet):
    @task
    def my_task(self):
        print "executing my_task"

class MyLocust(Locust):
    task_set = MyTaskSet
    min_wait = 5000
    max_wait = 15000

min_wait and max_wait属性也可以在TaskSet类里被重写

权重属性

可以在相同的文件运行两个locust(飞两个蜜蜂):

locust -f locust_file.py WebUserLocust MobileUserLocust

如果希望其中一个locust相对其它locust有更高的执行机率,可以在这些类里设置权重属性。例如:web用户的执行机率是mobile用户的三倍:

class WebUserLocust(Locust):
    weight = 3
    ....

class MobileUserLocust(Locust):
    weight = 1
    ....

host 属性

host属性是附加在被加载的host上的URL 前缀(i.e.“http://google.com”)。通常在locust被启动时,会通过--host在命令行中将其声明。如果在locust类中定义了host属性,命令行中--host未被指定的话,就会使用locust类中定义的host属性。

原文地址:https://www.cnblogs.com/mu-shi-shi/p/6062065.html