使用 LOCUST 进行负载测试
Locust 是一个开源负载测试工具。负载测试是一种软件测试,用于检查系统在特定预期负载下的容差/行为。 locust 的目标是对网站进行负载测试并检查系统可以处理的并发用户数。
在蝗虫测试期间,一群蝗虫将攻击目标即网站。每只蝗虫的行为都是可配置的,蜂拥过程是通过 Web UI 实时监控的。
蝗虫特产:
- 测试场景可以用Python编写
- 分布式和可扩展
- 基于网络的用户界面
- 任何系统都可以使用此工具进行测试
安装:
Locust 可以用 pip 安装。
pip install locust
成功安装 locust 后,您的 shell 中应该可以使用 locust 命令。
要查看更多可用选项:
locust --help
入门:
from locust import HttpLocust, TaskSet, task
from locust import ResponseError
import json
class UserBehavior(TaskSet):
def __init__(self, parent):
super(UserBehavior, self).__init__(parent)
self.token = ""
self.headers = {}
def on_start(self):
# The on_start method is called
# when a simulated user starts
# executing that TaskSet class
self.token = self.login()
self.headers = {'Authorization': 'Bearer {}'.format(self.token)}
self.login()
def login(self):
# admin login and retrieving it's access token
response = self.client.post("/login/",
data = {'username': 'admin',
'password': 'ZYT5nsg3565!'})
return json.loads(response._content)['access']
class WebsiteUser(HttpLocust):
# The task_set attribute should point
# to a TaskSet class which defines
# the behaviour of the user
task_set = UserBehavior
min_wait = 5000
max_wait = 9000
启动蝗虫:
要运行上面的代码,请创建一个名为locustfile.py
的Python文件,然后在上面创建的文件的目录中打开终端。然后在终端中写入以下命令。
locust
注意:默认情况下 locust 搜索locustfile.py
。
成功执行上述命令后,您应该打开浏览器并点击http://127.0.0.1:8089
Locust UI 将如下所示: