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

Sorin · 2018年04月08日 · 1038 次阅读

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  
暫無回覆。
需要 登录 後方可回應,如果你還沒有帳號按這裡 注册