66 lines
3.0 KiB
Bash
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 "===== 全部通过 ====="
|