🧪 专家市场增强功能测试指南

测试日期: 2026-02-02
测试范围: 搜索、详情、分析、版本管理


🚀 快速测试

启动API服务

cd d:\Mises\mises-behavior-engine
python scripts/run_simple_api.py

访问API文档: http://localhost:8000/docs


1️⃣ 专家搜索测试

测试1.1: 基础搜索

curl -X POST http://localhost:8000/api/market/search \
  -H "Content-Type: application/json" \
  -d '{
    "query": "健康",
    "page": 1,
    "page_size": 10
  }'

预期结果:

  • ✅ 返回包含"健康"相关的专家
  • ✅ 结果按相关度排序
  • ✅ 包含高亮信息

测试1.2: 多维度筛选

curl -X POST http://localhost:8000/api/market/search \
  -H "Content-Type: application/json" \
  -d '{
    "query": "营养",
    "category": "健康医疗",
    "min_rating": 4.5,
    "max_price": 0.5,
    "tags": ["减肥", "健康"],
    "sort_by": "rating"
  }'

预期结果:

  • ✅ 只返回健康医疗分类
  • ✅ 评分 >= 4.5
  • ✅ 价格 <= 0.5
  • ✅ 包含指定标签
  • ✅ 按评分排序

测试1.3: 获取筛选选项

curl http://localhost:8000/api/market/filters

预期结果:

  • ✅ 返回所有分类列表
  • ✅ 返回热门标签(Top20)
  • ✅ 返回价格范围
  • ✅ 返回评分等级

测试1.4: 获取热门搜索

curl http://localhost:8000/api/market/trending?limit=10

预期结果:

  • ✅ 返回10个热门搜索词
  • ✅ 按热度排序

2️⃣ 专家详情测试

测试2.1: 获取专家详情

curl http://localhost:8000/api/market/expert/exp_001

预期结果:

{
  "expert_id": "exp_001",
  "name": "诊断学专家",
  "rating": 4.8,
  "rating_count": 245,
  "rating_distribution": {
    "5": 147,
    "4": 61,
    "3": 24,
    "2": 7,
    "1": 4
  },
  "total_calls": 5820,
  "price": 0.5,
  "capabilities": [...],
  "example_queries": [...],
  "trial_available": true,
  "trial_count_left": 3
}

测试2.2: 获取专家评价

# 最新评价
curl "http://localhost:8000/api/market/expert/exp_001/reviews?sort_by=recent&page=1&page_size=10"

# 最有用评价
curl "http://localhost:8000/api/market/expert/exp_001/reviews?sort_by=helpful"

# 评分最高
curl "http://localhost:8000/api/market/expert/exp_001/reviews?sort_by=rating"

预期结果:

  • ✅ 返回评价列表
  • ✅ 按指定方式排序
  • ✅ 支持分页
  • ✅ 包含评价详情(评分、内容、有用数)

测试2.3: 免费试用

curl -X POST http://localhost:8000/api/market/expert/exp_001/trial \
  -H "Content-Type: application/json" \
  -d '{
    "expert_id": "exp_001",
    "query": "最近总是头晕怎么办?"
  }'

预期结果:

{
  "success": true,
  "response": "感谢试用诊断学专家!...",
  "trial_count_left": 2,
  "message": "试用成功!还可以试用2次"
}

3️⃣ 数据分析测试

测试3.1: 获取专家分析

# 30天数据
curl "http://localhost:8000/api/market/expert/exp_001/analytics?days=30"

# 90天数据
curl "http://localhost:8000/api/market/expert/exp_001/analytics?days=90"

预期结果:

{
  "expert_id": "exp_001",
  "calls_trend": [
    {"date": "2026-01-03", "calls": 45},
    {"date": "2026-01-04", "calls": 48},
    ...
  ],
  "revenue_trend": [...],
  "user_distribution": {
    "中国": 650,
    "美国": 120,
    ...
  },
  "new_users_count": 234,
  "returning_users_count": 611,
  "top_queries": [
    {"query": "如何使用这个专家?", "count": 156},
    ...
  ],
  "avg_response_time": 250.5,
  "p95_response_time": 450.2,
  "error_rate": 0.012
}

验证点:

  • ✅ 趋势数据包含指定天数
  • ✅ 日期格式正确
  • ✅ 数据类型正确
  • ✅ 统计数据合理

4️⃣ 版本管理测试

测试4.1: 获取版本列表

curl http://localhost:8000/api/market/expert/exp_001/versions

预期结果:

[
  {
    "version_id": "v_exp_001_1",
    "version_number": "1.0.0",
    "expert_id": "exp_001",
    "description": "初始版本",
    "is_active": true,
    "ab_test_enabled": false
  }
]

测试4.2: 创建新版本

curl -X POST http://localhost:8000/api/market/expert/exp_001/versions \
  -H "Content-Type: application/json" \
  -d '{
    "description": "优化响应准确性",
    "config_changes": {
      "model": "gpt-4",
      "temperature": 0.7
    }
  }'

预期结果:

{
  "version_id": "v_exp_001_2",
  "version_number": "1.1.0",
  "description": "优化响应准确性",
  "is_active": false
}

测试4.3: 激活版本

curl -X POST http://localhost:8000/api/market/expert/exp_001/versions/v_exp_001_2/activate

预期结果:

{
  "success": true,
  "message": "版本 1.1.0 已激活"
}

测试4.4: 回滚版本

curl -X POST http://localhost:8000/api/market/expert/exp_001/rollback/v_exp_001_1

预期结果:

{
  "success": true,
  "message": "版本 1.0.0 已激活"
}

测试4.5: 配置A/B测试

curl -X POST http://localhost:8000/api/market/expert/exp_001/ab-test \
  -H "Content-Type: application/json" \
  -d '{
    "version_id": "v_exp_001_2",
    "traffic_percentage": 20
  }'

预期结果:

{
  "success": true,
  "message": "A/B测试已配置,版本 1.1.0 将获得 20% 流量"
}

📊 性能测试

测试5.1: 搜索性能

# 使用 ab (Apache Bench) 进行压测
ab -n 1000 -c 10 \
  -p search.json \
  -T application/json \
  http://localhost:8000/api/market/search

search.json:

{
  "query": "健康",
  "page": 1,
  "page_size": 20
}

性能目标:

  • ✅ QPS > 100
  • ✅ P95响应时间 < 200ms
  • ✅ 错误率 < 0.1%

测试5.2: 详情页性能

ab -n 1000 -c 10 http://localhost:8000/api/market/expert/exp_001

性能目标:

  • ✅ QPS > 200
  • ✅ P95响应时间 < 100ms

🧩 集成测试

测试6: 完整用户流程

import requests

base_url = "http://localhost:8000/api/market"

# 1. 搜索专家
search_result = requests.post(f"{base_url}/search", json={
    "query": "健康咨询",
    "min_rating": 4.0
})
experts = search_result.json()["results"]
expert_id = experts[0]["expert_id"]

# 2. 查看详情
detail = requests.get(f"{base_url}/expert/{expert_id}").json()
print(f"专家: {detail['name']}, 评分: {detail['rating']}")

# 3. 试用专家
trial_result = requests.post(f"{base_url}/expert/{expert_id}/trial", json={
    "expert_id": expert_id,
    "query": "我该如何保持健康?"
})
print(f"试用结果: {trial_result.json()}")

# 4. 查看分析数据
analytics = requests.get(f"{base_url}/expert/{expert_id}/analytics?days=7").json()
print(f"7天调用量: {len(analytics['calls_trend'])}条数据")

# 5. 版本管理
versions = requests.get(f"{base_url}/expert/{expert_id}/versions").json()
print(f"当前版本数: {len(versions)}")

print("✅ 完整流程测试通过!")

✅ 测试检查清单

功能测试

搜索功能:
  ☐ 基础搜索
  ☐ 筛选搜索
  ☐ 排序功能
  ☐ 分页功能
  ☐ 筛选选项获取
  ☐ 热门搜索

详情功能:
  ☐ 专家详情展示
  ☐ 评价列表
  ☐ 评价排序
  ☐ 免费试用
  ☐ 试用次数限制

分析功能:
  ☐ 趋势数据
  ☐ 用户分布
  ☐ 性能指标
  ☐ 热门问题
  ☐ 收入统计

版本管理:
  ☐ 版本列表
  ☐ 创建版本
  ☐ 激活版本
  ☐ 回滚版本
  ☐ A/B测试

性能测试

☐ 搜索API性能
☐ 详情API性能
☐ 分析API性能
☐ 并发测试
☐ 压力测试

安全测试

☐ 输入验证
☐ SQL注入防护
☐ XSS防护
☐ 权限控制
☐ 速率限制

🐛 常见问题

Q1: 搜索结果为空?

A: 检查模拟数据是否加载,确认搜索条件是否过于严格。

Q2: 试用次数不正确?

A: 当前为模拟实现,实际需要集成用户认证和数据库。

Q3: 分析数据不准确?

A: 当前为模拟数据,实际需要集成真实的统计系统。

Q4: 版本激活后没有生效?

A: 检查is_active字段是否正确更新。


📝 测试报告模板

## 测试报告

**测试日期**: YYYY-MM-DD
**测试人员**: XXX
**测试环境**: 开发环境

### 测试结果

| 功能模块 | 测试项 | 状态 | 备注 |
|---------|--------|------|------|
| 搜索功能 | 基础搜索 | ✅ | 响应时间50ms |
| 搜索功能 | 筛选搜索 | ✅ | - |
| 详情功能 | 专家详情 | ✅ | - |
| 详情功能 | 免费试用 | ⚠️ | 需要用户认证 |
| 分析功能 | 数据趋势 | ✅ | - |
| 版本管理 | 创建版本 | ✅ | - |

### 发现问题

1. 【中】试用功能需要集成用户认证
2. 【低】分析数据为模拟数据,需要接入真实统计

### 建议

1. 优先集成用户认证系统
2. 接入Elasticsearch提升搜索性能
3. 添加Redis缓存

测试指南完成!开始测试专家市场增强功能! 🧪✅