282 lines
8.7 KiB
Bash
282 lines
8.7 KiB
Bash
#!/bin/bash
|
|
# ============================================================
|
|
# 个人客户利率定价流程接口测试脚本
|
|
# 用途:测试个人客户发起接口的各项场景
|
|
# 使用方法: ./test_personal_create.sh
|
|
# ============================================================
|
|
|
|
# 配置
|
|
BASE_URL="http://localhost:8080"
|
|
LOGIN_URL="${BASE_URL}/login/test"
|
|
PERSONAL_CREATE_URL="${BASE_URL}/loanPricing/workflow/create/personal"
|
|
|
|
# 颜色输出
|
|
GREEN='\033[0;32m'
|
|
RED='\033[0;31m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m' # No Color
|
|
|
|
# 测试结果统计
|
|
TESTS_PASSED=0
|
|
TESTS_FAILED=0
|
|
|
|
# ============================================================
|
|
# 函数:打印测试结果
|
|
# ============================================================
|
|
print_result() {
|
|
local test_name="$1"
|
|
local result="$2"
|
|
|
|
if [ "$result" == "0" ]; then
|
|
echo -e "${GREEN}✓${NC} $test_name - ${GREEN}PASSED${NC}"
|
|
((TESTS_PASSED++))
|
|
else
|
|
echo -e "${RED}✗${NC} $test_name - ${RED}FAILED${NC}"
|
|
((TESTS_FAILED++))
|
|
fi
|
|
}
|
|
|
|
# ============================================================
|
|
# 步骤 1: 获取测试 Token
|
|
# ============================================================
|
|
echo "=========================================="
|
|
echo "步骤 1: 获取测试 Token"
|
|
echo "=========================================="
|
|
|
|
TOKEN_RESPONSE=$(curl -s -X POST "$LOGIN_URL" \
|
|
-H "Content-Type: application/json" \
|
|
-d '{
|
|
"username": "admin",
|
|
"password": "admin123"
|
|
}')
|
|
|
|
TOKEN=$(echo "$TOKEN_RESPONSE" | grep -o '"token":"[^"]*"' | cut -d'"' -f4)
|
|
|
|
if [ -z "$TOKEN" ]; then
|
|
echo -e "${RED}获取 Token 失败${NC}"
|
|
echo "响应: $TOKEN_RESPONSE"
|
|
exit 1
|
|
fi
|
|
|
|
echo -e "${GREEN}Token 获取成功${NC}"
|
|
echo "Token: ${TOKEN:0:20}..."
|
|
|
|
# ============================================================
|
|
# 步骤 2: 测试个人客户发起 - 成功场景
|
|
# ============================================================
|
|
echo ""
|
|
echo "=========================================="
|
|
echo "步骤 2: 测试个人客户发起 - 成功场景"
|
|
echo "=========================================="
|
|
|
|
RESPONSE=$(curl -s -X POST "$PERSONAL_CREATE_URL" \
|
|
-H "Authorization: Bearer $TOKEN" \
|
|
-H "Content-Type: application/json" \
|
|
-d '{
|
|
"custIsn": "TEST001",
|
|
"custName": "张三",
|
|
"idType": "身份证",
|
|
"idNum": "110101199001011234",
|
|
"guarType": "信用",
|
|
"applyAmt": "500000",
|
|
"bizProof": "true",
|
|
"loanLoop": "false"
|
|
}')
|
|
|
|
# 检查响应
|
|
CODE=$(echo "$RESPONSE" | grep -o '"code":[0-9]*' | cut -d':' -f2)
|
|
CUST_TYPE=$(echo "$RESPONSE" | grep -o '"custType":"[^"]*"' | cut -d'"' -f4)
|
|
SERIAL_NUM=$(echo "$RESPONSE" | grep -o '"serialNum":"[^"]*"' | cut -d'"' -f4)
|
|
|
|
if [ "$CODE" == "200" ] && [ "$CUST_TYPE" == "个人" ] && [ -n "$SERIAL_NUM" ]; then
|
|
print_result "个人客户发起成功场景" "0"
|
|
echo " 业务流水号: $SERIAL_NUM"
|
|
else
|
|
print_result "个人客户发起成功场景" "1"
|
|
echo " 响应: $RESPONSE"
|
|
fi
|
|
|
|
# ============================================================
|
|
# 步骤 3: 测试缺少必填字段 custIsn
|
|
# ============================================================
|
|
echo ""
|
|
echo "=========================================="
|
|
echo "步骤 3: 测试缺少必填字段 custIsn"
|
|
echo "=========================================="
|
|
|
|
RESPONSE=$(curl -s -X POST "$PERSONAL_CREATE_URL" \
|
|
-H "Authorization: Bearer $TOKEN" \
|
|
-H "Content-Type: application/json" \
|
|
-d '{
|
|
"custName": "李四",
|
|
"idType": "身份证",
|
|
"idNum": "110101199001011235",
|
|
"guarType": "信用",
|
|
"applyAmt": "300000"
|
|
}')
|
|
|
|
CODE=$(echo "$RESPONSE" | grep -o '"code":[0-9]*' | cut -d':' -f2)
|
|
if [ "$CODE" == "500" ]; then
|
|
print_result "缺少 custIsn 字段验证" "0"
|
|
else
|
|
print_result "缺少 custIsn 字段验证" "1"
|
|
fi
|
|
|
|
# ============================================================
|
|
# 步骤 4: 测试缺少必填字段 guarType
|
|
# ============================================================
|
|
echo ""
|
|
echo "=========================================="
|
|
echo "步骤 4: 测试缺少必填字段 guarType"
|
|
echo "=========================================="
|
|
|
|
RESPONSE=$(curl -s -X POST "$PERSONAL_CREATE_URL" \
|
|
-H "Authorization: Bearer $TOKEN" \
|
|
-H "Content-Type: application/json" \
|
|
-d '{
|
|
"custIsn": "TEST002",
|
|
"custName": "王五",
|
|
"idType": "身份证",
|
|
"idNum": "110101199001011236",
|
|
"applyAmt": "300000"
|
|
}')
|
|
|
|
CODE=$(echo "$RESPONSE" | grep -o '"code":[0-9]*' | cut -d':' -f2)
|
|
if [ "$CODE" == "500" ]; then
|
|
print_result "缺少 guarType 字段验证" "0"
|
|
else
|
|
print_result "缺少 guarType 字段验证" "1"
|
|
fi
|
|
|
|
# ============================================================
|
|
# 步骤 5: 测试缺少必填字段 applyAmt
|
|
# ============================================================
|
|
echo ""
|
|
echo "=========================================="
|
|
echo "步骤 5: 测试缺少必填字段 applyAmt"
|
|
echo "=========================================="
|
|
|
|
RESPONSE=$(curl -s -X POST "$PERSONAL_CREATE_URL" \
|
|
-H "Authorization: Bearer $TOKEN" \
|
|
-H "Content-Type: application/json" \
|
|
-d '{
|
|
"custIsn": "TEST003",
|
|
"custName": "赵六",
|
|
"idType": "身份证",
|
|
"idNum": "110101199001011237",
|
|
"guarType": "保证"
|
|
}')
|
|
|
|
CODE=$(echo "$RESPONSE" | grep -o '"code":[0-9]*' | cut -d':' -f2)
|
|
if [ "$CODE" == "500" ]; then
|
|
print_result "缺少 applyAmt 字段验证" "0"
|
|
else
|
|
print_result "缺少 applyAmt 字段验证" "1"
|
|
fi
|
|
|
|
# ============================================================
|
|
# 步骤 6: 测试担保方式枚举验证失败
|
|
# ============================================================
|
|
echo ""
|
|
echo "=========================================="
|
|
echo "步骤 6: 测试担保方式枚举验证失败"
|
|
echo "=========================================="
|
|
|
|
RESPONSE=$(curl -s -X POST "$PERSONAL_CREATE_URL" \
|
|
-H "Authorization: Bearer $TOKEN" \
|
|
-H "Content-Type: application/json" \
|
|
-d '{
|
|
"custIsn": "TEST004",
|
|
"custName": "孙七",
|
|
"idType": "身份证",
|
|
"idNum": "110101199001011238",
|
|
"guarType": "无效值",
|
|
"applyAmt": "200000"
|
|
}')
|
|
|
|
CODE=$(echo "$RESPONSE" | grep -o '"code":[0-9]*' | cut -d':' -f2)
|
|
if [ "$CODE" == "500" ]; then
|
|
print_result "担保方式枚举验证" "0"
|
|
else
|
|
print_result "担保方式枚举验证" "1"
|
|
fi
|
|
|
|
# ============================================================
|
|
# 步骤 7: 测试包含抵质押信息
|
|
# ============================================================
|
|
echo ""
|
|
echo "=========================================="
|
|
echo "步骤 7: 测试包含抵质押信息"
|
|
echo "=========================================="
|
|
|
|
RESPONSE=$(curl -s -X POST "$PERSONAL_CREATE_URL" \
|
|
-H "Authorization: Bearer $TOKEN" \
|
|
-H "Content-Type: application/json" \
|
|
-d '{
|
|
"custIsn": "TEST005",
|
|
"custName": "周八",
|
|
"idType": "身份证",
|
|
"idNum": "110101199001011239",
|
|
"guarType": "抵押",
|
|
"applyAmt": "800000",
|
|
"bizProof": "true",
|
|
"loanLoop": "true",
|
|
"collType": "一类",
|
|
"collThirdParty": "false"
|
|
}')
|
|
|
|
CODE=$(echo "$RESPONSE" | grep -o '"code":[0-9]*' | cut -d':' -f2)
|
|
COLL_TYPE=$(echo "$RESPONSE" | grep -o '"collType":"[^"]*"' | cut -d'"' -f4)
|
|
LOAN_LOOP=$(echo "$RESPONSE" | grep -o '"loanLoop":"[^"]*"' | cut -d'"' -f4)
|
|
|
|
if [ "$CODE" == "200" ] && [ "$COLL_TYPE" == "一类" ] && [ "$LOAN_LOOP" == "true" ]; then
|
|
print_result "抵质押信息正确保存" "0"
|
|
echo " 抵质押类型: $COLL_TYPE"
|
|
echo " 循环功能: $LOAN_LOOP"
|
|
else
|
|
print_result "抵质押信息正确保存" "1"
|
|
fi
|
|
|
|
# ============================================================
|
|
# 步骤 8: 测试最小必填字段
|
|
# ============================================================
|
|
echo ""
|
|
echo "=========================================="
|
|
echo "步骤 8: 测试最小必填字段"
|
|
echo "=========================================="
|
|
|
|
RESPONSE=$(curl -s -X POST "$PERSONAL_CREATE_URL" \
|
|
-H "Authorization: Bearer $TOKEN" \
|
|
-H "Content-Type: application/json" \
|
|
-d '{
|
|
"custIsn": "TEST006",
|
|
"guarType": "质押",
|
|
"applyAmt": "100000"
|
|
}')
|
|
|
|
CODE=$(echo "$RESPONSE" | grep -o '"code":[0-9]*' | cut -d':' -f2)
|
|
if [ "$CODE" == "200" ]; then
|
|
print_result "最小必填字段测试" "0"
|
|
else
|
|
print_result "最小必填字段测试" "1"
|
|
fi
|
|
|
|
# ============================================================
|
|
# 测试结果汇总
|
|
# ============================================================
|
|
echo ""
|
|
echo "=========================================="
|
|
echo "测试结果汇总"
|
|
echo "=========================================="
|
|
echo -e "${GREEN}通过: $TESTS_PASSED${NC}"
|
|
echo -e "${RED}失败: $TESTS_FAILED${NC}"
|
|
echo "总计: $((TESTS_PASSED + TESTS_FAILED))"
|
|
|
|
if [ $TESTS_FAILED -eq 0 ]; then
|
|
echo -e "\n${GREEN}所有测试通过!${NC}"
|
|
exit 0
|
|
else
|
|
echo -e "\n${RED}存在测试失败,请检查日志${NC}"
|
|
exit 1
|
|
fi
|