shell 批量执行locust 脚本压测

复制代码
#!/bin/bash

# 配置文件路径
CONFIG_FILE="locust_cases.txt"

# 通用参数
RUN_TIME=100      # 20分钟,这个配置在main.py里面修改时间, 以no-web模式执行
STOP_TIMEOUT=10s   # 停止超时
WAIT_TIME=10      # 5分钟

# 计数器
total_tasks=$(wc -l < "$CONFIG_FILE")
current_task=0

# 读取配置文件并执行
while IFS=, read -r script users spawn_rate; do
    # 移除可能的空格
    script=$(echo "$script" | xargs)
    users=$(echo "$users" | xargs)
    spawn_rate=$(echo "$spawn_rate" | xargs)

    # 如果spawn_rate为空,使用默认值
    if [ -z "$spawn_rate" ]; then
        spawn_rate=1
    fi

    current_task=$((current_task + 1))

    echo "=========================================="
    echo "任务 $current_task/$total_tasks"
    echo "开始执行脚本: $script"
    echo "并发用户数: $users"
    echo "用户生成速率: $spawn_rate/秒"
    echo "运行时间: $(($RUN_TIME/60))分钟"
    echo "=========================================="

    # 执行Locust测试
    python3 main.py -w 4 -u "$users" -cof ./config/90551.config.yml -case "$script"

    # 检查执行结果
    if [ $? -eq 0 ]; then
        echo "脚本 $script 执行完成"
    else
        echo "警告:脚本 $script 执行过程中可能出现问题"
    fi

    # 如果不是最后一个任务,等待5分钟
    if [ $current_task -lt $total_tasks ]; then
        echo "等待5分钟..."
        sleep $WAIT_TIME
    fi

done < "$CONFIG_FILE"

echo "所有任务执行完毕。"
相关推荐
mounter6253 分钟前
从硬件互连到操作系统变革:CXL 技术演进与 Linux 内核工程挑战
linux·运维·服务器
zhengqweasd11 分钟前
机房托管服务器怎么选硬盘,机械盘和 SSD 托管场景差异
运维·服务器·github
xh didida1 小时前
Linux -- 基础IO
linux·服务器·开发语言·c++
心易行者2 小时前
Agent应用+API端点商业化进阶实战:从单体智能体到可付费调用的API全流程
运维·服务器·人工智能·python·apache
夜之眷属2 小时前
Core dump 崩溃排查:JVM 宕机后,那份 core 文件怎么用 gdb 还原现场
java·运维·服务器·jvm
zly35002 小时前
centos7 mount设备挂载 /dev/sda1/硬盘挂载
linux·运维·服务器
工业一体机老司机2 小时前
工业一体机选购后的系统部署:Ubuntu下Docker容器化运行与GPIO配置
linux·ubuntu·docker·人机交互
哎呦,帅小伙哦3 小时前
进程监控工具——htop
linux·运维·服务器
深圳恒讯4 小时前
海外服务器延迟高怎么解决?从线路到TCP协议的6层排查清单
运维·服务器·tcp/ip