#!/bin/bash # AIGCSpace JMeter 测试运行脚本 # 用法: bash run_tests.sh [stability|stress|ramp] set -e BASE_URL="${BASE_URL:-https://aigc-api.wangxunai.com}" JMETER="${JMETER_HOME:-jmeter}" TIMESTAMP=$(date +%Y%m%d_%H%M%S) RESULTS_DIR="results" mkdir -p "$RESULTS_DIR" case "${1:-stability}" in # 稳定性测试:20并发,持续30分钟 stability) echo "=== 稳定性测试:20并发 / 30分钟 ===" "$JMETER" -n \ -t aigcspace_test_plan.jmx \ -Jbase_url="$BASE_URL" \ -Jthread_count=20 \ -Jramp_up=30 \ -Jduration=1800 \ -l "$RESULTS_DIR/stability_${TIMESTAMP}.jtl" \ -e -o "$RESULTS_DIR/stability_report_${TIMESTAMP}/" echo "报告: $RESULTS_DIR/stability_report_${TIMESTAMP}/index.html" ;; # 压力测试:100并发,持续10分钟 stress) echo "=== 压力测试:100并发 / 10分钟 ===" "$JMETER" -n \ -t aigcspace_test_plan.jmx \ -Jbase_url="$BASE_URL" \ -Jthread_count=100 \ -Jramp_up=60 \ -Jduration=600 \ -l "$RESULTS_DIR/stress_${TIMESTAMP}.jtl" \ -e -o "$RESULTS_DIR/stress_report_${TIMESTAMP}/" echo "报告: $RESULTS_DIR/stress_report_${TIMESTAMP}/index.html" ;; # 阶梯加压:10→50→100→200,每阶段3分钟 ramp) echo "=== 阶梯压力测试:10→50→100→200并发 ===" "$JMETER" -n \ -t stress_ramp_test.jmx \ -Jbase_url="$BASE_URL" \ -l "$RESULTS_DIR/ramp_${TIMESTAMP}.jtl" \ -e -o "$RESULTS_DIR/ramp_report_${TIMESTAMP}/" echo "报告: $RESULTS_DIR/ramp_report_${TIMESTAMP}/index.html" ;; *) echo "用法: bash run_tests.sh [stability|stress|ramp]" echo " stability 稳定性测试(20并发,30分钟)" echo " stress 压力测试(100并发,10分钟)" echo " ramp 阶梯加压(10→200并发)" exit 1 ;; esac