Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >惊!Midscene.js:一款AI 驱动的 UI 自动化测试利器,小白也能秒上手!

惊!Midscene.js:一款AI 驱动的 UI 自动化测试利器,小白也能秒上手!

作者头像
测试开发技术
发布于 2025-04-18 10:07:53
发布于 2025-04-18 10:07:53
69300
代码可运行
举报
文章被收录于专栏:测试开发技术测试开发技术
运行总次数:0
代码可运行

软件开发测试领域,UI自动化测试一直是我们的“心头大患”。传统测试工具依赖繁琐的元素定位(如CSS选择器、XPath),一旦页面结构变化,脚本就可能失效;复杂交互场景(如动态加载、多步骤验证)需要编写大量代码,维护成本高昂;而数据抓取、性能监控等场景更是让测试人员苦不堪言。

然而,随着AI技术的爆发,一款基于大语言模型(LLM)的AI驱动UI自动化测试工具: Midscene.js 横空出世,有望打破这一局面。

它以“自然语言交互”为核心,让开发者无需编写代码,只需用中文描述测试步骤,即可实现自动化操作,堪称“小白秒变测试专家”的终极神器!

一、Midscene.js是什么?为什么它能火?

Midscene.js是字节跳动 Web Infra 团队全新开源的一款 UI 自动化工具,它最大的亮点在于引入了多模态 AI 推理能力。

Midscene.js 的核心开发语言为 TypeScript,并辅以 HTML、MDX、Less 等前端技术构建其功能框架。

1、核心亮点包括

  • 自然语言交互:以往编写自动化测试脚本,需要掌握专业的编程知识,这对很多测试人员来说是个不小的挑战。但 Midscene.js你只需用自然语言描述自动化步骤,它就能理解你的指令,并在网页上精准执行相应操作。
  • 强大的数据提取能力:能够深度理解网页结构,并根据提示生成所需数据结构,在进行数据抓取或测试时,从网页中提取特定数据是常见需求。而Midscene.js 提供了强大的数据提取功能,你可以描述想要的数据结构,它会以 JSON 格式将数据返回给你。
  • 零代码测试:无需编写选择器,告别“锚点依赖症”;
  • 可视化报告:提供动画回放、步骤详情,支持在报告中直接调试,方便用户调试和优化测试流程。
  • 支持多种模型: 内置对公共多模态大语言模型(如 GPT-4)和开源模型(如 UI-TARS)的支持。
  • 开源+数据安全 MIT协议,支持私有化部署,数据不出本地。

2、为何它能火

  • 降本增效: 传统测试需要3天完成的脚本,Midscene.js仅需30分钟;
  • 灵活应对变化: 页面改版?只需修改自然语言描述,无需重构脚本;
  • 跨工具兼容: 支持Puppeteer、Playwright、YAML脚本,无缝集成现有测试体系。

二、安装方式

2.1 Chrome 扩展安装

如果你想快速体验 Midscene.js 的核心功能,安装 Chrome 扩展是个不错的选择。打开 Chrome 浏览器,进入 Chrome 网上应用店,搜索 “Midscene.js”,找到对应的扩展程序后,点击 “添加到 Chrome” 按钮,按照提示完成安装。

2.2 Npm安装

如果你需要更深入地使用 Midscene.js,进行复杂的自动化测试或集成到现有项目中,可以通过安装SDK 来实现。以 Node.js 项目为例,首先确保你已经安装了 Node.js 环境,然后打开命令行工具,进入你的项目目录,执行以下命令安装 Midscene.js 的 SDK:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
npm install midscene.js

2.3 源码安装

如果你想深入地了解学习Midscene.js源码或对它进行二开改造,建议通过源码来安装。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 克隆项目
git clone https://github.com/web-infra-dev/midscene.git
cd midscene

# 安装依赖
npm install

# 启动本地服务(可选)
npm run dev

三、使用方法及示例

3.1 Chrom插件使用方式

以Chrome 扩展插件安装为例,安装完成后,只需访问Midscene.js插件打开即可。

通过使用 Midscene.js Chrome 插件,你可以快速在任意网页上体验 Midscene 的主要功能,而无需编写任何代码

启动扩展,通过粘贴 Key=Value 格式配置插件环境:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
OPENAI_API_KEY="sk-replace-by-your-own"

各配置选项:

温馨提醒:

  • midscene 默认使用 GPT-4o 为默认的推理模型,成本比较高。Midscene 需要将截图和 DOM 树一起发送给模型,这会导致 token 消耗较高。
  • 当然你也可以选择,千问 Qwen-2.5-VL 模型,同样支持视觉定位,不需要发送 DOM 树给模型。和 gpt-4o 相比,它可以节省 30% 到 50% 的 token 数量。不过在某些情况下,Qwen-2.5-VL 的断言能力可能不如 gpt-4o。

上述配置完成后,你可以立即开始使用 Midscene。 它一共有三个关键操作Tab:

  • Action: 与网页进行交互,如 "在搜索框中输入 Midscene" 或 "点击登录按钮"
  • Query: 从界面中提取 JSON 数据,如 "提取页面中的用户 ID,返回 { id: string }"
  • Assert: 执行断言,如 "页面标题是 Midscene"这里我是了下在搜索引擎中搜索hengshuai's blog,然后让其点击第一条结果:

上图中可以看到全程没有任何具体的代码,仅仅通过自然语言就完成了一系列行为

3.2 YAML使用方式

Midscene 还提供了一种基于 .yaml 文件的自动化测试方法,这有助于你专注于脚本本身,任何团队内的成员都可以编写自动化脚本,例如创建test.yml。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
target:
  url:https://www.ebay.com

tasks:
-name:搜索耳机
    flow:
      -ai:在搜索框输入"耳机"并敲回车
      -sleep:2000
      -aiQuery:'{itemTitle: string, price: Number}[], 提取前5个商品标题和价格'
      -aiAssert:"搜索结果页面包含‘耳机’关键词"

安装@midscene/cli

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
npm install @midscene/cli -g

执行脚本:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
npx midscene ./test.yaml

3.3 使用Puppeteer集成

midscene.js 也提供了一种基于 Puppeteer 的集成方式,允许你使用 Puppeteer 的 API 来编写自动化测试脚本,并使用 Midscene 的 API 来执行自动化测试

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const puppeteer = require('puppeteer');
const midscene = require('@midscene/web');

(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
  await page.goto('https://example.com');

// 输入用户名和密码
  await midscene.execute(page, '输入用户名 "testuser"');
  await midscene.execute(page, '输入密码 "123456"');
  await midscene.execute(page, '点击登录按钮');

// 提取数据
const data = await midscene.query(page, '提取用户信息为 JSON 格式');
  console.log(data);

  await browser.close();
})();

安装依赖:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
npm install @midscene/web puppeteer tsx --save-dev

运行脚本:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
npx tsx ./test.ts

不管采用哪种方式,同样都是需要配置必要的环境变量:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 更新为你自己的 Key
export OPENAI_API_KEY="sk-abcdefghijklmnopqrstuvwxyz"
# 其他..

模型配置参考文档:https://midscenejs.com/model-provider.html

4、最后

Midscene.js 作为一款 AI 驱动的 UI 自动化测试利器,凭借其独特的自然语言交互、强大的数据提取和断言功能、可视化调试以及丰富的集成方式,为 UI 自动化测试带来了全新的体验。

它不仅让测试工作变得更加高效、便捷,还降低了测试人员的技术门槛,让更多人能够参与到自动化测试中来。无论是对于追求高效的开发团队,还是想要提升测试技能的个人,Midscene.js 都值得一试。如果你在使用过程中有任何问题或心得,欢迎在评论区留言分享。

文章中涉及到的工具更详细使用可参考官网:

👉 项目官网:https://midscenejs.com

👉 GitHub仓库:https://github.com/web-infra-dev/midscene

👉 Puppeteer: https://pptr.dev/

好了,今天就先分享到这里~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-04-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试开发技术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
MCP-Playwright:AI自动化神器,一款超级好用的自动化测试框架!
在软件开发与测试领域,自动化测试早已成为提升效率、保障质量的核心工具。然而,传统自动化测试框架往往面临代码编写繁琐、跨工具协作困难、操作复杂等痛点。
测试开发技术
2025/04/30
1.7K0
MCP-Playwright:AI自动化神器,一款超级好用的自动化测试框架!
推荐一款最新开源,基于AI人工智能UI自动化测试工具!支持自然语言编写脚本!
随着互联网技术的飞速发展,Web应用越来越普及,前端页面也越来越复杂。为了确保产品质量,UI自动化测试成为了开发过程中不可或缺的一环。然而,传统的UI自动化测试工具往往存在学习成本高、维护困难等问题。特别是UI 自动化脚本里往往到处都是选择器,比如 #ids、data-test、.selectors。在需要重构的时候,这可能会让人感到非常头疼。
测试开发技术
2025/02/25
6740
推荐一款最新开源,基于AI人工智能UI自动化测试工具!支持自然语言编写脚本!
Midscene.js - AI驱动,轻松实现UI自动化
该技术正从“辅助工具”进化为‌质量保障核心决策中枢‌,推动软件交付从“人适应工具”到“工具理解意图”的范式重构。
wangmcn
2025/02/25
1.1K1
Midscene.js - AI驱动,轻松实现UI自动化
字节开源,让 AI 给你写 UI 自动化测试,更愉悦的 UI 自动化体验
Midscene.js 是一个由 AI 驱动的浏览器自动化 SDK,旨在通过 Chrome 扩展、JavaScript 和 YAML 脚本实现自动化操作。这个项目的目标是简化用户界面控制、数据提取和断言操作,使开发者能够以自然语言描述操作步骤,从而实现自动化。
大侠之运维
2025/01/17
6370
震惊!推荐一款AI驱动的自动化测试神器:TestCraft!
在当今快速迭代的软件开发环境中,自动化测试已经成为确保软件质量的重要一环。然而,传统的手动录制和编写测试脚本的方式不仅耗时耗力,还难以跟上敏捷开发的节奏。
测试开发技术
2024/11/28
8370
震惊!推荐一款AI驱动的自动化测试神器:TestCraft!
又被AI淘汰了!一句话生成自动化操作
现在我们只需要通过人类的语言也就是自然语言告诉AI,帮我发一条微博,采集周杰伦演唱会的信息,并且写入到Google Docs中,AI就会进行类似RPA的操作,在浏览器中点击、输入、提取数据,甚至生成可视化报告复盘每一步操作,不需要我们写代码,也不需要一步步配置PRA,只需要一句话就可以实现,这就是Midscene.js
小白的大数据之旅
2025/04/19
1100
又被AI淘汰了!一句话生成自动化操作
自动化测试工具-Playwright(快速上手)
一提到 UI 自动化测试工具,首要推荐的必属是 Selenium,其优势在于跨平台、跨语言、完全开源、对商业用户也没有任何限制、支持分布式、拥有成熟的社区与学习文档等,目前已经迭代更新到 4 版本。那么缺点也有,比如环境配置、加载效率低、运行速度慢等。
wangmcn
2022/07/26
3.2K0
自动化测试工具-Playwright(快速上手)
推荐几款常用Web自动化测试神器!
Web自动化测试在保证质量、提升效率、软件开发加速迭代上起到关键作用,它已经成为现代软件测试中不可或缺的一部分,今天给大家介绍推荐几款常用的Web自动化测试工具。
测试开发技术
2023/09/11
4.7K0
推荐几款常用Web自动化测试神器!
Puppeteer 初探之前端自动化测试
导语: Most things that you can do manually in the browser can be done using Puppeteer! 初识puppeteer pup
QQ音乐前端团队
2017/09/25
13.3K6
Puppeteer 初探之前端自动化测试
干货 | 基于 BDD 理念的 UI 自动化测试在携程度假的应用
Leo Li,携程高级软件工程师,负责度假 BDD-Test UI 自动化测试框架的研发、维护和迭代等工作。
携程技术
2020/06/24
2.9K0
干货 | 基于 BDD 理念的 UI 自动化测试在携程度假的应用
京喜前端自动化测试之路(小程序篇)
京喜(原京东拼购)项目,作为京东战略级业务,拥有千万级别的流量入口。为了保障线上业务的稳定运行,每月例行开展前端容灾演习,主要包含小程序及 H5 版本,要求各页面各模块在异常情况下进行适当的降级处理,不能出现空窗、样式错乱、不合理的错误提示等体验问题。
winty
2020/07/21
1.6K2
京喜前端自动化测试之路(小程序篇)
Puppeteer,非常好用的一款爬虫和自动化利器~
最近写爬虫采集电商数据,遇到很多动态加载的数据,如果用requests来抓包非常难,我尝试用了一个大家较为陌生的的工具——Puppeteer,它支持控制浏览器,能很好的采集动态网页,后来发现它不仅是一个爬虫工具,更是一个自动化利器。
派大星的数据屋
2025/04/04
1720
Puppeteer,非常好用的一款爬虫和自动化利器~
自动化测试工具-Taiko
Web自动化测试工具从刚开始接触的QTP(UFT),到现在绝大多数公司或项目都在使用的Selenium,以及之后有很大发展前景的Cypress。可以看出自动化测试工具越来越丰富了,当然这里所提到的都是比较有代表性的,市面上的优秀工具远远不止这三个。
wangmcn
2022/07/26
1.4K0
自动化测试工具-Taiko
使用Puppeteer进行UI自动化测试
Puppeteer是一个Node库,提供了一种高级API来通过DevTools协议控制Chrome或Chromium。在这篇文章中,我们将详细介绍如何使用Puppeteer进行UI自动化测试。
运维开发王义杰
2023/08/10
6700
使用Puppeteer进行UI自动化测试
web自动化测试-puppeteer入门与实践
对于web的自动测试,很多人熟悉的是selenium、webdriver的解决方案,比如说webdriver是按照server – client的经典设计模式设计的,server端是remote server,可以是任意的浏览器。以及常用到的一个爬虫框架PhantomJS 。对于这两款工具环境安装复杂,API 调用不友好的问题。puppeteer是一款基于chrome的自动化测试以及爬虫工具。
测试邦
2019/07/24
1.6K0
web自动化测试-puppeteer入门与实践
使用Taiko + Gauge进行自动化测试(一)
先来了解一下什么是Taiko:“Taiko是一个免费的开源浏览器自动化工具,由ThoughtWorks开发。它是一个node的库,Taiko使用Chrome Devtools API,它是为测试现代web应用程序而构建的。”
句幽
2020/04/27
2K0
使用Taiko + Gauge进行自动化测试(一)
Chrome浏览器实例的TypeScript自动化脚本
Chrome浏览器作为全球使用最广泛的浏览器之一,其自动化操作的需求也随之增长。Puppeteer是一个Node库,它提供了一套高级API来控制Chrome或Chromium。本文将介绍如何使用TypeScript结合Puppeteer来创建一个自动化脚本,并在代码中集成代理信息,以实现对Chrome浏览器实例的控制。
小白学大数据
2025/01/03
2020
web自动化测试(3):web功能自动化测试selenium基础课
继上篇《web自动化测试(1):为什么选择selenium做自动化测试》,本文介绍如selenium使用
周陆军
2021/07/26
1.7K0
小程序 自动化测试
<a href="https://jestjs.io/docs/configuration#snapshotserializers-arraystring">详细参考jest文档</a>
ronixiao
2022/07/21
2.8K0
uniapp自动化测试
这里可以在HBuilderX设置的插件设置里取消勾选“自动修改jest.config.js文件中的testMatch”选项才能自定义测试目录
阿超
2024/11/17
1420
推荐阅读
相关推荐
MCP-Playwright:AI自动化神器,一款超级好用的自动化测试框架!
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验