国产大模型助力自动化测试——让Midscene.js用上“东方大脑”

boyanx4周前技术教程9


大家好,我是老李。前一段写了篇文章《UI自动化测试不求人,字节跳动开源基于AI大模型的UI自动化测试库》,介绍了字节跳动开源的AI驱动的自动化测试工具midscene.js,有朋友纷纷私信,国产大模型使用方便又便宜,midscene.js能不能接入国产的大模型啊?其实啊,代码层级很早就支持多种大模型了,只是文档没公开出来,因为毕竟是个开源的产品,字节早期在内部使用的时候,也会用多种大模型进行对比测试,代码稳定之后,再通过文档公开出来,这也符合开发同学的逻辑——先开发,后补文档。好了,闲话不多说,今天就带大家看看如何让midscene.js支持不同的大模型。

目前官方最为推荐的3种模型分别是 GPT-4o,Qwen2.5-VL(千问)和 UI-TARS

GPT-4o

表现比较平衡,但是因为Midscene 需要将截图和 DOM 树一起发送给模型,这会导致 token 消耗较高,且无法处理跨域的 <iframe /> 或 <canvas /> 标签中的内容,有时候可能无法准确定位小图标。

配置

OPENAI_API_KEY="......"
OPENAI_BASE_URL="https://......"# 可选
MIDSCENE_MODEL_NAME="gpt-4o-2024-11-20" # 可选,默认是 "gpt-4o"。

千问 Qwen-2.5-VL

开源的 VL 模型,几乎与 GPT-4o 表现相同,使用阿里云部署的版本时成本很低。在大多数情况下,它的表现与 GPT-4o 相当,有时甚至更好。官方推荐使用最大参数的 72B 版本。

支持识别截图中的图像位置,不需要发送 DOM 树给模型。和 gpt-4o 相比,它可以节省 30% 到 50% 的 token 数量。在阿里云官方部署版本中,费用消耗可以下降 80% 以上。

同时,这是一个开源模型,因此你可以选择使用云提供商已经部署好的版本,或者自己部署到你自己的服务器上。

配置

OPENAI_BASE_URL="https://......" # 或任何其他提供商的接入点。
OPENAI_API_KEY="......"
MIDSCENE_MODEL_NAME="qwen-vl-max-latest"
MIDSCENE_USE_QWEN_VL=1 # 别忘了配置这项,用于启用 Qwen 2.5 模式!

UI-TARS

开源的端到端 GUI 代理模型,擅长执行目标驱动的任务,有错误纠正能力。它仅以截图作为输入,并执行人类常用的交互(如键盘和鼠标操作),在 10 多个 GUI 基准测试中取得了顶尖性能。UI-TARS 是一个开源模型,并提供了不同大小的版本。

实测速度上,一个私有化部署的UI-TARS模型可以比通用 LLM 快 5 倍,图像识别上和Qwen-2.5-VL 一样, 可以识别截图中的图像位置,这就意味着无需发送DOM树,可以节约大量token,提高速度,另外,UI-TARS 针对 UI 自动化进行了优化,能够使用目标驱动的提示词(target-driven prompt),处理更复杂的目标驱动的任务,在使用更短的提示词时,UI-TARS 的表现比通用 LLM 更好。唯一的缺点是在某些情况下,断言能力可能不如 gpt-4o

配置

OPENAI_BASE_URL="....."
OPENAI_API_KEY="......"
MIDSCENE_MODEL_NAME="ui-tars-7b-sft"
MIDSCENE_USE_VLM_UI_TARS=1 # 别忘了配置这项用于 UI-TARS 模式!


下面官方支持的其他模型,你只需要找到如何使用与 OpenAI SDK 兼容的方式调用它,服务商一般都会提供这样的接入点,只需要配置 OPENAI_BASE_URL, OPENAI_API_KEY 和 MIDSCENE_MODEL_NAME三个环境变量,有条件的小伙伴也可以尝试一下。

  1. claude-3-opus-20240229
  2. gemini-1.5-pro
  3. qwen-vl-max-latest(千问)
  4. doubao-vision-pro-32k(豆包)

配置

export OPENAI_BASE_URL="......"
export OPENAI_API_KEY="....."
export MIDSCENE_MODEL_NAME="gemini-1.5-pro"

说在最后:midscene的实现效果和最近很火的MCP(Model Context Protocol)要达到的目标是一致的,也是MCP致力要解决的问题,相信不久的将来,midscene也会实现相应版本的MCP服务器版本,如果将来整个MCP的生态越来越完善,更多的MCP组件融合起来,人类坐在电脑前,通过语言指令,指挥电脑自动完成各项任务,是不是很High!好了,今天就聊到这儿,喜欢的朋友可以点赞收藏加评论,老李将为您带来更多好玩有趣的AI知识和工具!

标签: js在线测试

相关文章

教你怎么用JavaScript检测当前浏览器是无头浏览器

什么是无头浏览器(headless browser)?无头浏览器是指可以在图形界面情况下运行的浏览器。我可以通过编程来控制无头浏览器自动执行各种任务,比如做测试,给网页截屏等。为什么叫“无头”浏览器?...

V8 JavaScript 引擎发布 5.0 测试版

V8 团队发布了 V8 5.0,暂时停留在测试版,预计 Chrome 50 Stable 发布之后就会发布 V8 5.0 正式版。V8 发布进程 一般是在一个 Chrome Beta 里程碑测试的时候...

推荐一个检测 JS 内存泄漏的神器

大家好,我是 Echa哥。作为一名 Web 应用程序开发者,排查和修复 JavaScript 代码的内存泄漏一直是最困扰我的问题之一。最近,Meta 开源了一款检测 JavaScript 代码内存泄漏...

Google Chrome浏览器在Speedometer3性能测试中获得“史上最高分”

Google今日宣布,其 Chrome 浏览器在 Speedometer 3 基准测试中获得了“史上最高分”。Speedometer 3 旨在衡量浏览器性能,由Google、苹果、英特尔、微软和 Mo...

Top 57个JavaScript面试题和答案大全

近年来,从事JavaScript的程序员越来越多,JavaScript的曝光率也越来越高,如果你想转行试试JavaScript,不妨收下这份面试题及答案,没准用得上。当然,如果针对这些问题,你有更棒的...

在Node应用中实施Web认证的四大方法

本文翻译自RisingStack网站Gergely Nemeth撰写的《Web Authentication Methods Explained》一文,感谢景庄对该文章的翻译。安全问题正成为Web应用...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。