客户类型字段更新

This commit is contained in:
wkc
2026-02-02 15:25:38 +08:00
parent 6483a651c4
commit bc7011313f
39 changed files with 5253 additions and 719 deletions

View File

@@ -0,0 +1,224 @@
### ============================================================
### 企业客户利率定价流程接口测试脚本
### 用途:测试企业客户发起接口的各项场景
### ============================================================
### ============================================================
### 1. 获取测试 Token如果未获取
### ============================================================
POST http://localhost:8080/login/test
Content-Type: application/json
{
"username": "admin",
"password": "admin123"
}
> {%
client.test("Request executed successfully", function () {
client.assert(response.status === 200, "Response status is 200");
client.assert(response.body.code === 200, "Response code is 200");
client.global.set("token", response.body.data.token);
});
%}
### ============================================================
### 2. 企业客户发起 - 成功场景(完整必填字段)
### ============================================================
POST http://localhost:8080/loanPricing/workflow/create/corporate
Authorization: Bearer {{token}}
Content-Type: application/json
{
"custIsn": "CORP001",
"custName": "测试科技有限公司",
"idType": "统一社会信用代码",
"idNum": "91110000100000000X",
"guarType": "抵押",
"applyAmt": "1000000",
"loanTerm": "36",
"isAgriGuar": "false",
"isGreenLoan": "true",
"isTechEnt": "true"
}
> {%
client.test("Corporate loan creation successful", function () {
client.assert(response.status === 200, "Response status is 200");
client.assert(response.body.code === 200, "Response code is 200");
client.assert(response.body.data.custType === "企业", "Customer type is 企业");
client.assert(response.body.data.serialNum !== null, "Serial number is generated");
client.assert(response.body.data.loanTerm === "36", "Loan term is correct");
});
%}
### ============================================================
### 3. 企业客户发起 - 缺少必填字段 custIsn
### ============================================================
POST http://localhost:8080/loanPricing/workflow/create/corporate
Authorization: Bearer {{token}}
Content-Type: application/json
{
"custName": "测试企业2",
"idType": "统一社会信用代码",
"idNum": "91110000100000001X",
"guarType": "信用",
"applyAmt": "500000"
}
> {%
client.test("Missing custIsn validation works", function () {
client.assert(response.status === 200, "Response status is 200");
client.assert(response.body.code === 500, "Response code indicates validation error");
});
%}
### ============================================================
### 4. 企业客户发起 - 缺少必填字段 guarType
### ============================================================
POST http://localhost:8080/loanPricing/workflow/create/corporate
Authorization: Bearer {{token}}
Content-Type: application/json
{
"custIsn": "CORP002",
"custName": "测试企业3",
"idType": "统一社会信用代码",
"idNum": "91110000100000002X",
"applyAmt": "800000"
}
> {%
client.test("Missing guarType validation works", function () {
client.assert(response.status === 200, "Response status is 200");
client.assert(response.body.code === 500, "Response code indicates validation error");
});
%}
### ============================================================
### 5. 企业客户发起 - 缺少必填字段 applyAmt
### ============================================================
POST http://localhost:8080/loanPricing/workflow/create/corporate
Authorization: Bearer {{token}}
Content-Type: application/json
{
"custIsn": "CORP003",
"custName": "测试企业4",
"guarType": "保证",
"idType": "统一社会信用代码",
"idNum": "91110000100000003X"
}
> {%
client.test("Missing applyAmt validation works", function () {
client.assert(response.status === 200, "Response status is 200");
client.assert(response.body.code === 500, "Response code indicates validation error");
});
%}
### ============================================================
### 6. 企业客户发起 - 担保方式枚举验证失败
### ============================================================
POST http://localhost:8080/loanPricing/workflow/create/corporate
Authorization: Bearer {{token}}
Content-Type: application/json
{
"custIsn": "CORP004",
"custName": "测试企业5",
"idType": "统一社会信用代码",
"idNum": "91110000100000004X",
"guarType": "无效值",
"applyAmt": "600000"
}
> {%
client.test("Invalid guarType validation works", function () {
client.assert(response.status === 200, "Response status is 200");
client.assert(response.body.code === 500, "Response code indicates validation error");
});
%}
### ============================================================
### 7. 企业客户发起 - 包含省农担担保贷款标识
### ============================================================
POST http://localhost:8080/loanPricing/workflow/create/corporate
Authorization: Bearer {{token}}
Content-Type: application/json
{
"custIsn": "CORP005",
"custName": "农业科技有限公司",
"idType": "统一社会信用代码",
"idNum": "91110000100000005X",
"guarType": "保证",
"applyAmt": "2000000",
"loanTerm": "60",
"isAgriGuar": "true"
}
> {%
client.test("Corporate loan with agricultural guarantee", function () {
client.assert(response.status === 200, "Response status is 200");
client.assert(response.body.code === 200, "Response code is 200");
client.assert(response.body.data.isAgriGuar === "true", "Agricultural guarantee is set");
});
%}
### ============================================================
### 8. 企业客户发起 - 贸易和建筑业企业标识
### ============================================================
POST http://localhost:8080/loanPricing/workflow/create/corporate
Authorization: Bearer {{token}}
Content-Type: application/json
{
"custIsn": "CORP006",
"custName": "建筑工程有限公司",
"idType": "统一社会信用代码",
"idNum": "91110000100000006X",
"guarType": "质押",
"applyAmt": "1500000",
"loanTerm": "24",
"isTradeConstruction": "true"
}
> {%
client.test("Corporate loan for trade/construction", function () {
client.assert(response.status === 200, "Response status is 200");
client.assert(response.body.code === 200, "Response code is 200");
client.assert(response.body.data.isTradeConstruction === "true", "Trade/construction flag is set");
});
%}
### ============================================================
### 9. 企业客户发起 - 所有字段必填(信用贷款场景)
### ============================================================
POST http://localhost:8080/loanPricing/workflow/create/corporate
Authorization: Bearer {{token}}
Content-Type: application/json
{
"custIsn": "CORP007",
"custName": "科技创新有限公司",
"idType": "统一社会信用代码",
"idNum": "91110000100000007X",
"guarType": "信用",
"applyAmt": "3000000",
"loanTerm": "12",
"isAgriGuar": "false",
"isGreenLoan": "true",
"isTechEnt": "true",
"isTradeConstruction": "false",
"collType": "一类",
"collThirdParty": "false"
}
> {%
client.test("Corporate loan with all required fields", function () {
client.assert(response.status === 200, "Response status is 200");
client.assert(response.body.code === 200, "Response code is 200");
});
%}

View File

@@ -0,0 +1,311 @@
#!/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

View File

@@ -0,0 +1,196 @@
### ============================================================
### 个人客户利率定价流程接口测试脚本
### 用途:测试个人客户发起接口的各项场景
### ============================================================
### ============================================================
### 1. 获取测试 Token
### ============================================================
POST http://localhost:8080/login/test
Content-Type: application/json
{
"username": "admin",
"password": "admin123"
}
> {%
client.test("Request executed successfully", function () {
client.assert(response.status === 200, "Response status is 200");
client.assert(response.body.code === 200, "Response code is 200");
client.global.set("token", response.body.data.token);
});
%}
### ============================================================
### 2. 个人客户发起 - 成功场景(完整必填字段)
### ============================================================
POST http://localhost:8080/loanPricing/workflow/create/personal
Authorization: Bearer {{token}}
Content-Type: application/json
{
"custIsn": "TEST001",
"custName": "张三",
"idType": "身份证",
"idNum": "110101199001011234",
"guarType": "信用",
"applyAmt": "500000",
"bizProof": "true",
"loanLoop": "false"
}
> {%
client.test("Personal loan creation successful", function () {
client.assert(response.status === 200, "Response status is 200");
client.assert(response.body.code === 200, "Response code is 200");
client.assert(response.body.data.custType === "个人", "Customer type is 个人");
client.assert(response.body.data.serialNum !== null, "Serial number is generated");
});
%}
### ============================================================
### 3. 个人客户发起 - 缺少必填字段 custIsn
### ============================================================
POST http://localhost:8080/loanPricing/workflow/create/personal
Authorization: Bearer {{token}}
Content-Type: application/json
{
"custName": "张三",
"idType": "身份证",
"idNum": "110101199001011234",
"guarType": "信用",
"applyAmt": "500000"
}
> {%
client.test("Missing custIsn validation works", function () {
client.assert(response.status === 200, "Response status is 200");
client.assert(response.body.code === 500, "Response code indicates validation error");
});
%}
### ============================================================
### 4. 个人客户发起 - 缺少必填字段 guarType
### ============================================================
POST http://localhost:8080/loanPricing/workflow/create/personal
Authorization: Bearer {{token}}
Content-Type: application/json
{
"custIsn": "TEST002",
"custName": "李四",
"idType": "身份证",
"idNum": "110101199001011235",
"applyAmt": "300000"
}
> {%
client.test("Missing guarType validation works", function () {
client.assert(response.status === 200, "Response status is 200");
client.assert(response.body.code === 500, "Response code indicates validation error");
});
%}
### ============================================================
### 5. 个人客户发起 - 缺少必填字段 applyAmt
### ============================================================
POST http://localhost:8080/loanPricing/workflow/create/personal
Authorization: Bearer {{token}}
Content-Type: application/json
{
"custIsn": "TEST003",
"custName": "王五",
"guarType": "保证",
"idType": "身份证",
"idNum": "110101199001011236"
}
> {%
client.test("Missing applyAmt validation works", function () {
client.assert(response.status === 200, "Response status is 200");
client.assert(response.body.code === 500, "Response code indicates validation error");
});
%}
### ============================================================
### 6. 个人客户发起 - 担保方式枚举验证失败
### ============================================================
POST http://localhost:8080/loanPricing/workflow/create/personal
Authorization: Bearer {{token}}
Content-Type: application/json
{
"custIsn": "TEST004",
"custName": "赵六",
"idType": "身份证",
"idNum": "110101199001011237",
"guarType": "无效值",
"applyAmt": "200000"
}
> {%
client.test("Invalid guarType validation works", function () {
client.assert(response.status === 200, "Response status is 200");
client.assert(response.body.code === 500, "Response code indicates validation error");
});
%}
### ============================================================
### 7. 个人客户发起 - 包含抵质押信息
### ============================================================
POST http://localhost:8080/loanPricing/workflow/create/personal
Authorization: Bearer {{token}}
Content-Type: application/json
{
"custIsn": "TEST005",
"custName": "孙七",
"idType": "身份证",
"idNum": "110101199001011238",
"guarType": "抵押",
"applyAmt": "800000",
"bizProof": "true",
"loanLoop": "true",
"collType": "一类",
"collThirdParty": "false"
}
> {%
client.test("Personal loan with collateral info", function () {
client.assert(response.status === 200, "Response status is 200");
client.assert(response.body.code === 200, "Response code is 200");
client.assert(response.body.data.collType === "一类", "Collateral type is correct");
client.assert(response.body.data.loanLoop === "true", "Loan loop is set");
});
%}
### ============================================================
### 8. 个人客户发起 - 所有字段必填(质押贷款场景)
### ============================================================
POST http://localhost:8080/loanPricing/workflow/create/personal
Authorization: Bearer {{token}}
Content-Type: application/json
{
"custIsn": "TEST006",
"custName": "周八",
"idType": "身份证",
"idNum": "110101199001011239",
"guarType": "质押",
"applyAmt": "100000",
"bizProof": "false",
"loanLoop": "false",
"collType": "二类",
"collThirdParty": "true"
}
> {%
client.test("Personal loan with all required fields", function () {
client.assert(response.status === 200, "Response status is 200");
client.assert(response.body.code === 200, "Response code is 200");
client.assert(response.body.data.collThirdParty === "true", "Collateral third party is set");
});
%}

View File

@@ -0,0 +1,281 @@
#!/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