Blame view

项目文档相关/scripts/sh/test_tech_teacher_statistics.sh 2.69 KB
d8035736   “wangming”   Refactor project ...
1
2
3
4
5
6
7
8
9
10
  #!/bin/bash
  
  # 测试科技老师统计数据接口
  # 测试2025年12月的人头数是否正确返回
  
  echo "=== 测试科技老师统计数据接口 ==="
  echo ""
  
  # 1. 获取Token
  echo "=== 1. 获取Token ==="
8daf47d0   “wangming”   修改访问地址
11
  TOKEN_RESPONSE=$(curl -s -X POST "http://localhost:2015/api/oauth/Login" \
d8035736   “wangming”   Refactor project ...
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
    -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 ""
  
8daf47d0   “wangming”   修改访问地址
31
  RESPONSE=$(curl -s -X GET "http://localhost:2015/api/Extend/lqtechteachersalary/statistics?Year=2025&Month=12" \
d8035736   “wangming”   Refactor project ...
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
    -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