Files
gym-manage/test-suite/comprehensive-api-test-fixed.sh

458 lines
13 KiB
Bash
Executable File

#!/bin/bash
BASE_URL="http://localhost:8080"
TEST_RESULTS=()
PASS_COUNT=0
FAIL_COUNT=0
GREEN='\033[0;32m'
RED='\033[0;31m'
YELLOW='\033[1;33m'
NC='\033[0m'
log_test() {
local test_name=$1
local result=$2
local message=$3
if [ "$result" == "PASS" ]; then
echo -e "${GREEN}[PASS]${NC} $test_name"
PASS_COUNT=$((PASS_COUNT + 1))
else
echo -e "${RED}[FAIL]${NC} $test_name - $message"
FAIL_COUNT=$((FAIL_COUNT + 1))
fi
}
generate_unique_name() {
echo "test_$(date +%s)_$RANDOM"
}
echo "========================================="
echo "开始全面业务流程测试"
echo "========================================="
echo ""
echo "========== 1. 用户认证流程测试 =========="
echo ""
echo "1.1 用户登录测试"
LOGIN_RESPONSE=$(curl -s -X POST "$BASE_URL/api/auth/login" \
-H "Content-Type: application/json" \
-d '{"username":"admin","password":"Test@123"}')
if echo "$LOGIN_RESPONSE" | grep -q "token"; then
TOKEN=$(echo "$LOGIN_RESPONSE" | grep -o '"token":"[^"]*"' | cut -d'"' -f4)
log_test "用户登录" "PASS"
else
log_test "用户登录" "FAIL" "无法获取token"
exit 1
fi
echo ""
echo "1.2 Token验证测试"
USER_INFO=$(curl -s -X GET "$BASE_URL/api/users/1" \
-H "Authorization: Bearer $TOKEN")
if echo "$USER_INFO" | grep -q "admin"; then
log_test "Token验证" "PASS"
else
log_test "Token验证" "FAIL" "Token无效"
fi
echo ""
echo "========== 2. 用户管理流程测试 =========="
echo ""
echo "2.1 获取用户列表测试"
USERS_LIST=$(curl -s -X GET "$BASE_URL/api/users" \
-H "Authorization: Bearer $TOKEN")
if echo "$USERS_LIST" | grep -q "admin"; then
log_test "获取用户列表" "PASS"
else
log_test "获取用户列表" "FAIL" "无法获取用户列表"
fi
echo ""
echo "2.2 创建用户测试"
UNIQUE_USERNAME=$(generate_unique_name)
CREATE_USER_RESPONSE=$(curl -s -X POST "$BASE_URL/api/users" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d "{
\"username\": \"$UNIQUE_USERNAME\",
\"password\": \"Test@123\",
\"email\": \"$UNIQUE_USERNAME@example.com\",
\"phone\": \"13900139000\",
\"nickname\": \"测试用户\",
\"status\": 1
}")
if echo "$CREATE_USER_RESPONSE" | grep -q "id"; then
NEW_USER_ID=$(echo "$CREATE_USER_RESPONSE" | grep -o '"id":[0-9]*' | cut -d':' -f2)
log_test "创建用户" "PASS"
else
log_test "创建用户" "FAIL" "无法创建用户: $CREATE_USER_RESPONSE"
fi
echo ""
echo "2.3 更新用户测试"
if [ -n "$NEW_USER_ID" ]; then
UPDATE_USER_RESPONSE=$(curl -s -X PUT "$BASE_URL/api/users/$NEW_USER_ID" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"nickname": "更新后的用户",
"phone": "13900139001"
}')
if echo "$UPDATE_USER_RESPONSE" | grep -q "更新后的用户"; then
log_test "更新用户" "PASS"
else
log_test "更新用户" "FAIL" "无法更新用户"
fi
fi
echo ""
echo "2.4 删除用户测试"
if [ -n "$NEW_USER_ID" ]; then
DELETE_RESPONSE=$(curl -s -X DELETE "$BASE_URL/api/users/$NEW_USER_ID" \
-H "Authorization: Bearer $TOKEN")
if [ -z "$DELETE_RESPONSE" ] || echo "$DELETE_RESPONSE" | grep -q "success"; then
log_test "删除用户" "PASS"
else
log_test "删除用户" "FAIL" "无法删除用户"
fi
fi
echo ""
echo "========== 3. 角色管理流程测试 =========="
echo ""
echo "3.1 获取角色列表测试"
ROLES_LIST=$(curl -s -X GET "$BASE_URL/api/roles" \
-H "Authorization: Bearer $TOKEN")
if echo "$ROLES_LIST" | grep -q "admin"; then
log_test "获取角色列表" "PASS"
else
log_test "获取角色列表" "FAIL" "无法获取角色列表"
fi
echo ""
echo "3.2 创建角色测试"
UNIQUE_ROLE_KEY=$(generate_unique_name)
CREATE_ROLE_RESPONSE=$(curl -s -X POST "$BASE_URL/api/roles" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d "{
\"roleName\": \"测试角色_$UNIQUE_ROLE_KEY\",
\"roleKey\": \"$UNIQUE_ROLE_KEY\",
\"roleSort\": 99,
\"status\": 1
}")
if echo "$CREATE_ROLE_RESPONSE" | grep -q "id"; then
NEW_ROLE_ID=$(echo "$CREATE_ROLE_RESPONSE" | grep -o '"id":[0-9]*' | cut -d':' -f2)
log_test "创建角色" "PASS"
else
log_test "创建角色" "FAIL" "无法创建角色: $CREATE_ROLE_RESPONSE"
fi
echo ""
echo "3.3 更新角色测试"
if [ -n "$NEW_ROLE_ID" ]; then
UPDATE_ROLE_RESPONSE=$(curl -s -X PUT "$BASE_URL/api/roles/$NEW_ROLE_ID" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"roleName": "更新后的角色"
}')
if echo "$UPDATE_ROLE_RESPONSE" | grep -q "更新后的角色"; then
log_test "更新角色" "PASS"
else
log_test "更新角色" "FAIL" "无法更新角色"
fi
fi
echo ""
echo "3.4 删除角色测试"
if [ -n "$NEW_ROLE_ID" ]; then
DELETE_ROLE_RESPONSE=$(curl -s -X DELETE "$BASE_URL/api/roles/$NEW_ROLE_ID" \
-H "Authorization: Bearer $TOKEN")
if [ -z "$DELETE_ROLE_RESPONSE" ] || echo "$DELETE_ROLE_RESPONSE" | grep -q "success"; then
log_test "删除角色" "PASS"
else
log_test "删除角色" "FAIL" "无法删除角色"
fi
fi
echo ""
echo "========== 4. 菜单管理流程测试 =========="
echo ""
echo "4.1 获取菜单列表测试"
MENUS_LIST=$(curl -s -X GET "$BASE_URL/api/menus" \
-H "Authorization: Bearer $TOKEN")
if echo "$MENUS_LIST" | grep -q "系统管理"; then
log_test "获取菜单列表" "PASS"
else
log_test "获取菜单列表" "FAIL" "无法获取菜单列表"
fi
echo ""
echo "4.2 创建菜单测试"
UNIQUE_MENU_NAME=$(generate_unique_name)
CREATE_MENU_RESPONSE=$(curl -s -X POST "$BASE_URL/api/menus" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d "{
\"menuName\": \"测试菜单_$UNIQUE_MENU_NAME\",
\"parentId\": 0,
\"orderNum\": 99,
\"menuType\": \"M\",
\"status\": \"1\"
}")
if echo "$CREATE_MENU_RESPONSE" | grep -q "id"; then
NEW_MENU_ID=$(echo "$CREATE_MENU_RESPONSE" | grep -o '"id":[0-9]*' | cut -d':' -f2)
log_test "创建菜单" "PASS"
else
log_test "创建菜单" "FAIL" "无法创建菜单: $CREATE_MENU_RESPONSE"
fi
echo ""
echo "4.3 更新菜单测试"
if [ -n "$NEW_MENU_ID" ]; then
UPDATE_MENU_RESPONSE=$(curl -s -X PUT "$BASE_URL/api/menus/$NEW_MENU_ID" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"menuName": "更新后的菜单"
}')
if echo "$UPDATE_MENU_RESPONSE" | grep -q "更新后的菜单"; then
log_test "更新菜单" "PASS"
else
log_test "更新菜单" "FAIL" "无法更新菜单"
fi
fi
echo ""
echo "4.4 删除菜单测试"
if [ -n "$NEW_MENU_ID" ]; then
DELETE_MENU_RESPONSE=$(curl -s -X DELETE "$BASE_URL/api/menus/$NEW_MENU_ID" \
-H "Authorization: Bearer $TOKEN")
if [ -z "$DELETE_MENU_RESPONSE" ] || echo "$DELETE_MENU_RESPONSE" | grep -q "success"; then
log_test "删除菜单" "PASS"
else
log_test "删除菜单" "FAIL" "无法删除菜单"
fi
fi
echo ""
echo "========== 5. 权限管理流程测试 =========="
echo ""
echo "5.1 获取权限列表测试"
PERMISSIONS_LIST=$(curl -s -X GET "$BASE_URL/api/permissions" \
-H "Authorization: Bearer $TOKEN")
if echo "$PERMISSIONS_LIST" | grep -q "system:manage"; then
log_test "获取权限列表" "PASS"
else
log_test "获取权限列表" "FAIL" "无法获取权限列表: $PERMISSIONS_LIST"
fi
echo ""
echo "5.2 创建权限测试"
UNIQUE_PERM_KEY=$(generate_unique_name)
CREATE_PERMISSION_RESPONSE=$(curl -s -X POST "$BASE_URL/api/permissions" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d "{
\"permissionName\": \"测试权限_$UNIQUE_PERM_KEY\",
\"permissionCode\": \"$UNIQUE_PERM_KEY\",
\"permissionType\": \"button\",
\"parentId\": 0,
\"status\": 1
}")
if echo "$CREATE_PERMISSION_RESPONSE" | grep -q "id"; then
NEW_PERMISSION_ID=$(echo "$CREATE_PERMISSION_RESPONSE" | grep -o '"id":[0-9]*' | cut -d':' -f2)
log_test "创建权限" "PASS"
else
log_test "创建权限" "FAIL" "无法创建权限: $CREATE_PERMISSION_RESPONSE"
fi
echo ""
echo "5.3 更新权限测试"
if [ -n "$NEW_PERMISSION_ID" ]; then
UPDATE_PERMISSION_RESPONSE=$(curl -s -X PUT "$BASE_URL/api/permissions/$NEW_PERMISSION_ID" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"permissionName": "更新后的权限"
}')
if echo "$UPDATE_PERMISSION_RESPONSE" | grep -q "更新后的权限"; then
log_test "更新权限" "PASS"
else
log_test "更新权限" "FAIL" "无法更新权限"
fi
fi
echo ""
echo "5.4 删除权限测试"
if [ -n "$NEW_PERMISSION_ID" ]; then
DELETE_PERMISSION_RESPONSE=$(curl -s -X DELETE "$BASE_URL/api/permissions/$NEW_PERMISSION_ID" \
-H "Authorization: Bearer $TOKEN")
if [ -z "$DELETE_PERMISSION_RESPONSE" ] || echo "$DELETE_PERMISSION_RESPONSE" | grep -q "success"; then
log_test "删除权限" "PASS"
else
log_test "删除权限" "FAIL" "无法删除权限"
fi
fi
echo ""
echo "========== 6. 字典管理流程测试 =========="
echo ""
echo "6.1 获取字典类型列表测试"
DICT_TYPES_LIST=$(curl -s -X GET "$BASE_URL/api/dict/types" \
-H "Authorization: Bearer $TOKEN")
if echo "$DICT_TYPES_LIST" | grep -q "user_status"; then
log_test "获取字典类型列表" "PASS"
else
log_test "获取字典类型列表" "FAIL" "无法获取字典类型列表"
fi
echo ""
echo "6.2 创建字典类型测试"
UNIQUE_DICT_TYPE=$(generate_unique_name)
CREATE_DICT_TYPE_RESPONSE=$(curl -s -X POST "$BASE_URL/api/dict/types" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d "{
\"dictName\": \"测试字典_$UNIQUE_DICT_TYPE\",
\"dictType\": \"$UNIQUE_DICT_TYPE\",
\"status\": \"0\"
}")
if echo "$CREATE_DICT_TYPE_RESPONSE" | grep -q "id"; then
NEW_DICT_TYPE_ID=$(echo "$CREATE_DICT_TYPE_RESPONSE" | grep -o '"id":[0-9]*' | cut -d':' -f2)
log_test "创建字典类型" "PASS"
else
log_test "创建字典类型" "FAIL" "无法创建字典类型: $CREATE_DICT_TYPE_RESPONSE"
fi
echo ""
echo "6.3 获取字典数据列表测试"
DICT_DATA_LIST=$(curl -s -X GET "$BASE_URL/api/dict/data" \
-H "Authorization: Bearer $TOKEN")
if echo "$DICT_DATA_LIST" | grep -q "正常"; then
log_test "获取字典数据列表" "PASS"
else
log_test "获取字典数据列表" "FAIL" "无法获取字典数据列表"
fi
echo ""
echo "========== 7. 系统配置管理流程测试 =========="
echo ""
echo "7.1 获取系统配置列表测试"
CONFIG_LIST=$(curl -s -X GET "$BASE_URL/api/config" \
-H "Authorization: Bearer $TOKEN")
if echo "$CONFIG_LIST" | grep -q "sys.user.initPassword"; then
log_test "获取系统配置列表" "PASS"
else
log_test "获取系统配置列表" "FAIL" "无法获取系统配置列表"
fi
echo ""
echo "7.2 创建系统配置测试"
UNIQUE_CONFIG_KEY=$(generate_unique_name)
CREATE_CONFIG_RESPONSE=$(curl -s -X POST "$BASE_URL/api/config" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d "{
\"configName\": \"测试配置_$UNIQUE_CONFIG_KEY\",
\"configKey\": \"$UNIQUE_CONFIG_KEY\",
\"configValue\": \"test_value\",
\"configType\": \"Y\"
}")
if echo "$CREATE_CONFIG_RESPONSE" | grep -q "id"; then
NEW_CONFIG_ID=$(echo "$CREATE_CONFIG_RESPONSE" | grep -o '"id":[0-9]*' | cut -d':' -f2)
log_test "创建系统配置" "PASS"
else
log_test "创建系统配置" "FAIL" "无法创建系统配置: $CREATE_CONFIG_RESPONSE"
fi
echo ""
echo "========== 8. 日志管理流程测试 =========="
echo ""
echo "8.1 获取登录日志列表测试"
LOGIN_LOG_LIST=$(curl -s -X GET "$BASE_URL/api/logs/login" \
-H "Authorization: Bearer $TOKEN")
if [ -n "$LOGIN_LOG_LIST" ]; then
log_test "获取登录日志列表" "PASS"
else
log_test "获取登录日志列表" "FAIL" "无法获取登录日志列表"
fi
echo ""
echo "8.2 获取操作日志列表测试"
OPERATION_LOG_LIST=$(curl -s -X GET "$BASE_URL/api/logs/operation" \
-H "Authorization: Bearer $TOKEN")
if [ -n "$OPERATION_LOG_LIST" ]; then
log_test "获取操作日志列表" "PASS"
else
log_test "获取操作日志列表" "FAIL" "无法获取操作日志列表"
fi
echo ""
echo "========== 9. 统计数据测试 =========="
echo ""
echo "9.1 获取系统概览统计测试"
STATS_OVERVIEW=$(curl -s -X GET "$BASE_URL/api/stats/overview" \
-H "Authorization: Bearer $TOKEN")
if echo "$STATS_OVERVIEW" | grep -q "userCount\|roleCount\|menuCount"; then
log_test "获取系统概览统计" "PASS"
else
log_test "获取系统概览统计" "FAIL" "无法获取系统概览统计"
fi
echo ""
echo "========================================="
echo "测试执行完成"
echo "========================================="
echo ""
echo -e "${GREEN}通过测试: $PASS_COUNT${NC}"
echo -e "${RED}失败测试: $FAIL_COUNT${NC}"
echo -e "总计测试: $((PASS_COUNT + FAIL_COUNT))"
echo ""
if [ $FAIL_COUNT -eq 0 ]; then
echo -e "${GREEN}所有测试通过!${NC}"
exit 0
else
echo -e "${RED}存在失败的测试!${NC}"
exit 1
fi