Locust是一款用Python编写的分布式用户负载测试工具,用于对网站(或其他系统)进行负载测试,并确定系统可以处理多少并发用户。
Locust完全基于事件,因此可以在一台机器上支持数千个并发用户。与许多其他基于事件的应用程序相比,它不使用回调,并且能自定义每个并发的行为,非常有助于代码测试:
安装Locust
Locust安装对Python版本有要求,这里使用了conda管理不同的python版本
conda create --name locust_env python=3.6 source activate locust_env python -m pip install locustio
编写locust脚本
from locust import HttpLocust, TaskSet, TaskSet def index(l): l.client.get("/") class UserTasks(TaskSet): tasks = [index] class WebsiteUser(HttpLocust): host = "http://0.0.0.0:8089" min_wait = 2000 max_wait = 5000 task_set = UserTasks
脚本保存在:locustfile.py
运行Locust测试
#如果存在locustfile.py文件,则可以: locust --host=http://domain.com #或者 locust -H http://domain.com -f locustfile.py
打开 url:8089,
有2个参数:
- Number of users to simulate的意思是我们需要多少的并发用户
- Hatch rate (users spawned/second)每秒递增用户
参数“Number of users to simulate” 和 system open files limit 文件句柄限制有关,影响到并发上限
#查看open files ulimit -n ulimit -Sn ulimit -Hn #临时修改 open files ulimit -n 1024000 #永久修改 echo "fs.nr_open = 10000000" >> /etc/sysctl.conf echo "fs.file-max = 11000000" >> /etc/sysctl.conf
一般nginx的并发在5万左右
参考资料
https://docs.locust.io/en/stable/quickstart.html#start-locust
https://debugtalk.com/post/locustplus-talk-about-performance-test/
https://debugtalk.com/post/head-first-locust-user-guide/
http://www.chengweiyang.cn/2015/11/14/how-to-enlarge-linux-open-files-upper-cell/
原创文章,转载请注明:转载自Web开发笔记 | Web压力测试工具:Locust
本文链接地址:https://www.magentonotes.com/web-loading-test-tools-locust.html
Comments on this entry are closed.