Midscene.js:AI驱动的UI自动化测试框架
摘要: Midscene.js是字节跳动开源的AI驱动UI自动化测试框架,支持自然语言编写测试脚本,降低技术门槛。核心特性包括零代码测试、AI自适应页面变化和自然语言断言。提供Chrome扩展、npm包等多种安装方式,需配置OpenAI API密钥。支持通过插件或YAML脚本执行测试,并生成可视化报告。与传统工具(如Playwright、Cypress)相比,Midscene.js在易用性和维护成
欢迎光临我的个人博客查看最新文章: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扩展安装
- 访问 Chrome Web Store 搜索"Midscene.js"
- 点击"添加至Chrome"完成安装
- 安装完成后,在浏览器扩展程序中打开Midscene.js面板
Chrome扩展离线安装
方法一:通过GitHub Release下载
- 访问 Midscene.js GitHub Releases
- 下载最新版本的chrome-extension.zip文件
- 解压到本地目录,例如:~/midscene-extension/
- 打开Chrome浏览器,访问 chrome://extensions/
- 开启右上角的"开发者模式"
- 点击"加载已解压的扩展程序"
- 选择解压后的扩展目录
- 确认扩展已启用,图标显示在工具栏
打开插件,如下图所示:
方法二:手动构建扩展
# 克隆项目
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自动化测试框架
更多推荐
所有评论(0)