142 lines
4.8 KiB
Bash
142 lines
4.8 KiB
Bash
#!/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 "=========================================="
|