run_tests.sh 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. #!/bin/bash
  2. # AIGCSpace JMeter 测试运行脚本
  3. # 用法: bash run_tests.sh [stability|stress|ramp]
  4. set -e
  5. BASE_URL="${BASE_URL:-https://aigc-api.wangxunai.com}"
  6. JMETER="${JMETER_HOME:-jmeter}"
  7. TIMESTAMP=$(date +%Y%m%d_%H%M%S)
  8. RESULTS_DIR="results"
  9. mkdir -p "$RESULTS_DIR"
  10. case "${1:-stability}" in
  11. # 稳定性测试:20并发,持续30分钟
  12. stability)
  13. echo "=== 稳定性测试:20并发 / 30分钟 ==="
  14. "$JMETER" -n \
  15. -t aigcspace_test_plan.jmx \
  16. -Jbase_url="$BASE_URL" \
  17. -Jthread_count=20 \
  18. -Jramp_up=30 \
  19. -Jduration=1800 \
  20. -l "$RESULTS_DIR/stability_${TIMESTAMP}.jtl" \
  21. -e -o "$RESULTS_DIR/stability_report_${TIMESTAMP}/"
  22. echo "报告: $RESULTS_DIR/stability_report_${TIMESTAMP}/index.html"
  23. ;;
  24. # 压力测试:100并发,持续10分钟
  25. stress)
  26. echo "=== 压力测试:100并发 / 10分钟 ==="
  27. "$JMETER" -n \
  28. -t aigcspace_test_plan.jmx \
  29. -Jbase_url="$BASE_URL" \
  30. -Jthread_count=100 \
  31. -Jramp_up=60 \
  32. -Jduration=600 \
  33. -l "$RESULTS_DIR/stress_${TIMESTAMP}.jtl" \
  34. -e -o "$RESULTS_DIR/stress_report_${TIMESTAMP}/"
  35. echo "报告: $RESULTS_DIR/stress_report_${TIMESTAMP}/index.html"
  36. ;;
  37. # 阶梯加压:10→50→100→200,每阶段3分钟
  38. ramp)
  39. echo "=== 阶梯压力测试:10→50→100→200并发 ==="
  40. "$JMETER" -n \
  41. -t stress_ramp_test.jmx \
  42. -Jbase_url="$BASE_URL" \
  43. -l "$RESULTS_DIR/ramp_${TIMESTAMP}.jtl" \
  44. -e -o "$RESULTS_DIR/ramp_report_${TIMESTAMP}/"
  45. echo "报告: $RESULTS_DIR/ramp_report_${TIMESTAMP}/index.html"
  46. ;;
  47. *)
  48. echo "用法: bash run_tests.sh [stability|stress|ramp]"
  49. echo " stability 稳定性测试(20并发,30分钟)"
  50. echo " stress 压力测试(100并发,10分钟)"
  51. echo " ramp 阶梯加压(10→200并发)"
  52. exit 1
  53. ;;
  54. esac