快速入门Python性能测试框架Locust

简介: 快速入门Python性能测试框架Locust

目前做性能测试,比较简单常用的工具就是jmeter,但是对于一些复杂需求和场景需要编写java代码,如果只会Python能做性能测试吗,当然可以,今天就介绍一下Python强大的性能测试框架Locust。

Locust简介

一个基于python语言的开源性能测试工具,Locust直译为蝗虫,比喻他能产生蝗虫般成千上万的并发,内部使用requests完成http请求,使用协程完成并发请求,提供WebUI美观方便,支持分布式并发,当然也可以根据需要进行二次开发。

它的最重要优点是运行开销小,可以产生更高的并发请求。

更详细的介绍和使用可以查看官网介绍:https://locust.io/2f31caaa700bfb4ac565f6ef34544cc7.png

Github地址:https://github.com/locustio/locust

Locust安装

需要Python版本3.6及以上环境。

pip install locust

查看是否安装成功

locust -V

一个简单的Locust案例

新建一个用户行为类,定义任务集(用户行为),包含一个或多个请求。设置压测的基本参数,比如指向压测的host,等待时间等。

from locust import task, HttpUser, between

# 定义用户行为
class UserBehavior(HttpUser):
    host = "https://www.baidu.com" # 配置URL
    wait_time = between(1,2) # 用户执行每个task之后等待1-2秒
    # task装饰的方法会在Locust虚拟用户运行过程中被调用
    # 定义任务Locust发送请求是基于requests实现,请求的使用requests库一致
    @task
    def test_baidu(self):
        resp = self.client.get("/")
        return resp.status_code

当然,你也可以添加多个请求

from locust import HttpUser, task, between

class QuickstartUser(HttpUser):
    wait_time = between(1, 2)
    # wait_time = constant(3)  # 每次请求停顿时间 (思考时间)
    # 每个模拟用户开始执行,只执行一次
    def on_start(self):
        self.client.post("/login", json={"username":"foo", "password":"bar"})

    @task
    def hello_world(self):
        self.client.get("/hello")
        self.client.get("/world")
    # task()参数用于指定该行为的执行权重。参数越大每次被虚拟用户执行的概率越高。
    @task(3)
    def view_item(self):
        for item_id in range(10):
            self.client.get(f"/item?id={item_id}", name="/item")

运行Locust

在命令行运行Locust脚本,在cmd下(win),进入到脚本目录,执行命令:

locust -f 文件名.py

设置测试

命令行运行之后,通过浏览器访问:http://localhost:8089(Locust启动网络监控器,默认为端口号为:8089)951a6deff2d30b1954f0131c94e0585a.png
出现如下界面启动成功,输入对应的虚拟用户数、用户启动速度,点击Start swarming,开始运行性能测试。047f578f1a4afdd5fad1d31ad091ebca.png

  • Number of users:设置模拟用户总数
  • Spawn rate(users started/second):每秒新增虚拟用户数
  • Host:目标服务器的ip端口或域名

测试监控字段说明

点击STOP,运行完成,查看测试统计如下,类似于jmeter中聚合报告的内容:ad24b01055bf271457ceda12d7f802d2.png

  • Type:请求的类型,例如GET/POST。
  • Name:请求的路径。这里为百度首页,即:https://www.baidu.com/
  • request:当前请求数量。
  • fails:当前请求失败的数量。
  • Median:50%的用户响应时间,单位毫秒
  • 90%ile:90%请求响应时间
  • Average:所有请求的平均响应时间,单位毫秒。
  • Min:最小响应时间,单位毫秒。
  • Max:最大响应时间,单位毫秒。
  • Average size:平均网络字节数
  • Current RPS:每秒请求书(TPS)。
  • Current Failures/s:每秒失败数。

响应时间和TPS曲线图

46345ad237ea49f73fbea3bc95e7b9d5.png

目录
相关文章
|
10月前
|
测试技术 开发者 Python
Python单元测试入门:3个核心断言方法,帮你快速定位代码bug
本文介绍Python单元测试基础,详解`unittest`框架中的三大核心断言方法:`assertEqual`验证值相等,`assertTrue`和`assertFalse`判断条件真假。通过实例演示其用法,帮助开发者自动化检测代码逻辑,提升测试效率与可靠性。
620 1
|
11月前
|
Web App开发 人工智能 JavaScript
主流自动化测试框架的技术解析与实战指南
本内容深入解析主流测试框架Playwright、Selenium与Cypress的核心架构与适用场景,对比其在SPA测试、CI/CD、跨浏览器兼容性等方面的表现。同时探讨Playwright在AI增强测试、录制回放、企业部署等领域的实战优势,以及Selenium在老旧系统和IE兼容性中的坚守场景。结合六大典型场景,提供技术选型决策指南,并展望AI赋能下的未来测试体系。
|
9月前
|
SQL 安全 Linux
Metasploit Pro 4.22.8-20251014 (Linux, Windows) - 专业渗透测试框架
Metasploit Pro 4.22.8-20251014 (Linux, Windows) - 专业渗透测试框架
450 1
Metasploit Pro 4.22.8-20251014 (Linux, Windows) - 专业渗透测试框架
|
9月前
|
Linux 网络安全 iOS开发
Metasploit Framework 6.4.95 (macOS, Linux, Windows) - 开源渗透测试框架
Metasploit Framework 6.4.95 (macOS, Linux, Windows) - 开源渗透测试框架
1039 1
Metasploit Framework 6.4.95 (macOS, Linux, Windows) - 开源渗透测试框架
|
10月前
|
安全 Linux 网络安全
Metasploit Pro 4.22.8-2025091701 (Linux, Windows) - 专业渗透测试框架
Metasploit Pro 4.22.8-2025091701 (Linux, Windows) - 专业渗透测试框架
521 2
Metasploit Pro 4.22.8-2025091701 (Linux, Windows) - 专业渗透测试框架
|
10月前
|
Linux 网络安全 iOS开发
Metasploit Framework 6.4.90 (macOS, Linux, Windows) - 开源渗透测试框架
Metasploit Framework 6.4.90 (macOS, Linux, Windows) - 开源渗透测试框架
590 1
Metasploit Framework 6.4.90 (macOS, Linux, Windows) - 开源渗透测试框架
|
11月前
|
运维 Linux 开发者
Linux系统中使用Python的ping3库进行网络连通性测试
以上步骤展示了如何利用 Python 的 `ping3` 库来检测网络连通性,并且提供了基本错误处理方法以确保程序能够优雅地处理各种意外情形。通过简洁明快、易读易懂、实操性强等特点使得该方法非常适合开发者或系统管理员快速集成至自动化工具链之内进行日常运维任务之需求满足。
682 18
|
10月前
|
安全 Linux 网络安全
Metasploit Framework 6.4.88 (macOS, Linux, Windows) - 开源渗透测试框架
Metasploit Framework 6.4.88 (macOS, Linux, Windows) - 开源渗透测试框架
701 0
|
11月前
|
数据采集 存储 Web App开发
Python爬虫库性能与选型实战指南:从需求到落地的全链路解析
本文深入解析Python爬虫库的性能与选型策略,涵盖需求分析、技术评估与实战案例,助你构建高效稳定的数据采集系统。
806 0
|
10月前
|
缓存 安全 Linux
Metasploit Pro 4.22.8-2025082101 (Linux, Windows) - 专业渗透测试框架
Metasploit Pro 4.22.8-2025082101 (Linux, Windows) - 专业渗透测试框架
326 0

推荐镜像

更多