locust 快速入门--HttpUser与TaskSet

发布时间:2024年01月06日

背景:

locust 压测是以模拟一定用户数量完成指定操作实现的压测。
它的基础维度是用户数量(HttpUser),压测时指定多少用户数,就会有相应的HttpUser实例。
用户的操作行为定义,是通过一个个@task装饰的方法实现。

当模拟比较复杂的用户行为时,只是依赖@task,不便于行为管理。这时可以使用TaskSet,完成用户的行为管理。

HttpUser与行为的分开定义:

import os
from logging import getLogger

from locust import HttpUser
from locust import TaskSet
from locust import events
from locust import task
from locust.log import setup_logging

setup_logging("INFO", None)
logger = getLogger(os.path.basename(__file__))


class Behavior(TaskSet):
    def on_start(self):
        logger.info('开始访问活动')

    @task
    def index(self):
        self.client.get("/")

    def on_stop(self):
        logger.info('结束访问活动')


class MyUser(HttpUser):
    host = "https://docs.locust.io"
    tasks = [Behavior]

    def on_start(self):
        logger.info('用户开始行动')

    def on_stop(self):
        logger.info('用户结束行动')

通过一次压测日志分析程序调用:

配置100个用户,每次增加1个用户的压测:

[2024-01-06 18:28:46,258] Qredsun/INFO/locust.runners: Ramping to 100 users at a rate of 1.00 per second
[2024-01-06 18:28:46,260] Qredsun/INFO/demo.py: 用户开始行动
[2024-01-06 18:28:46,261] Qredsun/INFO/demo.py: 开始访问活动
[2024-01-06 18:28:47,261] Qredsun/INFO/demo.py: 用户开始行动
[2024-01-06 18:28:47,261] Qredsun/INFO/demo.py: 开始访问活动
[2024-01-06 18:28:48,265] Qredsun/INFO/demo.py: 用户开始行动
[2024-01-06 18:28:48,266] Qredsun/INFO/demo.py: 开始访问活动
[2024-01-06 18:28:49,269] Qredsun/INFO/demo.py: 用户开始行动
[2024-01-06 18:28:49,269] Qredsun/INFO/demo.py: 开始访问活动
[2024-01-06 18:28:50,272] Qredsun/INFO/demo.py: 用户开始行动
[2024-01-06 18:28:50,272] Qredsun/INFO/demo.py: 开始访问活动

过程中手动终止压测后,控制台日志输出:

[2024-01-06 18:28:51,132] Qredsun/INFO/demo.py: 结束访问活动
[2024-01-06 18:28:51,132] Qredsun/INFO/demo.py: 用户结束行动
[2024-01-06 18:28:51,133] Qredsun/INFO/demo.py: 结束访问活动
[2024-01-06 18:28:51,133] Qredsun/INFO/demo.py: 用户结束行动
[2024-01-06 18:28:51,134] Qredsun/INFO/demo.py: 结束访问活动
[2024-01-06 18:28:51,134] Qredsun/INFO/demo.py: 用户结束行动
[2024-01-06 18:28:51,135] Qredsun/INFO/demo.py: 结束访问活动
[2024-01-06 18:28:51,135] Qredsun/INFO/demo.py: 用户结束行动
[2024-01-06 18:28:51,136] Qredsun/INFO/demo.py: 结束访问活动
[2024-01-06 18:28:51,137] Qredsun/INFO/demo.py: 用户结束行动

结论:

  1. 依次增加一个用户,先调用HttpUser的on_start
  2. 用户执行操作,先调用TaskSet的on_start
  3. 结束压测,结束操作,调用TaskSet的on_stop
  4. 结束用户实例,调用HttpUser的on_stop
文章来源:https://blog.csdn.net/qq_17328759/article/details/135429873
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。