性能测试工具 Locust 的 API 介绍-----Locust 类和 HttpLocust 类

郑少龙 · April 08, 2018 · 1871 hits

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
No Reply at the moment.
需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up