文件夹整理
This commit is contained in:
224
test_base_staff_rename.sh
Normal file
224
test_base_staff_rename.sh
Normal file
@@ -0,0 +1,224 @@
|
||||
#!/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
|
||||
Reference in New Issue
Block a user