test-all-apis.sh 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. #!/bin/bash
  2. BASE_URL="http://localhost:8080"
  3. PASS=0
  4. FAIL=0
  5. test_api() {
  6. local method=$1
  7. local url=$2
  8. local data=$3
  9. local desc=$4
  10. local token=$5
  11. if [ -n "$token" ]; then
  12. if [ "$method" = "GET" ]; then
  13. response=$(curl -s -w "\n%{http_code}" -H "Authorization: Bearer $token" "$BASE_URL$url" 2>/dev/null)
  14. else
  15. response=$(curl -s -w "\n%{http_code}" -X "$method" -H "Authorization: Bearer $token" -H "Content-Type: application/json" -d "$data" "$BASE_URL$url" 2>/dev/null)
  16. fi
  17. else
  18. if [ "$method" = "GET" ]; then
  19. response=$(curl -s -w "\n%{http_code}" "$BASE_URL$url" 2>/dev/null)
  20. else
  21. response=$(curl -s -w "\n%{http_code}" -X "$method" -H "Content-Type: application/json" -d "$data" "$BASE_URL$url" 2>/dev/null)
  22. fi
  23. fi
  24. http_code=$(echo "$response" | tail -1)
  25. body=$(echo "$response" | head -n -1)
  26. if [ "$http_code" = "200" ]; then
  27. echo "✓ $desc"
  28. PASS=$((PASS + 1))
  29. else
  30. echo "✗ $desc (HTTP $http_code)"
  31. FAIL=$((FAIL + 1))
  32. fi
  33. }
  34. echo "=========================================="
  35. echo "Phase 1: 基础设施与用户体系"
  36. echo "=========================================="
  37. # 1. 管理员登录
  38. echo "--- 管理员登录 ---"
  39. admin_login=$(curl -s -X POST "$BASE_URL/api/admin/auth/login" -H "Content-Type: application/json" -d '{"username":"admin","password":"admin123"}')
  40. ADMIN_TOKEN=$(echo "$admin_login" | grep -o '"token":"[^"]*"' | cut -d'"' -f4)
  41. if [ -n "$ADMIN_TOKEN" ]; then
  42. echo "✓ 管理员登录成功"
  43. PASS=$((PASS + 1))
  44. else
  45. echo "✗ 管理员登录失败"
  46. FAIL=$((FAIL + 1))
  47. fi
  48. # 2. 首页接口
  49. test_api "GET" "/api/wx/home/index" "" "首页信息"
  50. test_api "GET" "/api/wx/home/market-prices" "" "今日行情"
  51. test_api "GET" "/api/wx/home/statistics" "" "统计数据"
  52. echo ""
  53. echo "=========================================="
  54. echo "Phase 2a: 果农核心功能"
  55. echo "=========================================="
  56. # 先获取token
  57. wx_login=$(curl -s -X POST "$BASE_URL/api/wx/auth/wx-login" -H "Content-Type: application/json" -d '{"code":"test123"}')
  58. WX_TOKEN=$(echo "$wx_login" | grep -o '"token":"[^"]*"' | cut -d'"' -f4)
  59. if [ -z "$WX_TOKEN" ]; then
  60. echo "尝试模拟token..."
  61. WX_TOKEN="test_token_for_api_test"
  62. fi
  63. # 3. 果农档案
  64. test_api "GET" "/api/wx/grower/profile" "" "查询果农档案" "$WX_TOKEN"
  65. test_api "PUT" "/api/wx/grower/profile" '{"name":"test","varieties":"[\"red\"]","yieldAmount":10000,"expectedPrice":3.5,"address":"addr"}' "创建果农档案" "$WX_TOKEN"
  66. # 4. 招工
  67. test_api "GET" "/api/wx/grower/recruit/list" "" "招工列表" "$WX_TOKEN"
  68. # 5. 找工人/客商
  69. test_api "GET" "/api/wx/grower/workers" "" "工人列表" "$WX_TOKEN"
  70. test_api "GET" "/api/wx/grower/buyers" "" "客商列表" "$WX_TOKEN"
  71. echo ""
  72. echo "=========================================="
  73. echo "Phase 2b: 工人+客商+农资功能"
  74. echo "=========================================="
  75. # 6. 工人模块
  76. test_api "GET" "/api/wx/worker/profile" "" "工人档案" "$WX_TOKEN"
  77. test_api "GET" "/api/wx/worker/recommend" "" "推荐招工" "$WX_TOKEN"
  78. test_api "GET" "/api/wx/worker/applies" "" "报名历史" "$WX_TOKEN"
  79. # 7. 客商模块
  80. test_api "GET" "/api/wx/buyer/profile" "" "客商档案" "$WX_TOKEN"
  81. test_api "GET" "/api/wx/buyer/goods" "" "货源列表" "$WX_TOKEN"
  82. test_api "GET" "/api/wx/buyer/preferences" "" "收购偏好" "$WX_TOKEN"
  83. # 8. 农资模块
  84. test_api "GET" "/api/wx/supplier/shop" "" "店铺信息" "$WX_TOKEN"
  85. echo ""
  86. echo "=========================================="
  87. echo "后台管理接口"
  88. echo "=========================================="
  89. test_api "GET" "/api/admin/grower-audit/list" "" "待审核列表" "$ADMIN_TOKEN"
  90. test_api "GET" "/api/admin/recruit-review/list" "" "待复核列表" "$ADMIN_TOKEN"
  91. test_api "GET" "/api/admin/sms/config" "" "短信配置" "$ADMIN_TOKEN"
  92. echo ""
  93. echo "=========================================="
  94. echo "测试结果"
  95. echo "=========================================="
  96. echo "通过: $PASS"
  97. echo "失败: $FAIL"
  98. echo "总计: $((PASS + FAIL))"