最近, 在人工智能这个领域里面, 有一个话题是非常火的, 那个话题就是人工智能能不能自己写测试, 能不能自己跑测试, 还有能不能自己修补测试, 对于这个问题的答案是肯定的, 但是呢你要做的一个前提是, 你必须要先搞清楚那一堆名字, 这些长得很像双胞胎的名字, 它们包括什么什么命令界面交互工具, 还有智能体代理这样的名称, 别说是新手了, 即使是那些经验丰富的老司机, 他们也都会觉得困惑和迷茫。今天咱们就使用通俗易懂的言语, 对这五位伙伴进行深入的剖析, 同时告知各位读者, 哪些情况适合用来执行回归测试, 哪些场景更适合启动探索性行动, 还有哪个方案能够借助人工智能的力量来完成工作并实现费用的节省。这第一层, 它的地基部分 ——。它根本不是什么所谓的“ai工具”, 而是一整套用于对浏览器进行自动化操作的基础平台。这就好比建造楼房之前必须先浇筑地基一样, 它对外提供了一套统一的编程接口, 这套接口能够让用户分别去控制浏览器里的dom元素、网络请求以及屏幕像素等东西, 并且它还完美适配多种主流的开发语言, 包括java语言和.net框架在内都可以直接使用。除此之外, 在它的功能列表里还收录了很多非常实用的专业技术, 比如说自动识别页面加载状态并等待加载完成、根据动态变化的特征精准锁定目标元素、将用户的操作过程录制下来以便之后重复执行、伪造和拦截网络流量以模拟不同的网络环境, 以及详细记录整个运行过程的每一帧画面数据等等, 这些都是实打实的硬核实力体现。简单来讲就是没有, 后续提到的那四个项目都是建立在虚幻基础之上的概念。然而它自身并不会主动协助你进行思考活动, 仅仅是承担执行功能而已, 当你发出点击特定位置指令时它就会去执行该动作, 当你指示输入具体内容时它就会按照要求完成敲击操作。第二层, 这里是把给代理的那些节省能量的装置作为核心功能的那个部分, 也就是用命令行界面来达成目的。你有没有碰到过这样一种状况: 就是你去让那个编程工具, 或者是人工智能助手, 去给你写一个实现自动化的脚本之类的东西。然后每次运行的时候。它总是需要把整整一页网页当中的那个 HTML 源码全部给读取进去。这样的话, 它的 token 消耗速度就会变得非常快。也就是花费会涨得特别快。但是结果经常还是偏离了原本的方向。CLI其实就是为了解决这样一个问题而被创造出来的一种存在, 它主要是一个比较轻量的命令行工具, 这个工具是专门为给编码智能体也就是Agent使用而进行设计的, 在使用的时候用户只需要输入简单的一句命令就可以了, 例如:使用 npx 的这个操作, 通过开启 open 并指定-url 参数来填充#, 然后处理名为AI测试 的情况。这个手段就可以启动网页浏览器、进行表单填写以及捕捉屏幕画面, 最后还能返回去十分简洁的处理结果。之所以在整个执行过程当中消耗的 Token数量会少到极点, 其根本的原因在于命令行接口仅仅会输出关键必要的说明数据, 例如说截图所处的位置路径或者是操作所产生的最终结果信息, 绝对不会把整个DOM树状结构的全部细节数据通通塞给人工智能模型。具体的应用环境是, 让人工智能在终端里面去执行操作, 这些操作的顺序是先打开后台的界面, 然后进行登录, 接着增加一个待办的任务, 再截个图, 最后把测试用例给生成出来。另外呢, 持续集成以及持续部署的那个流水线当中, 对那些流程比较固定的事情来进行自动化处理, 也是让人感觉特别好的, 或者说效果是非常不错的这一类做法。第三层是AI的眼睛以及手, 这部分叫做MCP。咱们来打个比方, 要是把那个叫 CLI 的东西比喻成省油的轻骑兵, 那么 MCP 就是一个全能侦察兵。MCP 其实是一个标准的叫做 Model 的服务器。凡是那种支持了 MCP 的客户端, 比如 VS Code 、还有几个空格的地方应该有的东西、等等之类的东西。只要它们连上了这个服务器, 就可以通过调用工具的办法来操控浏览器。它的核心思路是用无障碍树来取代截图的做法。模型所看到的并不是一张单纯的图片, 而是一份属于结构化了的那种文本描述的东西, 比如:提交订单请输入地址通过这样的方式, 模型就可以做到非常精准地去处理各种操作, 比如定位和操控元素、进行点击动作、执行输入操作、触发滚动行为以及截取屏幕画面等等, 并且还能够模拟网络请求, 保存相关文件, 切换浏览器的内核环境。优势是确定性比较高, 它不依赖于视觉模型, 而且Token成本比截图以及多模要低很多。它适合做探索式测试, 还能对复杂页面进行探查, 可以让AI自己写选择器。有一个不足之处在于, 其开销还是相比命令行界面要高一些, 会消耗更多的令牌, 这是因为不管进行哪一次交互操作, 系统都需要把无障碍树的数据完整地传输一遍。这是第四层的内容, 也就是自主决策的那个Agent。前面三个都是“你告诉它做什么它就做什么”。而 -use 不一样它是“你告诉它目标它自己想办法”。比如你给它下达任务: “登录测试环境, 进入订单管理, 筛选出昨天失败的订单, 导出CSV。”这个系统内部会不断循环进行观察页面、通过大语言模型做决策、使用相关工具去执行动作, 然后再去看结果, 最后接着完成下一步操作。在这个过程中, 全程不需要你编写任何一行代码, 也不需要你来指定在每一步具体应该怎么点击鼠标或者屏幕。use 是一个建立在生态基础之上的开源项目, 它具备对多种大语言模型的支持能力, 其中包含 GPT-4o 以及本地部署的模型, 此外还集成了云代理服务、会话状态的持久化存储功能以及针对反爬取机制的处理能力。每一个地方都需要调用一次大模型。这会引发非常严重的问题。Token的消耗量非常大。运行速度慢。结果没有办法做到完全的复现。这种状况比较适用于一些特定的任务, 路径是不固定的一些东西。例如说需要对不同系统里的数据进行比对。又或者是进行需要用到主观判断来进行检查的工作。在第五层这个层级里, 我们要关注的是那个极致轻量的执行器, 它就是 Agent , 这里拿以 agent 开头的那个名字来做例子。Labs所推出的那些代理程序相关的产品, 其实是一个工具, 这个工具是用Rust语言写成的命令行界面以及与之相关的功能模块, 它能够通过某种叫做跨浏览器文档操作协议或者其他的途径来获得页面无障碍树结构的详细信息, 并且会给每一个可以被交互的元素都分配一个简短的引用标识, 就像大家看到的那些类似于艾特符号后面跟着数字1这样的形式, 或者说是按钮这样的缩写, 之后就会提供出来一些非常基础的且不可再分的操作手段, 例如说打开某个链接或者是点击某个区域等等。它本身是不进行决策的, 它只是提供所谓的最低成本的浏览器操作接口, 你可以把它嵌入到你自己使用的 Agent 框架里面或者也可以让它以一种叫做 MCP 的运行模式来进行工作。把那个命令行工具叫做_CLI_进行对照着看, 这两个东西使用成本都很低, 都不会消耗很多Token, 可是那边的那个-_更倾向于像是为了AI代理这种原生模式去做的一个设计, 也就是有参考了像refs还有MCP这种双模式的情况, 而这边的那个_cli_就更看重一些官方的那种测试流程以及集成方面的事情。大家究竟选择怎样的方法才是最合适的呢? 接下来将通过一张图表进行说明与解析但实际上并没有图片提供, 只包含文字内容需求 推荐把固定界面的回归测试工作先停下来, 大家去手动编写测试用例, 在编写过程之中直接调用 Test 这个手段或者工具来进行操作绝对不要因为这个问题就跑去使用 LLM。那个编码智能体可以帮你写出脚本代码, 同时又能带你去运行相关的测试工作, 这样一来就可以节省很多的上下文内容了, 它就是CLI工具。让人工智能去查看页面的结构内容, 进行相关的探索操作, 实现对测试用例的自我学习与修正, 并且能够编写出对应的选择器指令, 这些工作都是基于MCP协议或者框架来完成的。你只要告诉那个东西一个想要达成的目的就可以, 然后通往这个目的的路线不用固定死, 它自己得去点, 自己得去判断该怎么办。已经有人做出了那种代理程序, 只是目前还缺失一种用来执行低成本地点选页面元素或者是读取页面元素的代理人工智能工具, 这种工具的形式大概类似于命令行接口。采取更加大胆的一些操作方式, 也就是把不同的方法混合起来使用。举个例子来说, 可以先使用 -use 命令来做整体的一个规划安排, 当遇到登录账号、填写表单这种固定不变的子步骤的时候, 就切换去调用 CLI这个工具以节省Token资源而如果是一些比较复杂的信息探查任务, 再改换成 MCP来进行处理。写在最后AI 自动化测试这一块, 现在大家考虑的不是还有没有能力去做这件事的问题了, 而是应该怎么去把这个事情做到速度非常快并且又能节省成本的那个层面的问题了。这里提到的这五个工具之间并不存在着一种互相竞争的关系, 它们在各自所处的不同层次上, 呈现出来的是一种互补的状态。只要你能够把每一个工具它们到底处于什么样的定位这个问题给理解清楚, 你就完全有能力构建出一套既有着相当聪明的技术特点又在经济花费方面相对节约的一些体系出来, 也就是所谓的测试体系。等到下一次又有个人跑来向你提问, 问你那个特定的符号或者词语以及带有个横划和use这两个字母连在一起的部分到底在本质上面存在何种程度的不同之处的时候, 你就直接决定把这篇专门写的文字材料毫不犹豫地丢给他去看待, 如果对方接着继续追问道, 那么命令行这个缩写的形式和控制协议模型这个缩略语二者之间的边界在哪里, 那么对于这个问题, 你是清楚正确的回应方式的。本文的写法, 是基于那个名叫 2026 年的时间点里的那些主流工具当前的实际情形来做的。具体的版本信息到底是个啥样儿, 请您还是以官方网站上面的文档为准。