什么是 Locust
Locust官网:https://www.locust.io/
Locust是一个简单易用的分布式负载测试工具,主要用来对网站进行负载压力测试。
特性:
- 可以通过Python编写模拟用户行为的代码,简单易用
- 分布式可扩展,能够支持上百万用户
- 自带Web界面
- 不仅能测试web系统,也可以测试其它系统
安装Locust
GitHub下载安装
项目地址:https://github.com/locustio/locust/
clone下来之后,通过Python 执行 setup.py 文件即可安装使用pip命令安装
pip install locust
-
验证是否安装成功
打开cmd,输入locust –help
出现此界面说明安装成功
简单的Locust性能测试
- 创建 load_test.py 文件
# @Time : 2018/3/7 15:28
# @Author : Cr
# @File : load_test.py
from locust import HttpLocust,TaskSet,task
class Test(TaskSet):
@task(1)
def baidu(self):
self.client.get("/")
class WebsiteUser(HttpLocust):
task_set = UserBehavior
min_wait = 3000
min_wait = 6000
代码解析:
- 创建Test()类继承TaskSet类
- 创建baidu() 方法表示一个行为,访问百度首页。client.get()用于指请求的路径“/”,因为是百度首页,所以指定为根路径。
- 用@task() 装饰该方法为一个任务。1表示一个Locust实例被挑选执行的频率,数值越大,执行频率越高。
- WebsiteUser()类用于设置性能测试。
- task_set :指向一个定义了的用户行为类。
- min_wait :用户执行任务之间等待时间的下界,单位:毫秒。
- max_wait :用户执行任务之间等待时间的上界,单位:毫秒。
开始性能测试
locust -f load_test.py --host=https://www.baidu.com
- -f 指定性能测试脚本文件
-
–host 指定被测试应用的URL的地址
通过浏览器访问:http://localhost:8089
- Number of users to simulate 设置模拟用户数。
- Hatch rate(users spawned/second) 每秒产生(启动)的虚拟用户数。
- 点击 “Start swarming” 按钮,开始运行性能测试。