📜  使用 LOCUST 进行负载测试

📅  最后修改于: 2022-05-13 01:54:50.276000             🧑  作者: Mango

使用 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 将如下所示: