核心用法
gstack 是一个基于持久化 headless Chromium 的浏览器自动化工具,专为 QA 测试和站点验证设计。首次启动约 3 秒,后续每条命令仅 100-200ms。通过 $B <command> 调用已编译二进制文件,支持导航、表单交互、元素断言、截图对比、响应式布局测试等完整工作流。
关键命令:
goto/snapshot/screenshot— 导航与页面捕获snapshot -i— 生成交互元素索引(@e1, @e2 等),后续可用@eN直接操作snapshot -D— diff 对比,验证操作前后变化is visible/enabled/checked— 状态断言fill/click/upload/select— 表单与文件交互responsive— 一键生成移动端/平板/桌面三尺寸截图chain— JSON 管道批量执行,适合长流程
显著优点
- 极速:~100ms/命令,远超传统 Puppeteer/Playwright 脚本
- 状态持久:cookies、登录会话、标签页跨调用保留
- 智能索引:
snapshot -i自动生成可引用编号,告别脆弱 CSS 选择器 - 内置断言:
is命令直接验证元素状态,无需解析文本 - 证据链完整:标注截图 + diff + 控制台日志,Bug 报告一站式产出
- 响应式测试:内置 viewport 切换和多尺寸截图
- 真实浏览器 cookies:支持从 Chrome/Arc/Brave/Edge 直接导入登录态
潜在缺点与局限
- 初始构建依赖:首次使用需
bun环境和 ~10 秒编译 - CLI 而非代码:适合快速验证,复杂逻辑需配合
chain或外部脚本 - 无录制回放:相比 Playwright codegen,需手动编写命令序列
- 单会话限制:30 分钟闲置自动关闭,超长测试需设计断点
- dialog 默认自动接受:虽防锁死,但可能错过关键确认交互的测试覆盖
适合人群
- 需要快速验证部署的前端/全栈开发者
- 负责回归测试的 QA 工程师
- 需要截图证据提交 Bug 的产品或设计人员
- 进行站点 dogfooding 的团队成员
常规风险
- 敏感信息泄露:
header命令虽自动脱敏,但截图和 HTML 导出仍可能含 PII - 生产环境误操作:自动化点击/填写可能触发真实订单或删除,建议在 staging 执行
- Cookie 同步风险:从真实浏览器导入 cookies 可能携带未预期的登录态或追踪标识
- JS 执行安全:
js和eval命令直接执行页面上下文代码,需警惕 XSS 测试场景下的双向风险