Files

66 lines
3.0 KiB
Bash

#!/bin/bash
# 部署到内网服务器的端到端冒烟:覆盖核心业务链(idempotent)
set -e
BASE=${1:-http://192.168.5.7:18050}
TENANT="default"
USER="alice"
PASS="alice12345"
# 用唯一后缀保证每次跑都新建实体(避免 unique 冲突)
SUFFIX=$(date +%H%M%S)
WH_CODE="WH${SUFFIX}"
P_CODE="P${SUFFIX}"
S_CODE="S${SUFFIX}"
C_CODE="C${SUFFIX}"
echo "===== dealerhub 端到端冒烟测试 ====="
echo "BASE=$BASE SUFFIX=$SUFFIX"
echo ""
echo "[1/8] ping"
curl -fsS $BASE/api/v1/ping/
echo ""
echo ""
echo "[2/8] JWT 登录"
TOKEN=$(curl -s -X POST $BASE/api/v1/auth/token/ \
-H "Content-Type: application/json" \
-d "{\"username\":\"$USER\",\"password\":\"$PASS\"}" | python3 -c "import sys, json; print(json.load(sys.stdin)['access'])")
echo "TOKEN 长度: ${#TOKEN}"
echo ""
echo "[3/8] 仓库 CRUD"
curl -s -X POST $BASE/api/v1/inventory/warehouses/ \
-H "Authorization: Bearer $TOKEN" -H "X-Tenant-Id: $TENANT" \
-H "Content-Type: application/json" \
-d "{\"code\":\"$WH_CODE\",\"name\":\"主仓-$SUFFIX\"}" | python3 -c "import sys,json; print('warehouse id =', json.load(sys.stdin).get('id', '?'))"
echo ""
echo "[4/8] 商品 CRUD"
curl -s -X POST $BASE/api/v1/catalog/products/ \
-H "Authorization: Bearer $TOKEN" -H "X-Tenant-Id: $TENANT" \
-H "Content-Type: application/json" \
-d "{\"code\":\"$P_CODE\",\"name\":\"商品A-$SUFFIX\",\"status\":\"active\"}" | python3 -c "import sys,json; print('product id =', json.load(sys.stdin).get('id', '?'))"
echo ""
echo "[5/8] 客户/供应商CRUD"
curl -s -X POST $BASE/api/v1/partner/suppliers/ \
-H "Authorization: Bearer $TOKEN" -H "X-Tenant-Id: $TENANT" \
-H "Content-Type: application/json" \
-d "{\"code\":\"$S_CODE\",\"name\":\"供应商A-$SUFFIX\"}" | python3 -c "import sys,json; print('supplier id =', json.load(sys.stdin).get('id', '?'))"
curl -s -X POST $BASE/api/v1/partner/customers/ \
-H "Authorization: Bearer $TOKEN" -H "X-Tenant-Id: $TENANT" \
-H "Content-Type: application/json" \
-d "{\"code\":\"$C_CODE\",\"name\":\"客户A-$SUFFIX\"}" | python3 -c "import sys,json; print('customer id =', json.load(sys.stdin).get('id', '?'))"
echo ""
echo "[6/8] 列表查询"
echo "products: $(curl -s -H "Authorization: Bearer $TOKEN" -H "X-Tenant-Id: $TENANT" $BASE/api/v1/catalog/products/ | python3 -c "import sys,json; print(json.load(sys.stdin)['count'])")"
echo "warehouses: $(curl -s -H "Authorization: Bearer $TOKEN" -H "X-Tenant-Id: $TENANT" $BASE/api/v1/inventory/warehouses/ | python3 -c "import sys,json; print(json.load(sys.stdin)['count'])")"
echo "customers: $(curl -s -H "Authorization: Bearer $TOKEN" -H "X-Tenant-Id: $TENANT" $BASE/api/v1/partner/customers/ | python3 -c "import sys,json; print(json.load(sys.stdin)['count'])")"
echo "suppliers: $(curl -s -H "Authorization: Bearer $TOKEN" -H "X-Tenant-Id: $TENANT" $BASE/api/v1/partner/suppliers/ | python3 -c "import sys,json; print(json.load(sys.stdin)['count'])")"
echo ""
echo "===== 全部通过 ====="