zoukankan      html  css  js  c++  java
  • python+locust性能测试(一)之locust性能测试入门

    一、Locust简介

      Locust是一款易于使用的分布式用户负载测试工具。它用于对网站(或其他系统)进行负载测试,并确定系统可以处理多少并发用户。
      Locust完全基于事件,因此可以在一台计算机上支持数千个并发用户。
    Locust的特点:
        1、使用简单的python语言编写测试脚本,非常简单轻便,不需要笨重的UI和XML代码;
        2、分布式的,可扩展性,可模拟上百万用户。Locust支持多机器的性能测试,每台机器可以模拟上千用户,也可以对用户数进行控制;
        3、Locust有一个整洁的HTML+JS的用户界面,实时显示相关的测试细节。由于用户界面是基于网络的,它是跨平台的和容易扩展的;
        4、可以测试任何系统,尽管Locust是基于网站的,它几乎可以测试任何系统,只需要一个客户端;
    

    二、Locust的安装

    Locust 的安装方式如下:
          pip install locustio
    
    安装完成后,执行 locusts -V 可查看到 Locust 的版本号,证明安装成功:
           locusts -V
    


    执行 locusts -h,可查看到使用帮助文档。

    三、Locust简单实例

    locust里面请求是基于requests的,每个方法请求和requests差不多,请求参数、方法、响应对象和requests一样的使用;
    requests.get 对应client.get
    requests.post 对应client.post
    举例说明:打开phpwind首页接口

    编写说明:
    1、从locust模块中导入HttpLocust, TaskSet, task, between类;
    2、自定义类(如phpwind),该类需要继承TaskSet,用来编写需要进行性能进行的接口;一个接口可定义成一个函数,接口的数量不限。self.client调用的get和post与requests中是一样的;
    3、每一个要执行的接口之前需要用到@task()修饰器,括号里面参数表示该行为挑选执行的权重,数值越大,执行频率越高,不设置默认是1
    4、编写websitUser类,该类继承自HttpLocust,用于设置性能测试。类中的TaskSet用来指向用户行为;wait_time用来指定的等待时间,可以用between函数,也可以是用户自定义的函数来设置时间;
    注:bewteen(5,8)----每个模拟用户将在请求之间等待5到8秒

    四、执行性能测试

    执行性能测试的命令:
    locusts -f  py文件的测试用例 
    ![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9pbWcyMDIwLmNuYmxvZ3MuY29tL2Jsb2cvMTExODE3Mi8yMDIwMDQvMTExODE3Mi0yMDIwMDQyMDIwNDM0MDQyOS00MzIwNzY4NjkucG5n?x-oss-process=image/format,png)
    
    host:表示被压测的主机名
    

    五、web界面说明

    执行上述命令后,即完成了 Locust 服务的启动,后续就可以在 Locust 的 Web 管理界面中进行操作了;
    


    上图红色圈住的部分是web界面的路径;*号部分用主机的ip地址替换,8089是端口号;
    由于是在本机上搭建的locust,所以可以直接在浏览器输入http://localhost:8089/打开,
    如果是在其它机器上搭建的locust服务,那就通过http://其它机器IP:8089/打开

    此时可以打开web界面进行性能测试操作;
    

    locust界面的输入框:
    Number of users to simulate 是用户并发数
    Hatch rate (users spawned/second)是每秒启动用户数
    host:表示测试的主机地址

    比如设置了并发数为20,启动数为10,效果界面如下所示:

    Type:请求类型;
    Name:请求路径;
    requests:当前请求的数量;
    fails:当前请求失败的数量;
    Median:中间值,单位毫秒,一般服务器响应时间低于该值,而另一半高于该值;
    Average:所有请求的平均响应时间,毫秒;
    Min:请求的最小的服务器响应时间,毫秒;
    Max:请求的最大服务器响应时间,毫秒;
    Content Size:单个请求的大小,单位字节;
    reqs/sec:每秒钟请求的个数。
    点击 stop 可以停止测试
    点击New test可以重新设置用户数
    RPS:每秒钟请求的个数, 在进行性能测试时,要参考设置的并发数进行分析
    FAILURES:失败率
    STATUS:运行的状态
    

    图表展示界面,此界面有三个图标,分别是:
    1、吞吐量/每秒响应事务数(rps)实时统计
    2、平均响应时间/平均事务数实时统计
    3、虚拟用户数运行
    


    此界面显示失败的接口情况

    此界面显示出现的异常情况

    此界面可以下载测试数据保存到本地

  • 相关阅读:
    SPOJ SAMER08A
    SPOJ TRAFFICN
    CS Academy Set Subtraction
    CS Academy Bad Triplet
    CF Round 432 C. Five Dimensional Points
    CF Round 432 B. Arpa and an exam about geometry
    SPOJ INVCNT
    CS Academy Palindromic Tree
    身体训练
    简单瞎搞题
  • 原文地址:https://www.cnblogs.com/luoman/p/12740322.html
Copyright © 2011-2022 走看看