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

boyanx6个月前技术教程48


大家好,我是老李。前一段写了篇文章《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在线测试

相关文章

Web 服务器基准测试:Go vs. Node.js vs. Nim vs. Bun

大家好,很高兴又见面了,我是"高级前端进阶",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发,您的支持是我不断创作的动力。文章大部分内容...

云计算平台CartoDB发布开源工具Odyssey.js测试版

在这个世界上,总会发生点儿什么事情。这也正是开源工具Odyssey.js背后的逻辑。Odyssey.js利用地图将数据转变为交互式多媒体内容,同时还不需要用户具备专业的编程技能。在从KnightPro...

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

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

软件测试|web自动化测试神器playwright教程(一)

前言提起web自动化测试框架,我们首先想到的就是selenium,selenium基本上成为了必选的web自动化测试框架,测试工程师也必须学这个框架的使用,web自动化测试用例也依靠这个框架去执行。直...

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

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

JavaScript基础知识(一)JS入门

一、JS入门(一)产生JavaScript是布兰登·艾奇(BrendanEich,1961年~),在1995年利用十天完成JavaScript设计。网景公司最初命名为LiveScript,后来在与Su...

发表评论    

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