Locust 类
类 Locust
每生成一个实例都代表一个虚拟的用户,用来发送请求到进行负载测试的系统。
该用户的行为由 task_set 属性定义,该属性应指向一个 TaskSet 类。
这个类通常应该由某些类继承并且重新定义。例如,当测试 HTTP 系统时,使用的 HttpLocust 类。
max_wait = 1000
执行 locust 任务之间的最长等待时间,单位是毫秒
min_wait = 1000
执行 locust 任务之间的最短等待时间,单位是毫秒
task_set =TaskSet
指向 TaskSet 类,定义了 locust 的执行行为
weight = 10
一个测试用例中添加多个 locust 实例,每个 locust 实例执行占的比重,数字越大,调用的频率越高。
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
weight = 1
class MyLocustOne(Locust):
task_set = MyTaskSet
min_wait = 5000
max_wait = 15000
weight = 2
HttpLocust 类
类 HttpLocust
继承了 Locust 类,表示将要生成的每一个虚拟的 HTTP 用户,用来发送请求到进行负载测试的系统。
该用户的行为由 task_set 属性定义,该属性应指向一个 TaskSet 类。
此类在实例化时比 Locust 会多了一个 client 属性,该属性是支持在请求之间保留用户 session。
client =无
在 Locust 实例化时创建的 HttpSession 实例。client 支持 cookie,可以保持 HTTP 请求之间的 session。
from locust import HttpLocust, TaskSet, task
class MyTaskSet(TaskSet):
@task(2)
def index(self):
self.client.get("/")
@task(1)
def about(self):
self.client.get("/about/")
class MyLocust(HttpLocust):
task_set = MyTaskSet
min_wait = 5000
max_wait = 15000