- 04_test_business_logic.py: 业务逻辑测试v1(111用例) - 04_test_business_logic_v2.py: 修正API路径后v2(107用例,通过率31.8%) - 测试报告: 揭示大量API路径不匹配和参数问题 - 测试数据: SQL脚本覆盖31个业务模块 - 测试流程: 30个业务流程图+API映射 测试发现的问题: 1. 多个Controller缺少/page端点 2. 部分接口需要必填参数(patientId, startTime等) 3. 部分接口响应格式非标准(rows嵌套为dict) 4. DB列名不匹配(create_by不存在等)
163 lines
5.5 KiB
Bash
Executable File
163 lines
5.5 KiB
Bash
Executable File
#!/bin/bash
|
|
# HealthLink-HIS 全流程API测试脚本
|
|
|
|
BASE_URL="http://localhost:18082/healthlink-his"
|
|
TOKEN=""
|
|
PASS=0
|
|
FAIL=0
|
|
TOTAL=0
|
|
|
|
# 颜色定义
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m'
|
|
|
|
# 登录获取Token
|
|
login() {
|
|
echo -e "${YELLOW}1. 登录认证${NC}"
|
|
TOKEN=$(curl -s -X POST "$BASE_URL/login" \
|
|
-H "Content-Type: application/json" \
|
|
-d '{"username":"admin","password":"admin123","tenantId":"1"}' | \
|
|
python3 -c "import sys,json;print(json.load(sys.stdin).get('token',''))")
|
|
|
|
if [ -n "$TOKEN" ]; then
|
|
echo -e "${GREEN}✅ 登录成功${NC}"
|
|
PASS=$((PASS+1))
|
|
else
|
|
echo -e "${RED}❌ 登录失败${NC}"
|
|
FAIL=$((FAIL+1))
|
|
fi
|
|
TOTAL=$((TOTAL+1))
|
|
}
|
|
|
|
# 测试API
|
|
test_api() {
|
|
local name=$1
|
|
local method=$2
|
|
local path=$3
|
|
local data=$4
|
|
|
|
local response
|
|
if [ "$method" = "GET" ]; then
|
|
response=$(curl -s "$BASE_URL$path" -H "Authorization: Bearer $TOKEN")
|
|
else
|
|
response=$(curl -s -X POST "$BASE_URL$path" \
|
|
-H "Authorization: Bearer $TOKEN" \
|
|
-H "Content-Type: application/json" \
|
|
-d "$data")
|
|
fi
|
|
|
|
local code=$(echo "$response" | python3 -c "import sys,json;print(json.load(sys.stdin).get('code','ERROR'))" 2>/dev/null)
|
|
|
|
TOTAL=$((TOTAL+1))
|
|
if [ "$code" = "200" ]; then
|
|
echo -e "${GREEN}✅ $name${NC}"
|
|
PASS=$((PASS+1))
|
|
else
|
|
echo -e "${RED}❌ $name (Code: $code)${NC}"
|
|
FAIL=$((FAIL+1))
|
|
fi
|
|
}
|
|
|
|
echo "=========================================="
|
|
echo " HealthLink-HIS 全流程API测试"
|
|
echo "=========================================="
|
|
echo ""
|
|
|
|
# 1. 登录认证
|
|
login
|
|
|
|
# 2. 门诊就诊流程
|
|
echo ""
|
|
echo -e "${YELLOW}2. 门诊就诊流程${NC}"
|
|
test_api "门诊挂号" "POST" "/api/v1/outpatient/registration" '{"patientId":1,"doctorId":1,"deptId":1}'
|
|
test_api "门诊处方" "POST" "/api/v1/outpatient/prescription" '{"encounterId":1001,"patientId":1}'
|
|
|
|
# 3. 住院入院流程
|
|
echo ""
|
|
echo -e "${YELLOW}3. 住院入院流程${NC}"
|
|
test_api "入院登记" "POST" "/api/v1/inpatient/admission" '{"patientId":1,"deptId":5,"bedNo":"ICU-01"}'
|
|
test_api "护理评估(Braden)" "POST" "/nursing-assessment-enhanced/braden/assess" '{"patientName":"患者甲","encounterId":1001,"itemScores":"{\"sensation\":2,\"moisture\":2,\"activity\":1,\"mobility\":2,\"nutrition\":3,\"friction\":2}"}'
|
|
test_api "护理评估(Morse)" "POST" "/nursing-assessment-enhanced/morse/assess" '{"patientName":"患者甲","encounterId":1001,"itemScores":"{\"history\":15,\"diagnosis\":0,\"ambulation\":15,\"iv\":20,\"gait\":0,\"mental\":0}"}'
|
|
|
|
# 4. 药房管理流程
|
|
echo ""
|
|
echo -e "${YELLOW}4. 药房管理流程${NC}"
|
|
test_api "库存查询" "GET" "/pharmacystockalert/page?pageNo=1&pageSize=10" ""
|
|
test_api "库存预警" "GET" "/pharmacystockalert/summary" ""
|
|
|
|
# 5. 检验管理流程
|
|
echo ""
|
|
echo -e "${YELLOW}5. 检验管理流程${NC}"
|
|
test_api "检验申请" "GET" "/inspection/page?pageNo=1&pageSize=10" ""
|
|
|
|
# 6. 影像检查流程
|
|
echo ""
|
|
echo -e "${YELLOW}6. 影像检查流程${NC}"
|
|
test_api "影像对比" "GET" "/radiology-comparison/compare?patientId=1" ""
|
|
|
|
# 7. 手术麻醉流程
|
|
echo ""
|
|
echo -e "${YELLOW}7. 手术麻醉流程${NC}"
|
|
test_api "麻醉记录" "GET" "/anesthesia-enhanced/specimen/page?pageNo=1&pageSize=10" ""
|
|
test_api "麻醉质控" "GET" "/anesthesia-enhanced/qc/stats" ""
|
|
|
|
# 8. 院感管理流程
|
|
echo ""
|
|
echo -e "${YELLOW}8. 院感管理流程${NC}"
|
|
test_api "感染监测" "GET" "/infection/surveillance/page?pageNo=1&pageSize=10" ""
|
|
test_api "暴发预警" "GET" "/infection/warning/page?pageNo=1&pageSize=10" ""
|
|
test_api "多重耐药" "GET" "/infection/resistant/page?pageNo=1&pageSize=10" ""
|
|
test_api "职业暴露" "GET" "/infection/exposure/page?pageNo=1&pageSize=10" ""
|
|
test_api "手卫生" "GET" "/infection/hygiene/page?pageNo=1&pageSize=10" ""
|
|
test_api "环境监测" "GET" "/infection/environment/page?pageNo=1&pageSize=10" ""
|
|
|
|
# 9. 质量管理流程
|
|
echo ""
|
|
echo -e "${YELLOW}9. 质量管理流程${NC}"
|
|
test_api "护理质量" "GET" "/nursing-quality/page?pageNo=1&pageSize=10" ""
|
|
test_api "护理质量统计" "GET" "/nursing-quality/summary" ""
|
|
test_api "病历质量" "GET" "/api/v1/emr-quality/defect-statistics" ""
|
|
|
|
# 10. 处方点评流程
|
|
echo ""
|
|
echo -e "${YELLOW}10. 处方点评流程${NC}"
|
|
test_api "点评计划" "GET" "/api/v1/review/plans?pageNum=1&pageSize=10" ""
|
|
test_api "点评统计" "GET" "/api/v1/review/statistics" ""
|
|
|
|
# 11. 临床路径流程
|
|
echo ""
|
|
echo -e "${YELLOW}11. 临床路径流程${NC}"
|
|
test_api "路径管理" "GET" "/clinical-pathway/page?pageNo=1&pageSize=10" ""
|
|
|
|
# 12. 中医管理流程
|
|
echo ""
|
|
echo -e "${YELLOW}12. 中医管理流程${NC}"
|
|
test_api "中医方剂" "GET" "/api/v1/tcm/prescriptions" ""
|
|
test_api "中医统计" "GET" "/api/v1/tcm/statistics" ""
|
|
|
|
# 13. 医嘱闭环流程
|
|
echo ""
|
|
echo -e "${YELLOW}13. 医嘱闭环流程${NC}"
|
|
test_api "医嘱闭环" "GET" "/api/v1/order-closed-loop/list" ""
|
|
test_api "闭环统计" "GET" "/api/v1/order-closed-loop/statistics" ""
|
|
|
|
# 14. ESB管理
|
|
echo ""
|
|
echo -e "${YELLOW}14. ESB管理${NC}"
|
|
test_api "ESB监控" "GET" "/esb-reliability/monitor/stats" ""
|
|
|
|
# 汇总
|
|
echo ""
|
|
echo "=========================================="
|
|
echo " 测试结果汇总"
|
|
echo "=========================================="
|
|
echo -e "总测试数: $TOTAL"
|
|
echo -e "${GREEN}通过: $PASS${NC}"
|
|
echo -e "${RED}失败: $FAIL${NC}"
|
|
echo -e "通过率: $((PASS*100/TOTAL))%"
|
|
echo "=========================================="
|
|
|
|
exit $FAIL
|