Files
loan-pricing/test-execute-rate-api.sh

142 lines
4.8 KiB
Bash
Raw Permalink Normal View History

2026-01-22 15:04:40 +08:00
#!/bin/bash
# 利率定价流程执行利率接口测试脚本
# 测试环境: http://localhost:8080
BASE_URL="http://localhost:8080"
LOGIN_URL="${BASE_URL}/login"
WORKFLOW_URL="${BASE_URL}/loanPricing/workflow"
# 测试账号
USERNAME="admin"
PASSWORD="admin123"
# 测试流水号(从数据库获取)
SERIAL_NUM="20260121170730386"
# 颜色输出
GREEN='\033[0;32m'
RED='\033[0;31m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
echo "=========================================="
echo "利率定价流程执行利率接口测试"
echo "=========================================="
echo ""
# 步骤1: 登录获取 Token (使用测试接口,无需验证码)
echo -e "${YELLOW}步骤1: 登录获取 Token (使用测试接口)${NC}"
LOGIN_RESPONSE=$(curl -s -X POST "${BASE_URL}/login/test" \
-H "Content-Type: application/json" \
-d "{\"username\":\"${USERNAME}\",\"password\":\"${PASSWORD}\"}")
TOKEN=$(echo $LOGIN_RESPONSE | grep -o '"token":"[^"]*"' | cut -d'"' -f4)
if [ -z "$TOKEN" ]; then
echo -e "${RED}登录失败,无法获取 Token${NC}"
echo "响应: $LOGIN_RESPONSE"
exit 1
fi
echo -e "${GREEN}登录成功Token: ${TOKEN:0:20}...${NC}"
echo ""
# 步骤2: 查询当前流程详情
echo -e "${YELLOW}步骤2: 查询流程详情 (GET ${WORKFLOW_URL}/${SERIAL_NUM})${NC}"
DETAILS_RESPONSE=$(curl -s -X GET "${WORKFLOW_URL}/${SERIAL_NUM}" \
-H "Authorization: Bearer ${TOKEN}")
echo "$DETAILS_RESPONSE" | python -m json.tool 2>/dev/null || echo "$DETAILS_RESPONSE"
echo ""
# 步骤3: 设定执行利率
echo -e "${YELLOW}步骤3: 设定执行利率 (PUT ${WORKFLOW_URL}/${SERIAL_NUM}/executeRate)${NC}"
SET_RATE_RESPONSE=$(curl -s -X PUT "${WORKFLOW_URL}/${SERIAL_NUM}/executeRate" \
-H "Authorization: Bearer ${TOKEN}" \
-H "Content-Type: application/json" \
-d '{"executeRate":"4.20"}')
echo "$SET_RATE_RESPONSE" | python -m json.tool 2>/dev/null || echo "$SET_RATE_RESPONSE"
# 检查响应
CODE=$(echo $SET_RATE_RESPONSE | grep -o '"code":[0-9]*' | cut -d':' -f2)
if [ "$CODE" = "200" ]; then
echo -e "${GREEN}✓ 设定执行利率成功${NC}"
else
echo -e "${RED}✗ 设定执行利率失败${NC}"
fi
echo ""
# 步骤4: 再次查询详情验证 executeRate 字段
echo -e "${YELLOW}步骤4: 再次查询详情验证 executeRate 字段${NC}"
DETAILS_RESPONSE2=$(curl -s -X GET "${WORKFLOW_URL}/${SERIAL_NUM}" \
-H "Authorization: Bearer ${TOKEN}")
echo "$DETAILS_RESPONSE2" | python -m json.tool 2>/dev/null || echo "$DETAILS_RESPONSE2"
# 检查 executeRate 字段
EXECUTE_RATE=$(echo $DETAILS_RESPONSE2 | grep -o '"executeRate":"[^"]*"' | cut -d'"' -f4)
if [ "$EXECUTE_RATE" = "4.20" ]; then
echo -e "${GREEN}✓ executeRate 字段正确返回: ${EXECUTE_RATE}${NC}"
else
echo -e "${RED}✗ executeRate 字段值不正确${NC}"
fi
echo ""
# 步骤5: 更新执行利率(验证可修改)
echo -e "${YELLOW}步骤5: 更新执行利率为 3.85${NC}"
UPDATE_RATE_RESPONSE=$(curl -s -X PUT "${WORKFLOW_URL}/${SERIAL_NUM}/executeRate" \
-H "Authorization: Bearer ${TOKEN}" \
-H "Content-Type: application/json" \
-d '{"executeRate":"3.85"}')
echo "$UPDATE_RATE_RESPONSE" | python -m json.tool 2>/dev/null || echo "$UPDATE_RATE_RESPONSE"
CODE=$(echo $UPDATE_RATE_RESPONSE | grep -o '"code":[0-9]*' | cut -d':' -f2)
if [ "$CODE" = "200" ]; then
echo -e "${GREEN}✓ 更新执行利率成功${NC}"
else
echo -e "${RED}✗ 更新执行利率失败${NC}"
fi
echo ""
# 步骤6: 测试不存在的流水号
echo -e "${YELLOW}步骤6: 测试不存在的流水号 (404场景)${NC}"
NOT_FOUND_RESPONSE=$(curl -s -X PUT "${WORKFLOW_URL}/99999999999999999/executeRate" \
-H "Authorization: Bearer ${TOKEN}" \
-H "Content-Type: application/json" \
-d '{"executeRate":"4.20"}')
echo "$NOT_FOUND_RESPONSE" | python -m json.tool 2>/dev/null || echo "$NOT_FOUND_RESPONSE"
CODE=$(echo $NOT_FOUND_RESPONSE | grep -o '"code":[0-9]*' | cut -d':' -f2)
MSG=$(echo $NOT_FOUND_RESPONSE | grep -o '"msg":"[^"]*"' | cut -d'"' -f4)
if [ "$CODE" != "200" ]; then
echo -e "${GREEN}✓ 不存在的流水号正确返回错误: ${MSG}${NC}"
else
echo -e "${RED}✗ 应该返回错误但返回了成功${NC}"
fi
echo ""
# 步骤7: 测试空值
echo -e "${YELLOW}步骤7: 测试设定空值${NC}"
NULL_RATE_RESPONSE=$(curl -s -X PUT "${WORKFLOW_URL}/${SERIAL_NUM}/executeRate" \
-H "Authorization: Bearer ${TOKEN}" \
-H "Content-Type: application/json" \
-d '{"executeRate":null}')
echo "$NULL_RATE_RESPONSE" | python -m json.tool 2>/dev/null || echo "$NULL_RATE_RESPONSE"
CODE=$(echo $NULL_RATE_RESPONSE | grep -o '"code":[0-9]*' | cut -d':' -f2)
if [ "$CODE" = "200" ]; then
echo -e "${GREEN}✓ 空值设定成功${NC}"
else
echo -e "${YELLOW}空值设定响应: ${MSG}${NC}"
fi
echo ""
echo "=========================================="
echo "测试完成"
echo "=========================================="