Blame view

项目文档相关/scripts/sh/test_item_statistics.sh 4.21 KB
d8035736   “wangming”   Refactor project ...
1
2
3
4
5
6
7
  #!/bin/bash
  
  # 测试品项维度统计接口
  
  echo "=== 测试品项维度统计接口 ==="
  
  # 获取Token
8daf47d0   “wangming”   修改访问地址
8
  TOKEN=$(curl -s -X POST "http://localhost:2015/api/oauth/Login" \
d8035736   “wangming”   Refactor project ...
9
10
11
12
13
14
15
16
17
18
19
20
21
    -H "Content-Type: application/x-www-form-urlencoded" \
    -d "account=admin&password=e10adc3949ba59abbe56e057f20f883e" | python3 -c "import sys, json; print(json.load(sys.stdin)['data']['token'])" 2>/dev/null)
  
  if [ -z "$TOKEN" ]; then
    echo "❌ 获取Token失败"
    exit 1
  fi
  
  echo "✅ Token获取成功"
  echo ""
  
  # 测试1: 基础查询(2025年12月)
  echo "--- 测试1: 基础查询(2025年12月,前5条) ---"
8daf47d0   “wangming”   修改访问地址
22
  RESPONSE1=$(curl -s -w "\nTIME:%{time_total}" -X POST "http://localhost:2015/api/Extend/lqxmzl/GetItemStatistics" \
d8035736   “wangming”   Refactor project ...
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
    -H "Authorization: $TOKEN" \
    -H "Content-Type: application/json" \
    -d '{
      "startTime": "2025-12-01T00:00:00",
      "endTime": "2025-12-31T23:59:59"
    }')
  TIME1=$(echo "$RESPONSE1" | grep "TIME:" | cut -d: -f2)
  RESPONSE_BODY1=$(echo "$RESPONSE1" | sed '/TIME:/d')
  COUNT1=$(echo "$RESPONSE_BODY1" | python3 -c "import sys, json; data=json.load(sys.stdin); print(len(data.get('data', [])))" 2>/dev/null)
  echo "响应时间: ${TIME1}秒"
  echo "返回记录数: $COUNT1"
  echo "前3条记录:"
  echo "$RESPONSE_BODY1" | python3 -c "
  import sys, json
  data = json.load(sys.stdin)
  items = data.get('data', [])[:3]
  for i, item in enumerate(items, 1):
      print(f'{i}. {item.get(\"itemName\", \"无\")} - 分类: {item.get(\"itemCategory\", \"无\")}, 开卡业绩: {item.get(\"billingAmount\", 0):,.2f}, 储扣金额: {item.get(\"deductAmount\", 0):,.2f}, 储扣次数: {item.get(\"deductCount\", 0)}')
  " 2>/dev/null
  echo ""
  
  # 测试2: 按分类筛选(科美)
  echo "--- 测试2: 按分类筛选(科美) ---"
8daf47d0   “wangming”   修改访问地址
46
  RESPONSE2=$(curl -s -w "\nTIME:%{time_total}" -X POST "http://localhost:2015/api/Extend/lqxmzl/GetItemStatistics" \
d8035736   “wangming”   Refactor project ...
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
    -H "Authorization: $TOKEN" \
    -H "Content-Type: application/json" \
    -d '{
      "startTime": "2025-12-01T00:00:00",
      "endTime": "2025-12-31T23:59:59",
      "itemCategory": "科美"
    }')
  TIME2=$(echo "$RESPONSE2" | grep "TIME:" | cut -d: -f2)
  RESPONSE_BODY2=$(echo "$RESPONSE2" | sed '/TIME:/d')
  COUNT2=$(echo "$RESPONSE_BODY2" | python3 -c "import sys, json; data=json.load(sys.stdin); print(len(data.get('data', [])))" 2>/dev/null)
  echo "响应时间: ${TIME2}秒"
  echo "返回记录数: $COUNT2"
  echo "前3条记录:"
  echo "$RESPONSE_BODY2" | python3 -c "
  import sys, json
  data = json.load(sys.stdin)
  items = data.get('data', [])[:3]
  for i, item in enumerate(items, 1):
      print(f'{i}. {item.get(\"itemName\", \"无\")} - 分类: {item.get(\"itemCategory\", \"无\")}, 储扣金额: {item.get(\"deductAmount\", 0):,.2f}, 储扣次数: {item.get(\"deductCount\", 0)}')
  " 2>/dev/null
  echo ""
  
  # 测试3: 按分类筛选(医美)
  echo "--- 测试3: 按分类筛选(医美) ---"
8daf47d0   “wangming”   修改访问地址
71
  RESPONSE3=$(curl -s -w "\nTIME:%{time_total}" -X POST "http://localhost:2015/api/Extend/lqxmzl/GetItemStatistics" \
d8035736   “wangming”   Refactor project ...
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
    -H "Authorization: $TOKEN" \
    -H "Content-Type: application/json" \
    -d '{
      "startTime": "2025-12-01T00:00:00",
      "endTime": "2025-12-31T23:59:59",
      "itemCategory": "医美"
    }')
  TIME3=$(echo "$RESPONSE3" | grep "TIME:" | cut -d: -f2)
  RESPONSE_BODY3=$(echo "$RESPONSE3" | sed '/TIME:/d')
  COUNT3=$(echo "$RESPONSE_BODY3" | python3 -c "import sys, json; data=json.load(sys.stdin); print(len(data.get('data', [])))" 2>/dev/null)
  echo "响应时间: ${TIME3}秒"
  echo "返回记录数: $COUNT3"
  echo ""
  
  # 测试4: 验证数据完整性
  echo "--- 测试4: 验证数据完整性 ---"
  echo "$RESPONSE_BODY1" | python3 -c "
  import sys, json
  data = json.load(sys.stdin)
  items = data.get('data', [])[:5]
  print('数据完整性检查:')
  for item in items:
      has_category = 'itemCategory' in item and item['itemCategory'] is not None
      has_deduct_amount = 'deductAmount' in item
      has_deduct_count = 'deductCount' in item
      status = '✅' if (has_category and has_deduct_amount and has_deduct_count) else '❌'
      print(f'{status} {item.get(\"itemName\", \"无\")}: 分类={has_category}, 储扣金额={has_deduct_amount}, 储扣次数={has_deduct_count}')
  " 2>/dev/null
  
  echo ""
  echo "=== 测试完成 ==="
  echo "性能总结:"
  echo "- 基础查询: ${TIME1}秒"
  echo "- 科美筛选: ${TIME2}秒"
  echo "- 医美筛选: ${TIME3}秒"