Files
loan-pricing/test-execute-rate-api.sh
2026-01-22 15:04:40 +08:00

142 lines
4.8 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/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 "=========================================="