#!/bin/bash # 店助工资导入接口测试脚本 # 测试接口:/api/Extend/LqAssistantSalary/import # 使用文件:店助工资_20260113143944.xlsx BASE_URL="http://localhost:2011" LOGIN_URL="${BASE_URL}/api/oauth/Login" IMPORT_URL="${BASE_URL}/api/Extend/LqAssistantSalary/import" EXCEL_FILE="ExportFiles/店助工资_20260113143944.xlsx" echo "=========================================" echo "店助工资导入接口测试" echo "=========================================" echo "" # 1. 检查Excel文件是否存在 if [ ! -f "$EXCEL_FILE" ]; then echo "❌ Excel文件不存在: $EXCEL_FILE" exit 1 fi echo "✓ Excel文件存在: $EXCEL_FILE" FILE_SIZE=$(ls -lh "$EXCEL_FILE" | awk '{print $5}') echo " 文件大小: $FILE_SIZE" echo "" # 2. 登录获取token echo "步骤1: 登录获取token..." LOGIN_RESPONSE=$(curl -s -X POST "${LOGIN_URL}" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "account=admin&password=e10adc3949ba59abbe56e057f20f883e") TOKEN=$(echo $LOGIN_RESPONSE | python3 -c "import sys, json; data = json.load(sys.stdin); print(data.get('data', {}).get('token', ''))" 2>/dev/null) if [ -z "$TOKEN" ]; then echo "❌ 登录失败,无法获取token" echo "响应: $LOGIN_RESPONSE" exit 1 fi echo "✓ 登录成功,token获取成功" echo "" # 3. 测试导入接口 echo "步骤2: 测试导入接口..." echo "接口地址: ${IMPORT_URL}" echo "上传文件: ${EXCEL_FILE}" echo "" IMPORT_RESPONSE=$(curl -s -X POST "${IMPORT_URL}" \ -H "Authorization: ${TOKEN}" \ -F "file=@${EXCEL_FILE}") # 检查响应 echo "响应结果:" echo "$IMPORT_RESPONSE" | python3 -m json.tool 2>/dev/null || echo "$IMPORT_RESPONSE" echo "" # 解析响应结果 RESULT_CODE=$(echo $IMPORT_RESPONSE | python3 -c "import sys, json; data = json.load(sys.stdin); print(data.get('code', ''))" 2>/dev/null) SUCCESS=$(echo $IMPORT_RESPONSE | python3 -c "import sys, json; data = json.load(sys.stdin); print(data.get('data', {}).get('success', False))" 2>/dev/null) SUCCESS_COUNT=$(echo $IMPORT_RESPONSE | python3 -c "import sys, json; data = json.load(sys.stdin); print(data.get('data', {}).get('successCount', 0))" 2>/dev/null) FAIL_COUNT=$(echo $IMPORT_RESPONSE | python3 -c "import sys, json; data = json.load(sys.stdin); print(data.get('data', {}).get('failCount', 0))" 2>/dev/null) SKIPPED_COUNT=$(echo $IMPORT_RESPONSE | python3 -c "import sys, json; data = json.load(sys.stdin); print(data.get('data', {}).get('skippedCount', 0))" 2>/dev/null) MESSAGE=$(echo $IMPORT_RESPONSE | python3 -c "import sys, json; data = json.load(sys.stdin); print(data.get('data', {}).get('message', ''))" 2>/dev/null) if [ "$RESULT_CODE" = "200" ] && [ "$SUCCESS" = "True" ]; then echo "✓ 接口调用成功" echo "" echo "导入结果统计:" echo " 成功: ${SUCCESS_COUNT} 条" echo " 失败: ${FAIL_COUNT} 条" echo " 跳过: ${SKIPPED_COUNT} 条(已锁定或已确认)" if [ ! -z "$MESSAGE" ]; then echo " 消息: $MESSAGE" fi # 如果有错误信息,显示前10个 ERRORS=$(echo $IMPORT_RESPONSE | python3 -c " import sys, json try: data = json.load(sys.stdin) errors = data.get('data', {}).get('errors', []) if errors: print('错误信息(前10条):') for i, err in enumerate(errors[:10], 1): print(f' {i}. {err}') if len(errors) > 10: print(f' ... 还有 {len(errors) - 10} 条错误信息') except: pass " 2>/dev/null) if [ ! -z "$ERRORS" ]; then echo "" echo "$ERRORS" fi else echo "❌ 接口调用失败" echo "状态码: $RESULT_CODE" echo "成功标志: $SUCCESS" ERROR_MSG=$(echo $IMPORT_RESPONSE | python3 -c "import sys, json; data = json.load(sys.stdin); print(data.get('msg', ''))" 2>/dev/null) if [ ! -z "$ERROR_MSG" ]; then echo "错误信息: $ERROR_MSG" fi fi echo "" echo "=========================================" echo "测试完成" echo "========================================="