#!/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 "===== 全部通过 ====="