test_tech_teacher_statistics.sh
2.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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
87
#!/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