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. 测试新功能是否生效