微信营销管理系统 - 益童宝销售管理平台
- 数据库: PostgreSQL schema + 3名销售/21客户/341消息/6成交 - 采集代理: mock_sync.py 模拟微信聊天同步 - AI分析: analyze.py 规则模式 + 千问LLM模式 - 后端: FastAPI 11个API接口 - 前端: 仪表盘/销售列表/客户列表/成交记录/交流分析/录入成交 - 交流分析: 全部客户对话概览 + LLM标准范式对话生成 - 部署: systemd + nginx, 已部署至 sale.all8ai.top
This commit is contained in:
Executable
+82
@@ -0,0 +1,82 @@
|
||||
#!/bin/bash
|
||||
set -eu
|
||||
|
||||
# ============================================
|
||||
# 端到端测试
|
||||
# ============================================
|
||||
|
||||
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
||||
API="http://127.0.0.1:8770/api"
|
||||
PASS=0
|
||||
FAIL=0
|
||||
|
||||
check() {
|
||||
local name="$1"
|
||||
local condition="$2"
|
||||
if eval "$condition"; then
|
||||
echo " ✓ $name"
|
||||
PASS=$((PASS + 1))
|
||||
else
|
||||
echo " ✗ $name"
|
||||
FAIL=$((FAIL + 1))
|
||||
fi
|
||||
}
|
||||
|
||||
echo "=== 端到端测试 ==="
|
||||
echo ""
|
||||
|
||||
# 测试1: 仪表盘
|
||||
echo "[仪表盘]"
|
||||
DASHBOARD=$(curl -s "$API/dashboard")
|
||||
check "仪表盘返回200" '[ -n "$DASHBOARD" ]'
|
||||
check "总消息数 > 0" 'echo "$DASHBOARD" | python3 -c "import sys,json; d=json.load(sys.stdin); exit(0 if d[\"total_messages\"]>0 else 1)"'
|
||||
check "销售人数 = 3" 'echo "$DASHBOARD" | python3 -c "import sys,json; d=json.load(sys.stdin); exit(0 if len(d[\"salespersons\"])==3 else 1)"'
|
||||
|
||||
# 测试2: 销售列表
|
||||
echo "[销售列表]"
|
||||
SP=$(curl -s "$API/salespersons")
|
||||
check "销售列表返回3条" 'echo "$SP" | python3 -c "import sys,json; d=json.load(sys.stdin); exit(0 if len(d)==3 else 1)"'
|
||||
|
||||
# 测试3: 客户列表
|
||||
echo "[客户列表]"
|
||||
CUSTOMERS=$(curl -s "$API/customers")
|
||||
check "客户列表非空" 'echo "$CUSTOMERS" | python3 -c "import sys,json; d=json.load(sys.stdin); exit(0 if len(d)>0 else 1)"'
|
||||
|
||||
HIGH=$(curl -s "$API/customers?intent_level=high")
|
||||
check "高意向筛选有效" 'echo "$HIGH" | python3 -c "import sys,json; d=json.load(sys.stdin); exit(0 if all(c[\"intent_level\"]==\"high\" for c in d) else 1)"'
|
||||
|
||||
# 测试4: 客户详情
|
||||
echo "[客户详情]"
|
||||
FIRST_CUST_ID=$(echo "$CUSTOMERS" | python3 -c "import sys,json; d=json.load(sys.stdin); print(d[0][\"id\"])")
|
||||
DETAIL=$(curl -s "$API/customers/$FIRST_CUST_ID")
|
||||
check "客户详情有摘要" 'echo "$DETAIL" | python3 -c "import sys,json; d=json.load(sys.stdin); exit(0 if d.get(\"summary\") else 1)"'
|
||||
check "客户详情有阶段" 'echo "$DETAIL" | python3 -c "import sys,json; d=json.load(sys.stdin); exit(0 if d.get(\"stage\") else 1)"'
|
||||
|
||||
# 测试5: 聊天记录
|
||||
echo "[聊天记录]"
|
||||
MSGS=$(curl -s "$API/customers/$FIRST_CUST_ID/messages?page=1&page_size=10")
|
||||
check "聊天记录非空" 'echo "$MSGS" | python3 -c "import sys,json; d=json.load(sys.stdin); exit(0 if len(d[\"messages\"])>0 else 1)"'
|
||||
check "聊天记录总数 > 0" 'echo "$MSGS" | python3 -c "import sys,json; d=json.load(sys.stdin); exit(0 if d[\"total\"]>0 else 1)"'
|
||||
|
||||
# 测试6: 成交录入
|
||||
echo "[成交录入]"
|
||||
DEAL_RES=$(curl -s -X POST "$API/deals" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d "{\"salesperson_id\":1,\"customer_id\":$FIRST_CUST_ID,\"product_name\":\"测试产品\",\"amount\":99,\"deal_date\":\"2026-07-14\"}")
|
||||
check "成交录入成功" 'echo "$DEAL_RES" | python3 -c "import sys,json; d=json.load(sys.stdin); exit(0 if d.get(\"id\") else 1)"'
|
||||
|
||||
# 测试7: 成交列表
|
||||
echo "[成交列表]"
|
||||
DEALS=$(curl -s "$API/deals")
|
||||
check "成交列表非空" 'echo "$DEALS" | python3 -c "import sys,json; d=json.load(sys.stdin); exit(0 if len(d)>0 else 1)"'
|
||||
|
||||
# 测试8: 同步状态
|
||||
echo "[同步状态]"
|
||||
SYNC=$(curl -s "$API/sync/status")
|
||||
check "同步状态返回3条" 'echo "$SYNC" | python3 -c "import sys,json; d=json.load(sys.stdin); exit(0 if len(d)==3 else 1)"'
|
||||
|
||||
echo ""
|
||||
echo "=========================================="
|
||||
echo " 通过: $PASS 失败: $FAIL"
|
||||
echo "=========================================="
|
||||
[ "$FAIL" -eq 0 ] && exit 0 || exit 1
|
||||
Reference in New Issue
Block a user