基于python的性能负载测试Locust-5-脚本编写之发送HTTP请求

发送HTTP请求

目前为止,我们只是掌握了Locust用户的任务执行。为了真正的对一个系统进行负载测试我们需要发送HTTP请求。这时候就用到了HttpLocust类,这个类中的每个实例都有一个client属性(也就是HttpSession的实例),可以进行HTTP请求。

class HttpLocust

表示一个孵化出的HTTP “user” 用于袭击被负载的系统对象。

这个用户的行为由task_set属性来定义,这个属性指向TaskSet类。

这个类创建了一个client属性,它支持在requests之间保持user的session。

client= None

通过对Locust的实例化创建了HttpSession的实例,client支持cookies,因此可以在HTTP请求间保持session。

继承HttpLocust类之后,我们可以使用它的client属性对服务器发送HTTP请求。下面的locust文件可以通过/and/about/这两个URLs对站点进行负载测试:

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

通过上面的Locust类,每个虚拟用户在发送请求时会有5到15秒的间隔,/被请求的概率是/about/的两倍。

细心的读者会发现一个奇怪的地方,我们可以通过TaskSet里的self.client来引用HttpSession实例,而不是self.locust.client。之所以这样是因为TaskSet类中有个名为client的属性,它的返回值为self.locust.client

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