locust 快速入门--HttpUser与TaskSet
2024-01-07 20:59:01
背景:
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: 用户结束行动
结论:
- 依次增加一个用户,先调用HttpUser的on_start
- 用户执行操作,先调用TaskSet的on_start
- 结束压测,结束操作,调用TaskSet的on_stop
- 结束用户实例,调用HttpUser的on_stop
文章来源:https://blog.csdn.net/qq_17328759/article/details/135429873
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!