Locust压力测试方法

本文介绍了如何在Docker环境下执行Locust压力测试,包括本地脚本目录的设置、不启用WEBUI的CI执行方式、设置并发用户数和请求速率、脚本执行时间和分布式执行的详细步骤,参考了官方文档来实现分布式测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Locust压力测试方法

  • 通过docker执行locust

    docker run -p 8089:8089 -v $PWD:/mnt/locust locustio/locust -f /mnt/locust/locustfile.py

    • /mnt/locust 本地locust脚本目录
    • /mnt/locust/locustfile.py 即将执行的脚本
  • Use docker image as a base image

    FROM locustio/locust
    RUN pip3 install some-python-package
    
  • CI执行locust,不启用WEBUI的执行方式

    locust -f locust_files/my_locust_file.py --headless -u 1000 -r 100 --run-time 1h30m --stop-timeout 99

    • --headless without the web UI
    • -u 并发用户数
    • -r 每秒发出100用户
    • --run-time 脚本执行时间,到时间会立刻结束
    • --stop-timeout 脚本执行停止的时间
  • 分布式执行locust

    • 参考:https://docs.locust.io/en/stable/running-locust-distributed.html#running-locust-distributed
    locust -f my_locustfile.py --worker --master-host=192.168.0.14 --master-port=5557
    locust -f locust_files/my_locust_file.py --headless -u 1000 -r 100  --run-time 1h30m  --stop-timeout 99 --expect-workers X
    
  • 监听locust执行,设置执行进程返回的状态码

    import logging
    from locust import events
    
    @events.quitting.add_listener
    def _(environment, **kw):
        if environment.stats.total.fail_ratio > 0.01:
            logging.error("Test failed due to failure ratio > 1%")
            environment.process_exit_code = 1
        elif environment.stats.total.avg_response_time > 200:
            logging.error("Test failed due to average response time ratio > 200 ms")
            environment.process_exit_code = 1
        elif environment.stats.total.get_response_time_percentile(0.95) > 800:
            logging.error("Test failed due to 95th percentile response time > 800 ms")
            environment.process_exit_code = 1
        else:
            environment.process_exit_code = 0
    
    
  • 使用配置文件

    locust -f example.py --config ./locust.conf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值