#!/bin/bash # 测试科技老师统计数据接口 # 测试2025年12月的人头数是否正确返回 echo "=== 测试科技老师统计数据接口 ===" echo "" # 1. 获取Token echo "=== 1. 获取Token ===" TOKEN_RESPONSE=$(curl -s -X POST "http://localhost:2011/api/oauth/Login" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "account=admin&password=e10adc3949ba59abbe56e057f20f883e") TOKEN=$(echo "$TOKEN_RESPONSE" | python3 -c "import sys, json; data=json.load(sys.stdin); print(data['data']['token'])" 2>/dev/null) if [ -z "$TOKEN" ]; then echo "❌ Token获取失败" echo "$TOKEN_RESPONSE" exit 1 fi echo "✅ Token获取成功" echo "" # 2. 测试接口 - 2025年12月 echo "=== 2. 测试接口 - 2025年12月 ===" echo "请求参数: Year=2025, Month=12" echo "" RESPONSE=$(curl -s -X GET "http://localhost:2011/api/Extend/lqtechteachersalary/statistics?Year=2025&Month=12" \ -H "Authorization: $TOKEN") echo "响应结果:" echo "$RESPONSE" | python3 -m json.tool 2>/dev/null | head -100 echo "" echo "=== 3. 检查人头数数据 ===" # 检查返回结果 PERSON_COUNT_DATA=$(echo "$RESPONSE" | python3 << 'PYTHON_SCRIPT' import sys, json try: data = json.load(sys.stdin) if data.get('code') == 200: result = data.get('data', []) if isinstance(result, list) and len(result) > 0: # 统计有头数的记录 has_person_count = [item for item in result if item.get('PersonCount', 0) > 0] print(f'总记录数: {len(result)}') print(f'有人头数的记录数: {len(has_person_count)}') if len(has_person_count) > 0: print('\n前10条有人头数的记录:') for item in has_person_count[:10]: print(f" - {item.get('EmployeeName', 'N/A')} (ID: {item.get('EmployeeId', 'N/A')}): {item.get('PersonCount', 0)}人") # 计算总人头数 total = sum(item.get('PersonCount', 0) for item in result) print(f'\n总人头数: {total}') sys.exit(0) else: print('❌ 没有人头数数据') sys.exit(1) else: print('❌ 返回数据为空或格式不正确') sys.exit(1) else: print(f'❌ 接口返回错误: {data.get("msg", "未知错误")}') sys.exit(1) except Exception as e: print(f'❌ 解析响应失败: {e}') import traceback traceback.print_exc() sys.exit(1) PYTHON_SCRIPT ) if [ $? -eq 0 ]; then echo "$PERSON_COUNT_DATA" echo "" echo "✅ 接口测试通过,2025年12月的人头数数据已正确返回" else echo "$PERSON_COUNT_DATA" echo "" echo "❌ 接口测试失败" exit 1 fi