负载压力测试之locust

Locust 是一个用于编写负载测试的开源工具,它使用 Python 进行编写和扩展,并提供了一个简单易用的界面来模拟大量用户同时访问你的应用程序,以评估其性能和稳定性。

主要特点:

  1. 基于 Python:Locust 使用 Python 进行编写和扩展,用户可以使用 Python 灵活地编写自定义的负载测试脚本。

  2. 分布式负载测试:Locust 支持分布式负载测试,可以在多台计算机上并行运行多个 Locust 实例,以模拟大规模用户访问。

  3. 基于协程的异步编程:Locust 使用基于 gevent 的协程来实现异步并发请求,可以有效地模拟大量用户并发访问,而不会消耗太多的系统资源。

  4. 可视化界面:Locust 提供了一个简单易用的 Web 界面,可以实时监控测试执行的状态、性能指标和错误情况。

  5. 灵活的脚本编写:用户可以使用 Python 编写负载测试脚本,通过定义用户行为和场景来模拟用户在应用程序中的操作和行为。

  6. 实时监控和报告:Locust 提供了丰富的实时监控指标和报告,包括响应时间、成功率、吞吐量等,帮助用户分析应用程序的性能和稳定性。

安装:

pip install locust

使用示例:

以下是一个简单的示例,演示了如何使用 Locust 编写一个简单的负载测试脚本:创建test.py文件:

from locust import HttpUser, task, between

class WebsiteUser(HttpUser):
    wait_time = between(1, 2)

    @task
    def sse_test(self):
        headers = {"Authorization": f"Token 5dca1e82f741acb445e8e5f6affca7c241618978"}
        files = {'file': ('IMG_4324.PNG', open('./IMG_4324.PNG', 'rb'), 'image/jpeg')}
        data = {'content': '你好啊!!!', 'model': 'claude-3-sonnet@20240229', 'conversation': 1721}
        self.client.post("/api/v1/chat/question/", data=data, headers=headers, files=files)

终端执行:locust -f test.py 

然后,访问 http://localhost:8089 来打开 Locust 的 Web 界面,可以通过界面设置并发用户数和持续时间,然后启动测试。

优点:简单方便,适合构造复杂的请求体,上传文件等场景。

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值