zoukankan      html  css  js  c++  java
  • 基于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
Copyright © 2011-2022 走看看