Files
loan-pricing/test_api/test_corporate_create.sh
2026-02-02 15:25:38 +08:00

312 lines
9.9 KiB
Bash

#!/bin/bash
# ============================================================
# 企业客户利率定价流程接口测试脚本
# 用途:测试企业客户发起接口的各项场景
# 使用方法: ./test_corporate_create.sh
# ============================================================
# 配置
BASE_URL="http://localhost:8080"
LOGIN_URL="${BASE_URL}/login/test"
CORPORATE_CREATE_URL="${BASE_URL}/loanPricing/workflow/create/corporate"
# 颜色输出
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 "$CORPORATE_CREATE_URL" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"custIsn": "CORP001",
"custName": "测试科技有限公司",
"idType": "统一社会信用代码",
"idNum": "91110000100000000X",
"guarType": "抵押",
"applyAmt": "1000000",
"loanTerm": "36",
"isAgriGuar": "false",
"isGreenLoan": "true",
"isTechEnt": "true"
}')
# 检查响应
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 "$CORPORATE_CREATE_URL" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"custName": "测试企业2",
"idType": "统一社会信用代码",
"idNum": "91110000100000001X",
"guarType": "信用",
"applyAmt": "500000"
}')
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 "$CORPORATE_CREATE_URL" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"custIsn": "CORP002",
"custName": "测试企业3",
"idType": "统一社会信用代码",
"idNum": "91110000100000002X",
"applyAmt": "800000"
}')
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 "$CORPORATE_CREATE_URL" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"custIsn": "CORP003",
"custName": "测试企业4",
"guarType": "保证",
"idType": "统一社会信用代码",
"idNum": "91110000100000003X"
}')
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 "$CORPORATE_CREATE_URL" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"custIsn": "CORP004",
"custName": "测试企业5",
"idType": "统一社会信用代码",
"idNum": "91110000100000004X",
"guarType": "无效值",
"applyAmt": "600000"
}')
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 "$CORPORATE_CREATE_URL" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"custIsn": "CORP005",
"custName": "农业科技有限公司",
"idType": "统一社会信用代码",
"idNum": "91110000100000005X",
"guarType": "保证",
"applyAmt": "2000000",
"loanTerm": "60",
"isAgriGuar": "true"
}')
CODE=$(echo "$RESPONSE" | grep -o '"code":[0-9]*' | cut -d':' -f2)
IS_AGRI_GUAR=$(echo "$RESPONSE" | grep -o '"isAgriGuar":"[^"]*"' | cut -d'"' -f4)
if [ "$CODE" == "200" ] && [ "$IS_AGRI_GUAR" == "true" ]; then
print_result "省农担担保贷款标识正确保存" "0"
echo " 省农担标识: $IS_AGRI_GUAR"
else
print_result "省农担担保贷款标识正确保存" "1"
fi
# ============================================================
# 步骤 8: 测试贸易和建筑业企业标识
# ============================================================
echo ""
echo "=========================================="
echo "步骤 8: 测试贸易和建筑业企业标识"
echo "=========================================="
RESPONSE=$(curl -s -X POST "$CORPORATE_CREATE_URL" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"custIsn": "CORP006",
"custName": "建筑工程有限公司",
"idType": "统一社会信用代码",
"idNum": "91110000100000006X",
"guarType": "质押",
"applyAmt": "1500000",
"loanTerm": "24",
"isTradeConstruction": "true"
}')
CODE=$(echo "$RESPONSE" | grep -o '"code":[0-9]*' | cut -d':' -f2)
IS_TRADE_CONSTRUCTION=$(echo "$RESPONSE" | grep -o '"isTradeConstruction":"[^"]*"' | cut -d'"' -f4)
if [ "$CODE" == "200" ] && [ "$IS_TRADE_CONSTRUCTION" == "true" ]; then
print_result "贸易和建筑业企业标识正确保存" "0"
echo " 贸易建筑标识: $IS_TRADE_CONSTRUCTION"
else
print_result "贸易和建筑业企业标识正确保存" "1"
fi
# ============================================================
# 步骤 9: 测试最小必填字段
# ============================================================
echo ""
echo "=========================================="
echo "步骤 9: 测试最小必填字段"
echo "=========================================="
RESPONSE=$(curl -s -X POST "$CORPORATE_CREATE_URL" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"custIsn": "CORP007",
"guarType": "信用",
"applyAmt": "3000000"
}')
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