#!/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 } 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 创建用户测试" CREATE_USER_RESPONSE=$(curl -s -X POST "$BASE_URL/api/users" \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{ "username": "testuser_'$(date +%s)'", "password": "Test@123", "email": "testuser@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" "无法创建用户" 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 创建角色测试" CREATE_ROLE_RESPONSE=$(curl -s -X POST "$BASE_URL/api/roles" \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{ "roleName": "测试角色_'$(date +%s)'", "roleKey": "test_role_'$(date +%s)'", "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" "无法创建角色" 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 创建菜单测试" CREATE_MENU_RESPONSE=$(curl -s -X POST "$BASE_URL/api/menus" \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{ "menuName": "测试菜单_'$(date +%s)'", "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" "无法创建菜单" 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" "无法获取权限列表" fi echo "" echo "5.2 创建权限测试" CREATE_PERMISSION_RESPONSE=$(curl -s -X POST "$BASE_URL/api/permissions" \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{ "permissionName": "测试权限_'$(date +%s)'", "permissionKey": "test:permission:'$(date +%s)'", "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" "无法创建权限" 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 创建字典类型测试" CREATE_DICT_TYPE_RESPONSE=$(curl -s -X POST "$BASE_URL/api/dict/types" \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{ "dictName": "测试字典_'$(date +%s)'", "dictType": "test_dict_'$(date +%s)'", "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" "无法创建字典类型" 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 创建系统配置测试" CREATE_CONFIG_RESPONSE=$(curl -s -X POST "$BASE_URL/api/config" \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{ "configName": "测试配置_'$(date +%s)'", "configKey": "test.config.'$(date +%s)'", "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" "无法创建系统配置" 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