refactor(docs): 开发文档顶层仅保留 1~10 编号目录
将原 6、测试 迁入 8、部署/05-测试验收,接口矩阵与开发日志并入 5、接口/06-验收与矩阵,项目总览与平台分析分别归位至 2、架构与 1、需求;同步 Obsidian、机擎规范与路径校验脚本。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
|
||||
> 存客宝的 AI 手机控制引擎 — 替代奥创,统一控制微信/抖音/小红书/闲鱼等
|
||||
> **完整手册**:[开发文档/9、手册/工作手机·五图总览与使用手册.md](../开发文档/9、手册/工作手机·五图总览与使用手册.md)(v2.1)
|
||||
> **仓库结构**:[开发文档/00-项目总览/README.md](../开发文档/00-项目总览/README.md)
|
||||
> **仓库结构**:[开发文档/2、架构/01-总览/项目目录总览.md](../开发文档/2、架构/01-总览/项目目录总览.md)
|
||||
|
||||
## 项目模块结构
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@ if not os.path.exists(SCRIPT_PATH):
|
||||
# 截图保存目录
|
||||
SCREENSHOT_DIR = os.path.join(
|
||||
os.path.dirname(__file__), '..', '..', '..',
|
||||
'开发文档', '6、测试', 'screenshots', 'verification_110',
|
||||
'开发文档', '8、部署', '05-测试验收', 'screenshots', 'verification_110',
|
||||
)
|
||||
os.makedirs(SCREENSHOT_DIR, exist_ok=True)
|
||||
|
||||
|
||||
@@ -392,11 +392,32 @@ async def main():
|
||||
print(f"\n 即将测试 {total_actions} 个 action ({len(tests)} 组)")
|
||||
print("-" * 70)
|
||||
|
||||
# 预取最近消息 msgId,供 forward/recall 真机链路
|
||||
last_msg_id = None
|
||||
try:
|
||||
pre = await run_test(client, "get_messages", "POST", "/api/v3/message/list",
|
||||
{"conversation_id": "filehelper", "limit": 3}, "预检")
|
||||
msgs = (pre.response.get("data") or {}).get("messages") or []
|
||||
if not msgs and isinstance(pre.response.get("data"), dict):
|
||||
inner = pre.response["data"].get("data") or pre.response["data"]
|
||||
msgs = inner.get("messages") or []
|
||||
if msgs:
|
||||
last_msg_id = str(msgs[0].get("id") or msgs[0].get("msgId") or msgs[0].get("msg_svr_id") or "")
|
||||
print(f" 预检 msg_svr_id={last_msg_id}")
|
||||
except Exception as e:
|
||||
print(f" 预检 get_messages 跳过: {e}")
|
||||
|
||||
for group_name, group_tests in tests.items():
|
||||
print(f"\n[{group_name}] 测试中...")
|
||||
for action, method, endpoint, params, safe in group_tests:
|
||||
result = await run_test(client, action, method, endpoint,
|
||||
dict(params), group_name)
|
||||
p = dict(params)
|
||||
if action == "forward_message" and last_msg_id:
|
||||
p["msg_svr_id"] = last_msg_id
|
||||
if action == "recall_message" and last_msg_id:
|
||||
p["msg_svr_id"] = last_msg_id
|
||||
if action == "friend_info":
|
||||
p["user_id"] = "filehelper"
|
||||
result = await run_test(client, action, method, endpoint, p, group_name)
|
||||
report.results.append(result)
|
||||
icon = "✓" if result.success else "✗"
|
||||
print(f" {icon} {action:<30} {result.elapsed_ms:>5}ms [{result.channel}]")
|
||||
|
||||
@@ -425,7 +425,7 @@ def generate_verification_report(mode: str = "mock", output_path: str = "") -> s
|
||||
if not output_path:
|
||||
output_path = os.path.join(
|
||||
os.path.dirname(__file__), '..', '..',
|
||||
'开发文档', '6、测试',
|
||||
'开发文档', '8、部署', '05-测试验收',
|
||||
f'Frida无线控制验证报告_{datetime.now().strftime("%Y%m%d_%H%M%S")}.md'
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user