#!/bin/bash # 后台API接口测试脚本 echo "==========================================" echo "陪诊系统后台API接口测试" echo "==========================================" echo "" # 服务器地址配置 SERVER_URL="http://101.43.95.130:8039" # 如果公网无法访问,使用本地测试 # SERVER_URL="http://localhost:8039" # 颜色定义 GREEN='\033[0;32m' RED='\033[0;31m' YELLOW='\033[1;33m' NC='\033[0m' # No Color # 测试结果统计 TOTAL=0 PASSED=0 FAILED=0 # 测试函数 test_api() { local name=$1 local method=$2 local url=$3 local data=$4 local need_auth=$5 TOTAL=$((TOTAL + 1)) echo -n "测试 $TOTAL: $name ... " # 构建curl命令 if [ "$method" = "GET" ]; then if [ "$need_auth" = "true" ]; then response=$(curl -s -w "\nHTTP_CODE:%{http_code}" -X GET "$url" \ -H "Authorization: Bearer test_token" \ -H "Content-Type: application/json" 2>&1) else response=$(curl -s -w "\nHTTP_CODE:%{http_code}" -X GET "$url" \ -H "Content-Type: application/json" 2>&1) fi else if [ "$need_auth" = "true" ]; then response=$(curl -s -w "\nHTTP_CODE:%{http_code}" -X POST "$url" \ -H "Authorization: Bearer test_token" \ -H "Content-Type: application/json" \ -d "$data" 2>&1) else response=$(curl -s -w "\nHTTP_CODE:%{http_code}" -X POST "$url" \ -H "Content-Type: application/json" \ -d "$data" 2>&1) fi fi # 提取HTTP状态码 http_code=$(echo "$response" | grep "HTTP_CODE" | cut -d: -f2) body=$(echo "$response" | sed '/HTTP_CODE/d') # 判断结果 if [ "$http_code" = "200" ] || [ "$http_code" = "401" ] || [ "$http_code" = "403" ]; then # 200表示成功,401/403表示接口存在但需要认证(也算接口正常) echo -e "${GREEN}✓ 通过${NC} (HTTP $http_code)" PASSED=$((PASSED + 1)) # 显示响应内容的前100个字符 if [ -n "$body" ]; then echo " 响应: $(echo "$body" | head -c 100)..." fi else echo -e "${RED}✗ 失败${NC} (HTTP $http_code)" FAILED=$((FAILED + 1)) if [ -n "$body" ]; then echo " 错误: $(echo "$body" | head -c 100)..." fi fi echo "" } # 开始测试 echo "服务器地址: $SERVER_URL" echo "开始时间: $(date '+%Y-%m-%d %H:%M:%S')" echo "" echo "----------------------------------------" echo "1. 基础接口测试(无需认证)" echo "----------------------------------------" # 测试1: 首页接口 test_api "首页接口" "GET" "$SERVER_URL/" "false" # 测试2: 验证码接口 test_api "验证码接口" "GET" "$SERVER_URL/captchaImage" "false" # 测试3: 医院列表接口(需要认证,但可以测试接口是否存在) test_api "医院列表接口" "GET" "$SERVER_URL/system/hospital/list" "" "true" echo "----------------------------------------" echo "2. 登录相关接口测试" echo "----------------------------------------" # 测试4: 微信登录接口(需要真实参数,但可以测试接口是否存在) test_api "微信登录接口" "POST" "$SERVER_URL/weixinLogin" \ '{"wxcode":"test","encryptedData":"test","iv":"test"}' "false" # 测试5: 获取用户Token接口 test_api "获取用户Token接口" "GET" "$SERVER_URL/getUserToken?phonenumber=13800138000" "" "false" echo "----------------------------------------" echo "3. 系统配置接口测试" echo "----------------------------------------" # 测试6: 获取价格配置 test_api "价格配置接口" "GET" "$SERVER_URL/system/config/configKey/price" "" "true" # 测试7: 获取价格类型配置 test_api "价格类型配置接口" "GET" "$SERVER_URL/system/config/configKey/priceType" "" "true" echo "----------------------------------------" echo "4. 订单相关接口测试" echo "----------------------------------------" # 测试8: 订单列表接口 test_api "订单列表接口" "GET" "$SERVER_URL/system/view/list" "" "true" # 测试9: 创建订单接口(需要完整参数,但可以测试接口是否存在) test_api "创建订单接口" "POST" "$SERVER_URL/system/order/insertOrderPz" \ '{"bId":104,"cId":1,"yuguMoney":"200","yuliu9":"2","yuliu10":"1"}' "true" echo "----------------------------------------" echo "5. 用户相关接口测试" echo "----------------------------------------" # 测试10: 用户列表接口 test_api "用户列表接口" "GET" "$SERVER_URL/system/user/list" "" "true" # 测试11: 获取用户信息接口 test_api "获取用户信息接口" "GET" "$SERVER_URL/getInfo" "" "true" echo "" echo "==========================================" echo "测试结果统计" echo "==========================================" echo "总测试数: $TOTAL" echo -e "通过: ${GREEN}$PASSED${NC}" echo -e "失败: ${RED}$FAILED${NC}" echo "通过率: $(( PASSED * 100 / TOTAL ))%" echo "" echo "结束时间: $(date '+%Y-%m-%d %H:%M:%S')" echo "" # 判断整体结果 if [ $FAILED -eq 0 ]; then echo -e "${GREEN}所有接口测试通过!${NC}" exit 0 else echo -e "${YELLOW}部分接口测试失败,请检查服务器状态和网络连接${NC}" exit 1 fi