Files
ccdi/test_base_staff_rename.sh
2026-02-09 14:28:25 +08:00

225 lines
6.0 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# 员工信息表重命名测试脚本
# 测试 ccdi_base_staff 表及相关功能
# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# 测试结果统计
TOTAL_TESTS=0
PASSED_TESTS=0
FAILED_TESTS=0
# 日志函数
log_info() {
echo -e "${GREEN}[INFO]${NC} $1"
}
log_error() {
echo -e "${RED}[ERROR]${NC} $1"
}
log_warn() {
echo -e "${YELLOW}[WARN]${NC} $1"
}
# 测试函数
test_case() {
TOTAL_TESTS=$((TOTAL_TESTS + 1))
local test_name=$1
local test_command=$2
local expected_result=$3
echo -e "\n========================================"
echo "测试 ${TOTAL_TESTS}: $test_name"
echo "========================================"
eval "$test_command"
local actual_result=$?
if [ "$actual_result" -eq "$expected_result" ]; then
PASSED_TESTS=$((PASSED_TESTS + 1))
log_info "✓ 测试通过"
else
FAILED_TESTS=$((FAILED_TESTS + 1))
log_error "✗ 测试失败 (期望: $expected_result, 实际: $actual_result)"
fi
}
# 获取 Token
get_token() {
log_info "获取登录 Token..."
TOKEN=$(curl -s -X POST "http://localhost:8080/login/test" \
-H "Content-Type: application/json" \
-d '{"username":"admin","password":"admin123"}' | jq -r '.data.token // empty')
if [ -z "$TOKEN" ] || [ "$TOKEN" = "null" ]; then
log_error "无法获取 Token"
exit 1
fi
log_info "Token 获取成功: ${TOKEN:0:20}..."
}
# 测试 1: 验证表结构
test_table_structure() {
log_info "验证 ccdi_base_staff 表结构..."
local result=$(mysql -h localhost -u root -proot -D discipline_prelim_check -e "
SELECT COUNT(*) as cnt
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = 'discipline_prelim_check'
AND TABLE_NAME = 'ccdi_base_staff'
AND COLUMN_NAME = 'staff_id';" 2>/dev/null | tail -1)
if [ "$result" -eq 1 ]; then
return 0
else
return 1
fi
}
# 测试 2: 验证字段不存在
test_field_not_exist() {
log_info "验证 teller_no 字段已删除..."
local result=$(mysql -h localhost -u root -proot -D discipline_prelim_check -e "
SELECT COUNT(*) as cnt
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = 'discipline_prelim_check'
AND TABLE_NAME = 'ccdi_base_staff'
AND COLUMN_NAME = 'teller_no';" 2>/dev/null | tail -1)
if [ "$result" -eq 0 ]; then
return 0
else
return 1
fi
}
# 测试 3: 列表查询接口
test_list_api() {
log_info "测试列表查询接口..."
local response=$(curl -s -X GET "http://localhost:8080/ccdi/baseStaff/list?pageNum=1&pageSize=10" \
-H "Authorization: Bearer $TOKEN")
local code=$(echo $response | jq -r '.code // empty')
if [ "$code" = "200" ]; then
log_info "响应数据: $(echo $response | jq -r '.data.total // 0') 条记录"
return 0
else
log_error "API 响应码: $code"
log_error "响应内容: $response"
return 1
fi
}
# 测试 4: 详情查询接口
test_query_api() {
log_info "测试详情查询接口..."
local response=$(curl -s -X GET "http://localhost:8080/ccdi/baseStaff/1000001" \
-H "Authorization: Bearer $TOKEN")
local code=$(echo $response | jq -r '.code // empty')
if [ "$code" = "200" ] || [ "$code" = "500" ]; then
# 200 表示成功500 表示数据不存在也是正常的
return 0
else
log_error "API 响应码: $code"
return 1
fi
}
# 测试 5: 新增接口
test_add_api() {
log_info "测试新增接口..."
local response=$(curl -s -X POST "http://localhost:8080/ccdi/baseStaff" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"staffId": 9999999,
"name": "测试员工",
"deptId": 100,
"idCard": "110101199001011234",
"phone": "13800138000",
"status": "0"
}')
local code=$(echo $response | jq -r '.code // empty')
if [ "$code" = "200" ]; then
log_info "新增成功,清理测试数据..."
curl -s -X DELETE "http://localhost:8080/ccdi/baseStaff/9999999" \
-H "Authorization: Bearer $TOKEN" > /dev/null
return 0
else
log_error "新增失败,响应码: $code"
return 1
fi
}
# 测试 6: 权限验证
test_permission() {
log_info "测试权限字符验证..."
local result=$(mysql -h localhost -u root -proot -D discipline_prelim_check -e "
SELECT COUNT(*) as cnt
FROM sys_menu
WHERE perms LIKE 'ccdi:baseStaff:%';" 2>/dev/null | tail -1)
if [ "$result" -ge 7 ]; then
log_info "找到 $result 个权限配置"
return 0
else
log_error "权限配置不足,期望至少 7 个,实际 $result"
return 1
fi
}
# 主测试流程
main() {
echo "=========================================="
echo "员工信息表重命名测试"
echo "=========================================="
# 获取 Token
get_token
# 运行测试
test_case "验证表结构存在 staff_id 字段" "test_table_structure" 0
test_case "验证 teller_no 字段已删除" "test_field_not_exist" 0
test_case "验证权限配置" "test_permission" 0
test_case "测试列表查询接口" "test_list_api" 0
test_case "测试详情查询接口" "test_query_api" 0
test_case "测试新增接口" "test_add_api" 0
# 输出测试结果
echo -e "\n=========================================="
echo "测试结果汇总"
echo "=========================================="
echo -e "总测试数: ${TOTAL_TESTS}"
echo -e "${GREEN}通过: ${PASSED_TESTS}${NC}"
echo -e "${RED}失败: ${FAILED_TESTS}${NC}"
echo "=========================================="
if [ $FAILED_TESTS -eq 0 ]; then
log_info "所有测试通过!"
exit 0
else
log_error "存在失败的测试"
exit 1
fi
}
# 执行测试
main