当前位置: 首页 > news >正文

Midscene.js:AI驱动的UI自动化测试框架

欢迎光临我的个人博客查看最新文章:river's blog

一、Midscene.js简介

1.1 什么是Midscene.js?

Midscene.js是一款基于多模态大语言模型(LLM)的AI驱动UI自动化测试框架,由字节跳动Web Infra团队开源。它的核心理念是"自然语言即测试脚本",通过AI技术让测试人员能够用自然语言描述测试步骤,而无需编写复杂的代码。

  • 官方文档:https://midscenejs.com
  • GitHub仓库:GitHub - web-infra-dev/midscene

传统方式:await page.click('#login-button')

Midscene.js:点击登录按钮

1.2 核心特性一览

特性

传统工具

Midscene.js

脚本编写

需要编写复杂的选择器和代码

自然语言描述即可

维护成本

页面变化时需要大量更新

AI自适应页面变化

学习曲线

需要编程基础

零代码,业务人员可用

断言方式

需要编写复杂的断言逻辑

自然语言断言

数据提取

需要解析DOM结构

JSON格式直接返回

二、安装与配置

2.1 快速体验方式

Chrome扩展安装

  1. 访问 Chrome Web Store 搜索"Midscene.js"
  2. 点击"添加至Chrome"完成安装
  3. 安装完成后,在浏览器扩展程序中打开Midscene.js面板

Chrome扩展离线安装

方法一:通过GitHub Release下载

  1. 访问 Midscene.js GitHub Releases
  2. 下载最新版本的chrome-extension.zip文件
  3. 解压到本地目录,例如:~/midscene-extension/
  4. 打开Chrome浏览器,访问 chrome://extensions/
  5. 开启右上角的"开发者模式"
  6. 点击"加载已解压的扩展程序"
  7. 选择解压后的扩展目录
  8. 确认扩展已启用,图标显示在工具栏

打开插件,如下图所示:

方法二:手动构建扩展

# 克隆项目 
git clone https://github.com/web-infra-dev/midscene.git 
cd midscene 
# 安装依赖 
npm install # 构建Chrome扩展 
npm run build:extension 
# 构建完成后,扩展位于 dist/chrome-extension/

方法三:通过npm包获取

# 全局安装后获取扩展文件
npm install -g @midscene/cli # 在项目中安装 
npm i @midscene/cli --save-dev

2.2 环境配置

配置OpenAI API密钥

创建.env文件:

OPENAI_BASE_URL="https://dashscope.aliyuncs.com/compatible-mode/v1" 
OPENAI_API_KEY="api key" 
MIDSCENE_MODEL_NAME="qwen2.5-vl-72b-instruct"

大模型api key 可以到 阿里云百炼申请:
https://bailian.console.aliyun.com/?tab=model#/api-key

三、测试运行

3.1 Chrome插件运行

按照2.2的配置,点击右上角的设置按钮,填写模型的环境配置

配置好后,我们先打开一个网页如:百度, 打开Midscene.js。

输入Action:

 await mid.ai('在搜索框输入稀土掘金,然后回车执行搜索');

然后就能看到执行过程及报告

3.2 控制台运行

编写 search.yaml 任务脚本

web:url: https://www.baidu.com/tasks:- name: 搜索掘金网站flow:- ai: 搜索 "稀土掘金" 网站,并打开- sleep: 5000- name: 检查结果flow:- aiAssert: 结果中展示掘金首页

执行脚本(已进行2.2环境配置)

midscene search.yaml

运行结果:

打开控制台中的html报告:
file:///Users/river106/AI/midscene/midscene_run/report/search_juejin-2025-08-03_21-34-23-6snvq22l.html

展示执行过程:

默认情况下,脚本会在无界面模式下运行。

如果你想运行在有界面模式下,你可以使用--headed 选项。此外,如果你想在脚本运行结束后保持浏览器窗口打开,你可以使用 --keep-window 选项。–keep-window 选项会自动开启 --headed 模式。

headed 模式会消耗更多资源,所以建议你仅在本地使用。

四、同类产品对比分析

4.1 功能对比

特性

Midscene.js

Playwright

Cypress

Puppeteer

Selenium

AI驱动

✅ 原生支持

❌ 无

❌ 无

❌ 无

❌ 无

自然语言

✅ 支持

❌ 不支持

❌ 不支持

❌ 不支持

❌ 不支持

学习曲线

极低

中等

中等

中等

陡峭

维护成本

极低

中等

中等

中等

极高

执行速度

中等

中等

跨浏览器

支持

支持

支持

Chrome为主

支持

可视化调试

内置

支持

支持

有限

❌ 无

社区生态

新兴

成熟

成熟

成熟

非常成熟

4.2 使用场景对比

4.3 选择建议

  • 选择Midscene.js的场景
    • 快速原型开发
    • 业务人员参与测试
    • 页面结构频繁变化
    • 需要快速验证想法
  • 选择传统工具的场景
    • 需要极致性能
    • 复杂业务逻辑验证
    • 已有成熟测试体系
    • 需要精细控制

文章同步发布在我的头条号:Midscene.js:AI驱动的UI自动化测试框架

http://www.dtcms.com/a/358879.html

相关文章:

  • PLSQL Developer 12.0.1 x64 安装步骤详解(附Oracle连接设置|附安装包下载)​
  • SQL 学习
  • 探索 XGBoost 与 LightGBM 的差异:哪个更适合你的项目?
  • 【Pytorch】生成对抗网络实战
  • 快消品牌如何用 DAM 管理万张素材?
  • Coze源码分析-API授权-编辑令牌-后端源码
  • MySQL视图、存储过程与触发器详解
  • 实战指南|解锁 Highcharts 图表导出与数据格式优化
  • windows32位下载谷歌浏览器的地址
  • Git提交信息
  • 不用公网IP也能?cpolar实现Web-Check远程安全检测(1)
  • Qt 窗口 - 3
  • 弱内存模型和强内存模型架构(Weak/Strong Memory Model)
  • stack queue的实现 deque的底层结构 priority_queue的实现
  • easy-http类似feign的轻量级http客户端工具
  • C++三方服务异步拉起
  • 针对 “TCP 连接中断 / 终止阶段” 的攻击
  • K8s卷机制:数据持久化与共享
  • 当“循环经济”遇上“小程序”,旧物回收正迎来“智慧”升级
  • 奥普新汽车声学测试方案书
  • 谷歌 “Nano Banana“ 深度解析:AI 图像的未来是精准编辑,而非从零生成
  • 构建现代化的“历史上的今天“网站:从API到精美UI的全栈实践
  • jumpserver
  • 字数统计器和文本AI处理,非常好用
  • 【Leetcode】17、电话号码的字母组合
  • MYSQL速通(3/5)
  • Agno - 轻量级Python多智能体系统框架
  • Python可视化与交互-matplotlib库
  • 后台技术方案设计经验之谈
  • C读写xlsx库xlsxio的编译和测试