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 "所有任务执行完毕。"
相关推荐
独隅17 分钟前
在 Linux 上部署 TensorFlow 模型的全面指南
linux·运维·tensorflow
Strange_Head18 分钟前
《Linux系统编程篇》Linux Socket 网络编程02 (Linux 进程间通信(IPC))——基础篇
linux·运维·网络
星河耀银海18 分钟前
JAVA IO流:从基础原理到实战应用
java·服务器·开发语言
yiwenrong27 分钟前
history 常见优化配置
linux
Joren的学习记录1 小时前
【Linux运维大神系列】Kubernetes详解7(k8s技术笔记3)
linux·运维·kubernetes
chenqianghqu2 小时前
ubuntu 22.04环境中安装goland
linux·运维·ubuntu
gwjcloud3 小时前
Frp内网穿透
linux·运维·服务器
MwEUwQ3Gx3 小时前
常见Linux权限提升笔记
linux·运维·笔记
bIo7lyA8v3 小时前
如何用SSH访问远程服务器上的内网服务(如:MySQL、Redis、Kafka)?
服务器·mysql·ssh
小邓睡不饱耶3 小时前
花店花品信息管理系统开发实战:Python实现简易门店管理系统
服务器·python·microsoft