得物以运营日志和VLM生成端到端测试用例
概述
因交易业务快速增长、后台页面经历 Vue→React→全栈迁移,团队构建自动化 + 智能化 E2E 测试方案。用例来源不是手工编写而是自动生成:核心输入为应用性能监控系统的会话级记录(内部运营在真实环境的访问路径与关键交互),系统接收会话链接后从监控系统拉取行为日志,解析时过滤快速连续点击、心跳等无效操作,识别出有业务意义的原子操作序列(如「访问某列表页」→「点击新建」→「表单 A 输入 X」→「表单 B 选择 Y」→「点击提交」),再转换为 Midscene 可识别的结构化测试脚本(操作类型、元素描述、操作值、可选断言),分配唯一用例 ID 并与源页面、业务域、来源会话一并入库。 执行阶段由常驻后台服务消费队列任务,启动无头浏览器并注入 Midscene 智能驱动与 Qwen-VL 视觉模型,同时加载代码覆盖率插桩工具。每步把当前屏幕截图与 DOM 状态发给视觉模型,由模型结合画面与步骤指令定位目标元素并执行点击、输入、滚动等原子操作,内置智能等待、多轮定位与弹窗/网络异常判断等自适应策略(首次未找到元素会滚动重试或等待出现),逐步记录成功失败、错误信息、截图与单步覆盖率,最后合并为页面级覆盖率报告并持久化。 工具选型上对比 Midscene(原生 JavaScript + WebExtensions API、开源、支持 Playwright/Puppeteer 定制、支持 DOM 与视觉分析如 Qwen-vl)与 browser-use(Python + LLM + 浏览器驱动、基于 Playwright、同时支持视觉与非视觉模型),最终选 Midscene,考量是与 JS 为主的技术栈匹配、支持 DOM 与视觉多路径输入并可用 Puppeteer/Playwright 补充确定性逻辑、定制扩展路径清晰。 文中也列出 AI E2E 的劣势为黑盒性与高成本(视觉/大模型调用的 Token 消耗)。