🧪 专家市场增强功能测试指南
测试日期: 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缓存
测试指南完成!开始测试专家市场增强功能! 🧪✅