#!/usr/bin/env python3
|
"""
|
群组统计功能测试脚本
|
"""
|
|
import sys
|
import os
|
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
|
|
from app.services.group_stats_service import group_stats_service
|
from config import settings
|
|
|
def test_group_stats():
|
"""测试群组统计功能"""
|
print("=== 群组统计功能测试 ===\n")
|
|
# 测试群组ID
|
test_group_id = "test_group_123"
|
test_users = ["user1", "user2", "user3"]
|
|
print(f"1. 测试群组: {test_group_id}")
|
print(f"2. 测试用户: {test_users}")
|
print(f"3. 默认客服名称: {settings.customer_service_default_name}")
|
print()
|
|
# 清空测试数据
|
print("4. 清空测试数据...")
|
group_stats_service.clear_group_stats(test_group_id)
|
print(" 清空完成")
|
print()
|
|
# 测试初始状态
|
print("5. 测试初始状态...")
|
initial_stats = group_stats_service.get_group_message_stats(test_group_id)
|
initial_nickname = group_stats_service.get_most_active_user_nickname(test_group_id)
|
print(f" 初始统计: {initial_stats}")
|
print(f" 初始最活跃用户昵称: {initial_nickname}")
|
print()
|
|
# 模拟用户发言
|
print("6. 模拟用户发言...")
|
# user1 发言 5 次
|
for i in range(5):
|
group_stats_service.increment_user_message_count(test_group_id, test_users[0])
|
print(f" {test_users[0]} 发言第 {i+1} 次")
|
|
# user2 发言 3 次
|
for i in range(3):
|
group_stats_service.increment_user_message_count(test_group_id, test_users[1])
|
print(f" {test_users[1]} 发言第 {i+1} 次")
|
|
# user3 发言 7 次
|
for i in range(7):
|
group_stats_service.increment_user_message_count(test_group_id, test_users[2])
|
print(f" {test_users[2]} 发言第 {i+1} 次")
|
print()
|
|
# 查看统计结果
|
print("7. 查看统计结果...")
|
final_stats = group_stats_service.get_group_message_stats(test_group_id)
|
final_nickname = group_stats_service.get_most_active_user_nickname(test_group_id)
|
print(f" 最终统计: {final_stats}")
|
print(f" 最活跃用户昵称: {final_nickname}")
|
print()
|
|
# 获取统计摘要
|
print("8. 获取统计摘要...")
|
summary = group_stats_service.get_group_stats_summary(test_group_id)
|
print(f" 统计摘要: {summary}")
|
print()
|
|
# 测试相同发言次数的情况
|
print("9. 测试相同发言次数的情况...")
|
test_group_id_2 = "test_group_equal"
|
group_stats_service.clear_group_stats(test_group_id_2)
|
|
# 两个用户都发言 3 次
|
for i in range(3):
|
group_stats_service.increment_user_message_count(test_group_id_2, "equal_user1")
|
group_stats_service.increment_user_message_count(test_group_id_2, "equal_user2")
|
|
equal_stats = group_stats_service.get_group_message_stats(test_group_id_2)
|
equal_nickname = group_stats_service.get_most_active_user_nickname(test_group_id_2)
|
print(f" 相同发言次数统计: {equal_stats}")
|
print(f" 相同发言次数最活跃用户昵称: {equal_nickname}")
|
print()
|
|
# 测试无发言的情况
|
print("10. 测试无发言的情况...")
|
test_group_id_3 = "test_group_empty"
|
group_stats_service.clear_group_stats(test_group_id_3)
|
|
empty_stats = group_stats_service.get_group_message_stats(test_group_id_3)
|
empty_nickname = group_stats_service.get_most_active_user_nickname(test_group_id_3)
|
print(f" 无发言统计: {empty_stats}")
|
print(f" 无发言最活跃用户昵称: {empty_nickname}")
|
print()
|
|
print("=== 测试完成 ===")
|
|
|
def test_config():
|
"""测试配置功能"""
|
print("=== 配置测试 ===\n")
|
|
print(f"客服名称列表: {settings.customer_service_names}")
|
print(f"默认客服名称: {settings.customer_service_default_name}")
|
print()
|
|
|
if __name__ == "__main__":
|
try:
|
test_config()
|
test_group_stats()
|
except Exception as e:
|
print(f"测试失败: {str(e)}")
|
import traceback
|
traceback.print_exc()
|