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

【大厂开源】一款AI 驱动的 UI 自动化框架,别错过!

文章转载链接【大厂开源】一款AI 驱动的 UI 自动化框架,别错过! - 51Testing软件测试网说起UI自动化测试框架,大家脑海中最先想到的是Playwright、Cypress等这样成熟的产品,但是要将自动化脚本做到稳定并且持续维护的团队却是屈指可数的,因为经常会面临选择器繁琐复杂、与 HTML 结构的耦合度高. 51Testing软件测试网,人气很旺的软件测试技术门户,提供测试文章、测试交流、测试招聘、培训等全方位信息服务,内容覆盖APP测试、性能测试、自动化测试、验收测试、兼容性测试等,是国内很专业的软件测试就业培训、企业服务供应商...http://www.51testing.com/html/02/n-7804102.html

说起UI自动化测试框架,大家脑海中最先想到的是Playwright、Cypress等这样成熟的产品,但是要将自动化脚本做到稳定并且持续维护的团队却是屈指可数的,因为经常会面临选择器繁琐复杂、与 HTML 结构的耦合度高,以及界面难以进行断言等问题。

今天就给大家推荐一款由字节跳动WebInfra 团队全新开源的 UI 自动化工具--Midscene.js。它通过引入多模态AI推理能力,将帮助开发者打破传统UI自动化难于编写和维护的困境。

Midscene.js是什么

Midscene.js 是一款基于AI技术的自动化 SDK,旨在简化UI自动化测试流程。它通过大型语言模型(LLM)解析用户的自然语言指令,执行相应的操作,如输入文本、点击按钮等。

Midscene.js 支持动作执行、数据查询和页面断言,并提供可视化报告,帮助用户轻松调试和优化测试流程。

Midscene.js 是一个开源项目,用户可以在自己的环境中运行,确保数据安全。它支持与 YAML 脚本、Puppeteer 和 Playwright 等工具集成,适用于多种自动化测试场景。

Midscene.js的核心优势

1. 三种核心方法

Midscene.js提供了三种关键方法,分别是交互(.ai,?.aiAction)、提取(.aiQuery)和断言(.aiAssert)。

交互:使用.ai或.aiAction方法描述测试步骤并执行交互。例如,你可以告诉Midscene.js“点击按钮”、“输入文本”等。

提取:使用.aiQuery方法从UI中“理解”并提取数据。Midscene.js会返回一个JSON格式的数据结构,你可以根据需要描述想要的数据格式。

断言:使用.aiAssert方法执行断言,验证UI的状态是否符合预期。

举例:

// 输入关键字,执行搜索 // 尽管这是一个英文页面,你也可以用中文指令控制它 await ai('在搜索框输入 "Headphones" ,敲回车'); // 找到列表里耳机相关的信息 const items = await aiQuery( '{itemTitle: string, price: Number}[], 找到列表里的商品标题和价格' ); console.log("headphones in stock", items);

2. Javascript 或 Yaml ,多种集成形式

如果你想要测试 Midscene 的核心能力,我们推荐从浏览器插件(https://midscenejs.com/zh/quick-experience.html)开始快速体验。

插件里可以用自然语言与任意网页联动,调用交互、提取、断言三种接口,无需搭建代码项目。

此外,还有几种形式将 Midscene 集成到代码:

·使用 YAML 格式的自动化脚本,如果你更喜欢写 YAML 文件而不是代码;

·使用 Chrome 插件的桥接模式,用它来通过脚本控制桌面 Chrome;

·集成到 Puppeteer;

·集成到 Playwright;

3. 可视化报告与调试Playground

运行结束后,Midscene.js会提供一个可视化报告和调试Playground。你可以非常方便地调试提示和AI的响应,查看所有的中间数据,如查询(Query)、计划(Planning)和动作(Actions)。

此外,报告中还集成了一个Playground,你可以在报告中重新运行Prompt并调试,进一步提升测试的效率和准确性。

4.直连模型端,保障数据安全

Midscene.js是一个采用MIT许可证的开源项目,项目代码运行在用户的自有环境中。所有从页面收集的数据会依照用户的配置,直接传送到OpenAI或指定的自定义模型。

因此,数据仅用户和指定的模型服务商可访问,任何第三方平台均无法获取这些数据。这一设计不仅保障了数据的安全性,还降低了对第三方服务的依赖。

Midscene.js的技术原理

自然语言处理(NLP):接收用户的自然语言输入,基于 NLP 技术解析指令。

界面理解:模型分析网页内容,理解用户描述的界面元素和动作。

执行动作:根据理解的结果,模型将执行相应的浏览器自动化操作,如模拟用户输入、点击等。

数据提取:模型根据用户的查询请求,从网页中提取特定格式的数据。

断言验证:模型检查页面状态是否符合用户的断言条件。

Midscene.js的实战案例

下面案例是网友亲自实践总结,展示了Midscene.js在UI自动化测试中的应用,希望对大家有所帮助。

1. 测试目标

假设我们有一个简单的登录页面,需要测试以下功能:

输入正确的用户名和密码后,能够成功登录。

输入错误的用户名或密码后,会提示错误信息。

2. 测试步骤

打开登录页面:使用Midscene.js的浏览器插件或代码集成方式打开登录页面。

输入用户名和密码:使用.aiAction方法输入正确的用户名和密码。

检查登录结果:使用.aiQuery方法提取登录后的页面数据,并使用.aiAssert方法验证是否成功登录。

输入错误的用户名或密码:重复上述步骤,但输入错误的用户名或密码,并验证是否提示错误信息。

3. 示例代码

以下是一个集成到Playwright的示例代码:

import { expect }from"@playwright/test"; import{ test }from"./fixture"; test.beforeEach(async({ page })=>{ page.setViewportSize({width:400,height:905}); await page.goto("https://www.ebay.com"); await page.waitForLoadState("networkidle");} ); test("search headphone on ebay",async({ ai, aiQuery, aiAssert })=>{ // 输入关键字,执行搜索 // 注:尽管这是一个英文页面,你也可以用中文指令控制它 await ai('在搜索框输入 "Headphones" ,敲回车'); // 找到列表里耳机相关的信息 const items =awaitaiQuery( '{itemTitle: string, price: Number}[], 找到列表里的商品标题和价格' );

4. 可视化报告与调试

运行测试后,Midscene.js会生成一个可视化报告和调试Playground。你可以通过报告查看测试的详细步骤和结果,包括每个步骤的查询(Query)、计划(Planning)和动作(Actions)。如果测试失败,你可以在Playground中重新运行Prompt并调试,以便快速定位问题并修复。

Midscene.js的资源汇总

项目官网:

https://midscenejs.com/GitHub

仓库:

https://github.com/web-infra-dev/midscene

快速体验 Chrome 扩展:

https://midscenejs.com/quick-experience.html

API 参考文档:

https://midscenejs.com/api.html

YAML 脚本自动化:

https://midscenejs.com/automate-with-scripts-in-yaml.html

Puppeteer 集成:

https://midscenejs.com/integrate-with-puppeteer.html

Playwright 集成:

https://midscenejs.com/integrate-with-playwright.html

自定义模型和提供者:

https://midscenejs.com/model-provider.html

好了,今天的分享就到这里了,如果你也对AI技术感兴趣,不妨去试试吧!

http://www.rkmt.cn/news/1475546.html

相关文章:

  • 2026年6月央国企培训公司推荐,国企招聘考试培训/央国企考试题库实训/应届生央国企上岸培训,央国企培训公司哪家强 - 品牌推荐师
  • 降AI率工具红黑榜:实测3款热门工具,揭露降AI真实效果与隐藏坑点,文末附方法
  • 2026年6月份采购钢筋网片国内的建筑网片源头厂家哪家靠谱 - GrowthUME
  • Qoder Background — 为 Qoder IDE 打造的专属背景图插件
  • 2026年武汉软考中级试听课怎么申请?直播网课和报考指导 - 众智商学院职业教育
  • 实战应用:基于快马AI构建企业级域名灾备与应急升级系统
  • 【信息科学与工程学】【物理/化学科学和工程技术】知识体系081 磁学02
  • STM32H743 HAL版SD卡读写工程包:含时钟配置、DMA传输与实测hex文件
  • 2026年 净化空调生产工厂:高效节能/无尘车间/净化中央空调系统,医用级洁净技术与智慧温控有实力的供应商 - 品牌企业推荐师(官方)
  • 2026年地下水位监测设备厂家排行榜与选型指南 - 王工聊地下水监测
  • 答疑解惑|Uboot阶段访问某个地址导致系统挂死(DE25-Nano开发板)(地址对齐)
  • 如何用Untrunc恢复损坏视频文件:从原理到实践的完整指南
  • 杭州黄金回收实地体验对比!真实交易感受差别很大 - 奢侈品回收评测
  • rag的图文多模态
  • CSDN AI数据看板能否查关键词排名?实测5类API接口+4层权限验证后给出 definitive 答案
  • 基于LabVIEW的虚拟示波器:低成本实现信号采集与数字滤波
  • 不同情况怎么卖黄金?杭州各类人群黄金变现适配指南 - 奢侈品回收评测
  • 【项目博客】系统核心功能模块开发
  • 2026年AI写作辅助软件深度评测:6款工具全能表现得分排名
  • BugKu CTF 眼见非实
  • 2026年一键生成论文工具实测排行,哪款真正适合一站式撰稿?
  • 2026年好用的AI论文工具推荐
  • Windows CMD与Powershell常用命令
  • AI分发后单平台撤回成功率骤降42%?——基于137个真实案例的CSDN 2024 Q2分发引擎变更影响分析
  • 快速掌握OpenRocket:免费火箭设计仿真软件的完整指南
  • Pytest实战包:含登录验证与API接口测试的完整可运行工程
  • 你的KEGG气泡图还缺什么?试试这个能展示具体基因的桑吉气泡图(附在线工具链接)
  • 不止于ScanNet:盘点5大主流RGB-D数据集,为你的3D视觉项目选对“燃料”
  • 新手福音:借助快马平台理解cc switch,从零到一实现角色控制切换
  • 2026年邯郸装修公司推荐榜单:奶油风/新中式/法式/意式轻奢/现代简约风格深度评测+避坑指南 - 品牌企业推荐师(官方)