locust 快速入门--HttpUser与TaskSet

背景:

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
  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值