locust
一、locust简介
Locust,是一款易于使用的分布式用户负载测试工具。它用于对网站(或其他系统)进行负载测试,并确定系统可以处理多少并发用户。
Locust完全基于事件,因此可以在一台机器上支持数千个并发用户。与许多其他基于事件的应用程序相比,它不使用回调。相反,它通过gevent使用轻量级过程。每个蝗虫蜂拥到你的网站实际上是在自己的进程内运行(或者是greenlet,这是正确的)。这允许您在Python中编写非常富有表现力的场景,而不会使代码与回调复杂化。
二、功能
-
用普通的Python编写用户测试场景
-
分布式和可扩展 - 支持数十万用户
Locust支持分布在多台机器上的运行负载测试。基于事件,即使一个Locust节点也可以在一个进程中处理数千个用户。这背后的部分原因是,即使您模拟了许多用户,也不是所有用户都在积极地使用您的系统。通常,用户在闲暇时想出下一步该做什么。每秒请求数!=在线用户数。
- 基于Web的UI
Locust有一个简洁的HTML + JS用户界面,可以实时显示相关的测试细节。由于用户界面是基于网络的,因此它具有跨平台且易于扩展的特点。
- 可以测试任何系统
即使Locust是面向Web的,它也可以用来测试几乎任何系统。只需编写一个客户端,您可以测试它并用蝗虫进行测试!
- 容易被破解
三、locust安装
蝗虫可在PyPI上使用,可以用pip安装。
对于Python 2.7:
$ python -m pip install locustio
对于Python 3:
$ python3 -m pip install locustio
如果您需要最新版本,可以使用pip直接从Git存储库安装。例如,要使用Python 3安装master分支:
$ python3 -m pip install -e git://github.com/locustio/locust.git@master#egg=locustio
安装Locust后,shell中应该有一个locust命令。(如果你没有使用virtualenv - 你应该确保你的python脚本目录在你的路径上)。
要查看可用选项,请运行:
$ locust --help
- 支持的Python版本
Locust支持Python 2.7,3.4,3.5和3.6。
- 在Windows上安装
在Windows上,运行应该工作。pip install locustio
注意:
在Windows上运行Locust应该可以很好地开发和测试负载测试脚本。但是,在运行大规模测试时,建议您在Linux机器上执行此操作,因为gevent在Windows下的性能很差。
- 在macOS上安装
以下是使用Homebrew在OS X上安装gevent的最短路径。
安装Homebrew。
安装libev(gevent依赖):
brew install libev
然后按照上面的说明操作。
四、增加最大打开文件数限制
计算机上的每个HTTP连接都会打开一个新文件(从技术上讲是一个文件描述符)。操作系统可以为可以打开的最大文件数设置下限。如果限制小于测试中的模拟用户数,则会发生故障。
将操作系统的默认最大文件数限制增加到高于您要运行的模拟用户数的数量。如何执行此操作取决于使用的操作系统。