如何快速上手Bug0 AI:10分钟跑通第一个自然语言浏览器测试的完整指南
【免费下载链接】qa-agentThe open-source Playwright library for AI browser regression testing with intelligent caching, auto-healing, and multi-model verification.项目地址https://gitcode.com/gh_mirrors/pa/qa-agent点击查看免费下载Bug0 AI 是一款开源的Playwright AI 浏览器回归测试库npm 包bug0/ai让你用自然语言描述测试步骤由 AI 模型驱动浏览器执行并自带智能缓存、自动修复auto-healing和多模型交叉验证。这篇文章带你用 10 分钟跑通第一个自然语言浏览器测试 一分钟了解 Bug0 AI传统的 Playwright 测试依赖写死的 CSS 选择器页面一改版测试就大面积失效。Bug0 AI 换了个思路自然语言步骤{ description: Click Acme Circles T-Shirt }不需要选择器智能缓存成功的步骤动作存入 Redis下次直接回放快且省 Token 自动修复缓存动作失效时自动回退到 AI 重新执行UI 变了测试也能过多模型断言Claude Gemini 双模型投票意见不一致时由第三个模型仲裁判断更可靠核心函数定义在 src/index.ts多模型共识断言引擎在 src/assertion.ts。Step Request | v [Cache Check] --命中-- [执行缓存动作] --成功-- 完成 | | 未命中 失败自动修复 | | v v [AI 执行] --------- [缓存结果] | v [断言验证]Claude Gemini 共识环境准备3 条命令装好依赖要求 Node.js 18。新建一个 Playwright 项目并安装 Bug0 AInpm init playwrightlatest bug0-ai-project # 默认选项语言选 TypeScript cd bug0-ai-project npm install bug0/ai dotenv 如果想直接从源码阅读项目仓库克隆地址为https://gitcode.com/gh_mirrors/pa/qa-agent。配置 AI 密钥写入 .envBug0 AI 的多模型共识功能需要至少一个 Anthropic 和一个 Google 模型。在项目根目录创建.envANTHROPIC_API_KEYsk-ant-... GOOGLE_GENERATIVE_AI_API_KEYAIza...不想分别管理多个厂商的密钥也可以用 AI 网关统一路由只需设置AI_GATEWAY_API_KEYVercel、OPENROUTER_API_KEYOpenRouter或OPENCODEZEN_API_KEYOpenCode Zen之一完整变量清单参考 .env.example。再让 Playwright 读取.env在playwright.config.ts顶部加两行import dotenv from dotenv; import path from path; dotenv.config({ path: path.resolve(__dirname, .env) });写第一个自然语言测试加购物车实战把下面的代码粘贴到tests/example.spec.ts——整个流程只有 5 个自然语言步骤import { test, expect } from playwright/test; import { runSteps } from bug0/ai; test(Shopping cart tests, async ({ page }) { test.setTimeout(60_000); // 给 AI 执行留出时间 await runSteps({ page, userFlow: Add product to cart, steps: [ { description: Navigate to https://demo.vercel.store }, { description: Click Acme Circles T-Shirt }, { description: Select color, data: { value: White } }, { description: Select size, data: { value: S } }, { description: Add to cart, waitUntil: My Cart is visible }, ], assertions: [{ assertion: You can see My Cart with Acme Circles T-Shirt }], test, expect }); });几个值得注意的参数详见 src/types.ts参数作用userFlow流程名称作为缓存 Key 的前缀data该步骤要填入的运行时数据waitUntilAI 判断的自然语言等待条件无需写死时间assertions步骤跑完后的自然语言断言运行测试并查看报告npx playwright test example.spec.ts --project chromium跑完后用下面命令打开可视化报告顶部还有 Bug0 AI 生成的 AI 总结npx playwright show-report首次运行走 AI 执行成功的单步动作会被写入缓存Redis再次运行时命中缓存直接回放速度和成本都会大幅下降。缓存逻辑见 src/redis.ts 和 src/data-cache.ts。进阶玩法3 个提升效率的特性runUserFlow()探索式测试把整段流程写成一句自然语言交给 AI 自主导航适合步骤不确定的场景effort: high会启用思考更深的模型CUA 视觉模式通过configure({ ai: { mode: cua } })切换为 OpenAI 截图驱动的 computer-use 代理适合复杂视觉交互详见 src/cua/占位符系统用{{run.email}}、{{global.*}}、{{email.otp:提示词}}等表达式注入随机邮箱、动态邮箱和验证码轻松做数据驱动测试常见问题快速排查症状解决办法运行时提示缺少 API Key检查.env中ANTHROPIC_API_KEY/GOOGLE_GENERATIVE_AI_API_KEY是否已设置浏览器启动失败执行npx playwright install安装浏览器日志显示 Step caching is disabled未配置 Redis设置REDIS_URL即可启用缓存AI 调用超时或偶发失败增大超时时间参考 src/constants.ts并确认 API 额度充足想看详细执行日志设置BUG0_AI_LOG_LEVELdebug更多排查思路见 TROUBLESHOOTING.md。总结Bug0 AI 把写选择器、修选择器的循环换成了自然语言 智能缓存 多模型验证10 分钟就能在现有 Playwright 项目中跑通第一个 AI 驱动的浏览器回归测试。下一步建议接入REDIS_URL开启缓存体会第二次运行的速度差异用{{run.*}}占位符改造一套数据驱动用例阅读 README.md 了解 Video 断言、邮件提取等完整能力你的测试套件从此可以自己会修 赞分享【免费下载链接】qa-agentThe open-source Playwright library for AI browser regression testing with intelligent caching, auto-healing, and multi-model verification.项目地址https://gitcode.com/gh_mirrors/pa/qa-agent点击查看免费下载相关推荐如何快速上手ICM Claude Code10分钟跑通你的第一个多阶段AI工作流新手完整指南如何快速上手ICM Claude Code10分钟跑通你的第一个多阶段AI工作流新手完整指南 ICMInterpretable Context Me如何快速上手Wraith10分钟完成第一个视觉测试如何快速上手Wraith10分钟完成第一个视觉测试 Wraith是一款由BBC News开发的强大视觉测试工具专门用于网页截图对比和视觉回归测试。通过无头浏测试开发工具如何快速上手 AgentScope Java10 分钟从零跑通你的第一个智能体附完整代码如何快速上手 AgentScope Java10 分钟从零跑通你的第一个智能体附完整代码 AgentScope Java 是一个面向生产环境的 Java人工智能AI Agent多智能体Agent 框架工具调用RAG创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

React组件属性默认值全解析:从defaultProps到解构默认值

React组件属性默认值全解析:从defaultProps到解构默认值

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 5:29:32 阅读更多 →
Zint条码库集成指南:链接Zlib与Libpng输出PNG的避坑实践

Zint条码库集成指南:链接Zlib与Libpng输出PNG的避坑实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 5:28:31 阅读更多 →
Hitrate指标全解读:广告命中率、推荐召回与缓存命中率的区别与优化

Hitrate指标全解读:广告命中率、推荐召回与缓存命中率的区别与优化

“Hitrate”这个单词,放在不同人面前,理解完全不一样。做广告投放的同学会说这是“命中率”,做推荐算法的会说这是“召回命中率”,写后端的则会直接甩给你“缓存命中率”。我在这三个方向都折腾过,第一次被人问“你们H…

2026/10/13 5:28:31 阅读更多 →

最新新闻

C++数组指针字符串:从内存视角彻底搞懂核心难点

C++数组指针字符串:从内存视角彻底搞懂核心难点

我知道很多人第一次翻开郑莉这本《C语言程序设计》,到第六章"数组、指针和字符串"就开始心里打鼓。说实话,我当年也是这样:前面的流程控制、函数调用,照着抄总能写出来,可数组和指针一上来,什么&…

2026/10/13 11:01:04 阅读更多 →
智能PDU:从车间排插到智慧工厂电力神经中枢

智能PDU:从车间排插到智慧工厂电力神经中枢

1. 先聊聊为什么车间里要装“智能排插”前阵子去一个做汽车零部件的工厂看产线改造,走到车间角落的配电柜旁边,正好看到一位老师傅拿着红外测温枪对着一个满负载的插线板在测温度。那个插线板上插着三台设备的电源,线缆摸上去已经有些发烫了&…

2026/10/13 11:01:04 阅读更多 →
OpenClaw跨平台安装指南:让《Captain Claw》在现代系统重生

OpenClaw跨平台安装指南:让《Captain Claw》在现代系统重生

前几天整理旧硬盘,翻出一个十年前的游戏存档文件夹,里面还躺着那只猫船长的记录。我试着双击当年的老游戏程序,Win11下直接黑屏闪退,连个报错都不给。正想放弃,朋友提了一句:“有没有试过OpenClaw&#xff…

2026/10/13 11:01:04 阅读更多 →
2026计算机职业规划:产品思维与新兴技术赛道

2026计算机职业规划:产品思维与新兴技术赛道

## 1. 计算机专业职业规划的现状与痛点2026年的计算机行业与十年前相比已经发生翻天覆地的变化。当我在某985高校计算机系担任企业导师时,发现超过70%的应届生仍在使用2015年的职业规划模板——这就像用Windows XP的操作手册来指导Windows 12的安装。最典型的认知偏…

2026/10/13 11:01:04 阅读更多 →
Java+SSM+Flask全栈实现在线奶茶店系统

Java+SSM+Flask全栈实现在线奶茶店系统

1. 项目概述:在线奶茶店系统的全栈实现这个基于JavaSSMFlask的网上奶茶店系统,是我为连锁奶茶品牌开发的一套完整的线上销售解决方案。系统采用前后端分离架构,后端使用JavaSSM框架处理核心业务逻辑,Flask则负责轻量级的API服务和…

2026/10/13 11:01:04 阅读更多 →
MySQL慢查询定位与索引设计:EXPLAIN与B+树实战全解析

MySQL慢查询定位与索引设计:EXPLAIN与B+树实战全解析

接手线上业务系统这几年,最让我头疼的问题之一就是MySQL慢查询。明明功能开发完了、测试也过了,一到流量高峰期,几个核心接口突然就卡了几秒,数据库CPU飙高,紧接着就是连接数打满、应用报错。排查下来,十有…

2026/10/13 11:00:03 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →