| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- #!/bin/bash
- # 账单性能测试运行脚本
- # 用法: bash run_billing_test.sh [quick|full|compare]
- 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:-quick}" in
- # 快速验证:20并发,5分钟,验证优化是否生效
- quick)
- echo "=== 快速验证测试:20并发 / 5分钟 ==="
- "$JMETER" -n \
- -t billing_perf_test.jmx \
- -Jbase_url="$BASE_URL" \
- -Jthread_count=20 \
- -Jramp_up=30 \
- -Jduration=300 \
- -l "$RESULTS_DIR/billing_quick_${TIMESTAMP}.jtl" \
- -e -o "$RESULTS_DIR/billing_quick_report_${TIMESTAMP}/"
- echo "报告: $RESULTS_DIR/billing_quick_report_${TIMESTAMP}/index.html"
- ;;
- # 完整测试:50并发,15分钟
- full)
- echo "=== 完整性能测试:50并发 / 15分钟 ==="
- "$JMETER" -n \
- -t billing_perf_test.jmx \
- -Jbase_url="$BASE_URL" \
- -Jthread_count=50 \
- -Jramp_up=60 \
- -Jduration=900 \
- -l "$RESULTS_DIR/billing_full_${TIMESTAMP}.jtl" \
- -e -o "$RESULTS_DIR/billing_full_report_${TIMESTAMP}/"
- echo "报告: $RESULTS_DIR/billing_full_report_${TIMESTAMP}/index.html"
- ;;
- # 对比测试说明
- compare)
- echo "=== 对比测试说明 ==="
- echo "1. 先切换到优化前的代码(git stash 或 git checkout 旧版本)"
- echo "2. 运行: bash run_billing_test.sh quick"
- echo "3. 记录结果目录名"
- echo "4. 切换回优化后的代码"
- echo "5. 再次运行: bash run_billing_test.sh quick"
- echo "6. 对比两次报告中的 P95、TPS、错误率"
- echo ""
- echo "重点关注指标:"
- echo " - GET /api/billing/records P95(预期从 800ms 降到 200ms 以内)"
- echo " - GET /api/billing/summary P95(预期从 500ms 降到 150ms 以内)"
- echo " - GET /api/billing/balance P95(预期从 300ms 降到 150ms 以内)"
- echo " - POST /api/llm/chat(stream) 错误率(预期从有错误降到 0)"
- ;;
- *)
- echo "用法: bash run_billing_test.sh [quick|full|compare]"
- exit 1
- ;;
- esac
|