test_scenarios_deep.md
4.91 KB
Phoneuse 深度测试场景
场景 A:批量 WeChat 数据提取
目标:验证大数据量查询稳定性
1. get_wechat_contacts(query='', limit=100) — 批量联系人
2. get_wechat_messages(contact='', limit=100) — 批量消息
3. query_wechat("SELECT type, count(*) FROM message GROUP BY type") — 消息类型分布
4. query_wechat("SELECT talker, count(*) FROM message GROUP BY talker ORDER BY count(*) DESC LIMIT 10") — 最活跃聊天
场景 B:Memory Graph 全链路
目标:验证 ingest → search → semantic 完整链路
1. ingest_wechat_to_memory(limit=50) — 同步新消息到 Memory Graph
2. search_memory("吃饭") — 关键词搜索(应返回新同步的消息)
3. semantic_search_memory("聚餐") — 语义搜索(应返回相关消息)
4. embed_memory_messages(10) — 向量化新消息
5. get_stats() — 检查 persons/messages/vectors 数量变化
场景 C:跨 App 数据关联
目标:验证系统通讯录 + WeChat 联系人关联
1. get_system_contacts(limit=10) — 系统通讯录
2. get_wechat_contacts(limit=10) — 微信联系人
3. 对比两个列表,找共同手机号/名字
4. 验证 memory_graph 中 person 节点是否关联了多个 source_app
场景 D:MITM 实时流量监控
目标:验证网络层拦截能力
1. 打开 WeChat,发一条消息
2. 检查 event_server 是否有 source='mitm' 的新事件
3. 分析 mitm 事件的 host、path、req_size
4. 打开 Alipay,做一笔查询
5. 检查是否有 Alipay 相关的 mitm 事件
场景 E:UI 自动化精细控制
目标:验证 ui_control_tools 的精确操作
1. screenshot() — 截图当前屏幕
2. get_foreground_app() — 确认当前应用
3. tap(x, y) — 点击特定坐标(如微信搜索框)
4. input_text("测试文本") — 输入文字
5. swipe(x1, y1, x2, y2) — 滑动屏幕
6. screenshot() — 验证操作结果
场景 F:Frida 运行时注入
目标:验证 frida 工具链(需 Mac 端安装 frida pip 包)
1. frida_call(app='com.tencent.mm', script='Java.perform(() => { console.log("WeChat pid: " + Process.id); })')
2. 枚举 WeChat 类和方法
3. hook 特定方法(如消息发送)
场景 G:电话/短信操作
目标:验证 telephony_tools 真实可用性
1. get_device_info() — 设备信息
2. get_battery() — 电池状态
3. get_location() — GPS 位置
4. list_call_log(limit=10) — 通话记录
5. read_sms(limit=5) — 短信读取
场景 H:Connector 知识库自更新
目标:验证 Discovery Agent 自动更新 KB
1. get_connector_kb('wechat') — 查看当前 KB
2. run_discovery_agent('wechat') — 运行发现代理
3. get_connector_kb('wechat') — 确认 KB 已更新(如表结构变化)
4. connector_read_wechat_messages(limit=5) — 用更新后的 KB 读取消息
场景 I:Persona 自动推断
目标:验证用户画像从行为数据自动更新
1. get_persona() — 查看当前画像
2. infer_persona_from_behavior() — 从 event bus 推断
3. get_persona() — 确认画像已更新(如常用 App、活跃时间)
4. get_persona_prompt() — 生成 system prompt 片段
场景 J:云端知识同步
目标:验证 Collective Knowledge Network(需配置 HERMES_CLOUD_KEY)
1. upload_operation_knowledge(app='wechat', intent='send_message', path=[...]) — 上传经验
2. pull_cloud_knowledge('wechat', 'send_message') — 拉取经验
3. retry_cloud_uploads() — 重试失败的上传
场景 K:错误处理与降级
目标:验证系统鲁棒性
1. send_wechat_message(to='不存在的联系人', content='测试') — 应返回 failed,不假成功
2. frida_call(app='com.tencent.mm', script='无效脚本') — 应返回错误,不崩溃
3. query_wechat("SELECT * FROM 不存在的表") — 应返回 SQL 错误
4. get_wechat_messages(contact='不存在的wxid', limit=10) — 应返回空列表
场景 L:并发与性能
目标:验证系统在高负载下的表现
1. 同时发起多个查询:get_wechat_contacts + get_wechat_messages + search_memory
2. 连续发送 5 条消息到不同联系人
3. 检查 event_server 的事件队列是否积压
4. 检查内存和 CPU 使用情况
场景 M:APK 事件源验证
目标:验证 APK 实时事件推送
1. 确认 Accessibility + Notification 权限已开启
2. 切换应用到微信
3. 检查 event_server 是否有 app_foreground 事件(source='apk')
4. 收到一条微信通知
5. 检查 event_server 是否有 notification 事件(source='apk')
6. 对比 dumpsys 轮询和 APK 推送的延迟差异
场景 N:部署工具自举
目标:验证 deploy_phoneuse_code 工具
1. 在 Mac 上修改一个 .py 文件(如加一行日志)
2. 通过 MCP 调用 deploy_phoneuse_code(restart=true)
3. 验证 Pixel 上文件已更新
4. 验证 MCP 已重启并加载新代码
5. 测试新功能是否生效