first commit
This commit is contained in:
160
test_api.sh
Executable file
160
test_api.sh
Executable file
@@ -0,0 +1,160 @@
|
||||
#!/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
|
||||
Reference in New Issue
Block a user