ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Locust压力测试方法

2021-02-28 11:59:03  阅读:452  来源: 互联网

标签:-- Locust py locust environment time 压力 执行 测试方法


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

标签:--,Locust,py,locust,environment,time,压力,执行,测试方法
来源: https://blog.csdn.net/banrieen/article/details/114169921

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有