• Locust性能测试 —— 环境搭建及使用


    1.什么是Locust?

         Locust是一个易于使用,可编写脚本且可扩展的性能测试工具。您可以使用常规Python代码定义用户的行为,这使Locust可以无限扩展,并且对开发人员非常友好。

    2.特征

    • 分布式和可扩展-支持数十万用户

    Locust使运行分布在多台计算机上的负载测试变得容易。它是基于事件的(使用gevent),这使得单个进程可以处理成千上万的并发用户。尽管可能还有其他工具可以在给定的硬件上每秒执行更多请求,但是每个Locust用户的低开销使其非常适合测试高并发工作负载。

    • 基于Web的UI

    Locust具有用户友好的Web界面,可实时显示测试进度。您甚至可以在测试运行时更改负载。它也可以在没有UI的情况下运行,从而使其易于用于CI / CD测试。

    • 可以测试任何系统

    即使Locust主要与网站/服务一起使用,它也可以用于测试几乎所有系统或协议。只需 为您要测试的内容编写一个客户端,或者浏览社区创建的一些客户端。

    3.环境安装

    官方文档

    https://docs.locust.io/en/1.4.4/what-is-locust.html

    安装Python 3.6或更高版本。

    使用pip安装Locust。pip install locust
    验证安装并显示locust版本号 pip show locust
    (venv) E:\workspace\LocustConcurrent>pip show locustName: locustVersion: 1.4.4Summary: Developer friendly load testing frameworkHome-pagehttps://locust.io/

    4.快速开始

    在Locust中,您可以使用Python代码定义用户行为。然后,您可以使用该locust命令和(可选)其Web界面在收集请求统计信息时生成并模拟大量这些用户。

    locust_cnblogs.py

    ''''Create by dell on 2021/4/13Author :wenchengdescribe'''from locust import HttpUser, task, betweenclass QuickstartUser(HttpUser):    wait_time = between(1, 2.5)
        @task    def bky_deom(self):        self.client.get("/")
        @task(3)    def bky_demo2(self):        self.client.get("/wen-cheng")        if __name__ == '__main__':    import os
        os.system('locust -f locust_cnblogs.py -H https://www.cnblogs.com')

    5.启动运行locust

    打开locust的web界面,浏览器访问:http://127.0.0.1:8089

    设置虚拟用户数20,每秒启动5个用户,点击Start swarming 开始运行

    locust的web界面分析:

    • Number of users to simulate是模拟用户的数量

    • Hatch rate (users spawned/second表示产生模拟用户的速度

    • Start swarming开始测试

    6.分析测试结果

    • Type:请求类型;

    • Name:请求路径;

    • Requests:当前请求的数量;

    • Fails:当前请求失败的数量;

    • Median:中间值,单位毫秒,一般服务器响应时间低于该值,而另一半高于该值;

    • Average:所有请求的平均响应时间,毫秒;

    • Min:请求的最小的服务器响应时间,毫秒;

    • Max:请求的最大服务器响应时间,毫秒;

    • Content Size:单个请求的大小,单位字节;

    • Reqs/sec:每秒钟请求的个数。

    界面图表展示

    吞吐量/每秒响应事务数(rps)实时统计
    平均响应时间/平均事务数实时统计
    虚拟用户数运行
    

    导出数据

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家的支持。


    学习资源分享

    最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走

    这些资料,对于想【进阶自动化测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助…….

  • 相关阅读:
    测试面试总结
    经典设计原则 - SOLID
    医疗服务全面升级,这个方法绝了!
    如何将Python写的代码打包成.exe可执行文件
    【netty从入门到放弃】netty转发tcp数据到多客户端
    imazing23app最新Win与Mac系统的iOS移动设备管理软件
    2022/6/27 Quartz(定时任务)讲解+入门案例
    Mysql查看Binlog文件
    Matplotlib设置刻度和刻度标签
    MybatisPlus高级特性
  • 原文地址:https://blog.csdn.net/IT_LanTian/article/details/125600783