2
0

run-stability-single.sh 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #!/bin/bash
  2. # 单文件稳定性测试 - 用于调试特定测试文件
  3. if [ -z "$1" ]; then
  4. echo "用法: $0 <test-file> [runs]"
  5. echo "示例: $0 disability-person-crud.spec.ts 10"
  6. echo ""
  7. echo "可用的测试文件:"
  8. echo " - disability-person-photo.spec.ts"
  9. echo " - disability-person-bankcard.spec.ts"
  10. echo " - disability-person-note.spec.ts"
  11. echo " - disability-person-visit.spec.ts"
  12. echo " - disability-person-crud.spec.ts"
  13. exit 1
  14. fi
  15. TEST_FILE="$1"
  16. RUNS="${2:-10}"
  17. PROJECT_ROOT="/mnt/code/188-179-template-6"
  18. WEB_DIR="${PROJECT_ROOT}/web"
  19. cd "${WEB_DIR}" || exit 1
  20. echo "========================================="
  21. echo "单文件稳定性测试"
  22. echo "========================================="
  23. echo "测试文件: ${TEST_FILE}"
  24. echo "运行次数: ${RUNS}"
  25. echo "开始时间: $(date)"
  26. echo "========================================="
  27. echo ""
  28. PASSED=0
  29. FAILED=0
  30. TIMES=()
  31. for i in $(seq 1 ${RUNS}); do
  32. echo "=== 运行 #${i}/${RUNS} ==="
  33. START=$(date +%s)
  34. if pnpm test:e2e:chromium "admin/${TEST_FILE}" --workers=2; then
  35. PASSED=$((PASSED + 1))
  36. echo "✅ 运行 #${i} 通过"
  37. else
  38. FAILED=$((FAILED + 1))
  39. echo "❌ 运行 #${i} 失败"
  40. fi
  41. END=$(date +%s)
  42. DURATION=$((END - START))
  43. TIMES+=($DURATION)
  44. echo "⏱️ 耗时: ${DURATION}s"
  45. echo ""
  46. done
  47. # 计算统计数据
  48. TOTAL=$((PASSED + FAILED))
  49. PASS_RATE=$((PASSED * 100 / TOTAL))
  50. AVG_TIME=$(awk '{sum+=$1} END {print sum/NR}' <<< "${TIMES[@]}")
  51. echo "========================================="
  52. echo "单文件稳定性测试结果"
  53. echo "========================================="
  54. echo "通过: ${PASSED}/${TOTAL} (${PASS_RATE}%)"
  55. echo "失败: ${FAILED}/${TOTAL}"
  56. echo "平均耗时: ${AVG_TIME}s"
  57. echo "========================================="