【性能测试】4_Locust _locust分布式

文章目录

一、Locust分布式

1.1 实现方式

Locust 下实现分布式,十分容易,只需要在启动脚本时,分别给 控制机、执行机指定不同参数即可:

要求:控制机和执行机要在同一个局域网内。

控制机:--master

执行机:--slave --master-host=控制机IP地址

1.2 测试代码

python 复制代码
from locust import TaskSet, HttpLocust, task
"""
locust比重:500用户并发送
- 首页:150
- 搜索商品:200
- 注册:20
- 登录:80
- 下单:50
"""
# 1.定义 任务集 和 任务
class TaskClass(TaskSet):  # TaskClass 表示任务集
    """"定义任务"""

    # 访问首页
    @task(150)
    def index(self):
        result = self.client.get("/?=index")     # 此行代码相当于requests.Session().get()
        print("响应结果:", result.text)    # 打印结果

    # 搜索
    @task(200)
    def search(self):
        result = self.client.get("/?=search")  # 此行代码相当于requests.Session().get()
        print("响应结果:", result.text)  # 打印结果

    # 注册
    @task(20)
    def register(self):
        result = self.client.get("/?=register")  # 此行代码相当于requests.Session().get()
        print("响应结果:", result.text)  # 打印结果

    # 登录
    @task(80)
    def login(self):
        result = self.client.get("/?=login")  # 此行代码相当于requests.Session().get()
        print("响应结果:", result.text)  # 打印结果

    # 下单
    @task(50)
    def order(self):
        result = self.client.get("/?=order")  # 此行代码相当于requests.Session().get()
        print("响应结果:", result.text)  # 打印结果


# 2.定义 用户类
class User(HttpLocust):
    # 绑定任务
    task_set = TaskClass   # task_set 属性名不能变; 注意:TaskClass 后,没有 ()

    # 设置 用户间 最小延迟时间 - 单位 ms
    min_wait = 1000

    # 设置 用户间 最大延迟时间
    max_wait = 3000

    # 指定 主机地址
    host = "https://www.baidu.com"

1.3 终端实现

控制机终端命令:

bash 复制代码
PS C:\XM1\Locust> locust -f .\LocustTest\fenbushi.py --master

执行机终端命令:

bash 复制代码
PS C:\XM1\Locust> locust -f .\LocustTest\fenbushi.py --slave --master-host=192.168.1.19

二、使用没有web的Locust

Locust 脚本运行时,也可以用参数来指定UI界面中的东西:

  • -f:脚本文件名
  • --no-web:不以web页面形式运行
  • -c:用户数 (相当于web页面中,第一个输入框)
  • -r:1s启动用户数 (相当于web页面中,第二个输入框)
  • -t:运行时间。秒s,分m,小时h。如1h30m10s
  • --csv:指定生成csv结果文件的前缀。语法 --csv result
bash 复制代码
PS C:\XM1\Locust> locust -f .\LocustTest\fenbushi.py --no-web -c 500 -r 50 -t 20s --csv result
相关推荐
睡醒的土豆39 分钟前
解决 Kafka 管理工具中文乱码问题
分布式·kafka
SuniaWang4 小时前
《Spring AI + 大模型全栈实战》学习手册系列· 专题二:《Milvus 向量数据库:从零开始搭建 RAG 系统的核心组件》
java·人工智能·分布式·后端·spring·架构·typescript
Hui Baby4 小时前
TIDB分布式数据库提交设想
数据库·分布式·tidb
⑩-4 小时前
RabbitMQ 架构和工作原理?RabbitMQ 延迟队列如何实现?
java·分布式·架构·rabbitmq
国冶机电安装4 小时前
分布式控制系统(DCS)安装:从方案设计到投运验收的完整指南
分布式
飞Link5 小时前
告别 ROS 的臃肿:用 ZeroMQ 构建极速具身智能分布式大脑(附 Python 实战)
开发语言·分布式·python
会算数的⑨6 小时前
演进——从查日志到 AI 自治,企业监控体系的变迁
人工智能·分布式·后端·微服务·云原生
一叶飘零_sweeeet7 小时前
分布式权限体系破局:统一认证授权与 OAuth2.0 全链路架构落地实战
分布式·架构
014-code8 小时前
Dubbo 之 “最速传说”
java·分布式·dubbo
LF3_8 小时前
监听数据库binlog日志变化,将变动实时发送到kafka
数据库·分布式·mysql·kafka·binlog·debezium