UI自动化测试的革新,新一代AI工具MidScene.js实测!

article/2025/8/27 12:27:03

前言

AI已经越来越深入地走入我们的实际工作,在软件测试领域,和AI相关的新测试工具、方法也层出不穷。在之前我们介绍过结合 mcp server 实现 AI 驱动测试的案例,本文我们将介绍一个近期崭露头角的国产AI测试工具 Midscene.js

请添加图片描述

Midscene.js简介

MidScene.js 是由字节跳动 web-infra 团队推出的一个开源 ai 自动化测试工具,基于多模态大模型,通过针对页面的智能视觉解析来理解我们的自然语言指令,并进一步完成自动化操作。可以显著降低编写自动化测试脚本的复杂性,并更好适应页面结构和元素的变化,使自动化测试脚本的稳定性也有较大提升。

官网地址: https://midscenejs.com/

Midscene工作原理

和之前我们介绍 mcp server 时,利用通用大模型来理解页面并调用本地工具能力进行扩展不同,Midscene使用多模态大模型如 ChatGPT-4oqwen-vl, 字节的 UI-TARS等,也就是能支持视觉输入的大模型来理解页面,更接近我们进行实际功能测试的场景。

MidScene会首先获取页面当前截图和具体的页面结构信息,再和用户指令一起提交给大模型,由大模型判断出需要操作的页面控件位置,并进行下一步动作。

以在待办页面任务框中输入 “今天学习Playwright”为例:

请添加图片描述

MidScene的内部操作大致如下:

  1. 获取用户指令 “在任务框输入 学习Playwright,按回车键”
  2. MidScene截图,获取页面整体元素结构
  3. 提交大模型完成页面特征提取
  4. 获取大模型分析结果,确定下一步操作类型(Tap)和控件的具体位置(坐标)
  5. 规划下一步操作
  6. 完成执行

大模型的选择

从以上Midscene的原理分析,MidScene 主要依赖多模态大模型的如下能力

  1. 理解截图和 规划 操作步骤的能力。
  2. 给出指定元素的坐标信息(Visual Grounding)的能力。

支持以上能力的大模型,目前官网提供的支持包括如下几种:

  • OPENAI GPT-4o
  • 阿里 Qwen-2.5-VL
  • 字节 UI-TARS
  • 字节火山引擎 Doubao-1.5-thinking-vision-pro
  • Google Gemini-2.5-Pro

从工作原理上,需要提供给大模型包括截图和页面结构等信息,对大模型的Token消耗还是比较可观。从官方的评估,每个操作通常都要至少数千Token的消耗。而其中性价比较好的大模型,官方推荐的QWen-VL。

Chrome插件方式使用

零代码的Chrome插件方式,可以帮助我们快速理解MidScene的应用。

通过Chrome的插件商店可以直接安装 Midscene插件

请添加图片描述

配置大模型

启用插件后,需要配置使用的大模型。这里我们使用对token消耗比较少的阿里千问多模态模型qwen-vl-max-latest, 通过阿里云百炼平台申请对应的API Key即可,现在申请还赠送100W Token额度。

请添加图片描述

完成申请后,在插件的模型配置界面中配置对应的大模型参数,qwen模型需要配置以下四个参数

OPENAI_BASE_URL="https://dashscope.aliyuncs.com/compatible-mode/v1" 
OPENAI_API_KEY="sk- your API KEY"
MIDSCENE_MODEL_NAME="qwen-vl-max-latest"
MIDSCENE_USE_QWEN_VL=1 

操作浏览器

接下来就可以在插件界面中体验Midscene对浏览器的操控了,这里主要支持四种行为:

  • Action:对应AI自动规划操作,Midscene会自动规划操作步骤并执行。更智能,但速度较慢,效果依赖大模型的质量。
  • Query:直接从 UI 提取数据,并借助多模态 AI 的推理能力,实现智能提取
  • Assert:通过自然语言描述一个断言条件,让 AI 判断该条件是否为真
  • Tap:对应页面点击的即时操作,Midscene会直接执行,大模型只负责底层如元素定位等任务。效率更高,适合已确定要执行的操作时使用

我们可以用接近自然语言的AI提示词输入提示词指令,针对不同的行为模式,插件会驱动浏览器完成不同的操作,并反馈操作结果。

请添加图片描述

具体执行过程也可参见下方视频演示。

脚本集成

除了通过浏览器插件调用Midscene,更推荐的方法是通过测试框架的脚本集成Midscene能力。

通过脚本集成,同样需要配置相关模型调用参数,和插件中配置的相关变量值一样,只是需要将相关变量配置为系统环境变量

因为 Midscene 是基于JS的工具,这里的和测试框架集成,也是需要支持JS。这里以 Playwright 为例

安装

首先自然需要具备 Playwright 框架,进入项目目录,初始化并安装Playwright,然后安装Midscene


npm init playwright@latest
npm install @midscene/web --save-dev

playwright框架配置

playwright.config.ts 文件中配置框架本身的测试发现目录和测试脚本,加载环境变量以及浏览器类型,执行策略等基础配置


http://www.hkcw.cn/article/dFxcexlSlU.shtml

相关文章

什么是CVSD

CVSD(Continuous Variable Slope Delta Modulation,连续可变斜率增量调制) 是一种用于蓝牙语音通话的超低复杂度音频编码技术。它通过1比特量化实时跟踪音频信号的变化趋势,是早期蓝牙设备(HSP/HFP 1.0-1.5&#xff09…

MyBatis动态SQL

还不了解MySQL的可以看我这篇文章: MyBatis入门:快速搭建数据库操作框架 两种增删改查的方法(CRUD)-CSDN博客 动态 SQL 是Mybatis的强⼤特性之⼀,能够完成不同条件下不同的 sql 拼接 官方文档:动态 SQL_MyBatis中文网 创建相关…

分享智能技能提升6月份排考计划

中级: 6月13号考试 AIGC应用工程师(初级) 高级: 6月15号考试 人工智能应用工程师(高级) 大数据分析师(高级) AIGC应用工程师(高级) 大数据/数字技术应用工程师…

防火墙ASPF(针对应用层包过滤技术) FTP(主动模式)

1.实验拓扑 2.基础配置 IP地址配置省略 [FW1-policy-security]di th 2025-05-29 12:20:13.740 # security-policy rule name trust->dmz source-zone trust destination-zone dmz source-address 10.1.11.0 mask 255.255.255.0 destination-address 10.1.21.0 ma…

RDS PostgreSQL手动删除副本集群副本的步骤

由于PostgreSQL不支持直接删除副本集群,而是需要先将副本集群升级到主实例(区域集群),然后在逐一将写入器实例删除,然后才可以删除副本集群 查看现有的主从实例集群 将副本集群提升到区域集群 选择副本集群–>操作–>提升 提升只读副本…

矿用电控系统专用配件铜头铠装4C型护套连接器

矿用电控系统专用配件铜头铠装4C型护套连接器是矿山电气设备中不可或缺的关键组件,其设计、性能与可靠性直接关系到井下作业的安全性和生产效率。随着智能化矿山建设的推进,对连接器的技术要求日益提高,铜头铠装4C型护套连接器凭借其独特的结…

【二】9.关于pinctrl和gpio子系统

前言: 为什么要有pinctrl和gpio子系统呢?--->>>因为LZ不在想推着凯迪拉克其上班了。 1.pinctrl子系统: 因为 ST 针对 STM32MP1 提供的 Linux 系统中,其 pinctrl 配置的电气属性只能在platform 平台下被引用,…

能源领域新兴技术论坛:EMQ 实时数据引擎构建工业智能中枢

5 月 26 日,由沙特阿美亚洲公司主办的能源领域新兴技术论坛在上海顺利举行。本次论坛聚焦智能工厂、无人机与机器人、可靠性与完整性、先进材料四大技术赛道,吸引了来自全球的能源企业、技术供应商及行业专家。 作为业内知名的 MQ AI 实时数据与智能产…

NC52 有效括号序列【牛客网】

文章目录 零、原题链接一、题目描述二、测试用例三、解题思路四、参考代码 零、原题链接 NC52 有效括号序列 一、题目描述 二、测试用例 三、解题思路 基本思路:   使用栈进行括号匹配具体思路: 构建括号和数字映射,这样后面就不用写一堆…

Sqlalchemy 连mssql坑

连接失败: (pyodbc.OperationalError) (08001, [08001] [Microsoft][ODBC Driver 17 for SQL Server]SSL Provider: [error:0A00014D:SSL routines::legacy sigalg disallowed or unsupported] (-1) (SQLDriverConnect)) (Background on this error at: https://sqlalche.me/e/…

乾元通渠道商中标青海省自然灾害应急能力提升工程基层防灾项目

近日,乾元通渠道商中标青海省自然灾害应急能力提升工程基层防灾项目,乾元通作为设备厂家,为项目提供通信指挥类装备(多链路聚合设备)QYT-X1。 青岛乾元通数码科技有限公司作为国家应急产业企业,深耕于数据调…

记一次edu未授权访问漏洞

首先进入该网址是一个登录界面,查看源代码,找到js文件,发现存在js.map前端信息泄露,于是我们进行js还原。 得到前端的一些源代码,以及路由API等,我们就可以通过这个源代码,进行目录遍历&#xf…

Python----目标检测(《用于精确目标检测和语义分割的丰富特征层次结构》和R-CNN)

一、《用于精确目标检测和语义分割的丰富特征层次结构》 1.1、基本信息 原文标题:Rich feature hierarchies for accurate object detection and semantic segmentation 中文译名:用于精确目标检测与语义分割的丰富特征层次结构 版本:第5版技…

50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | Split Landing Page(拆分展示页)

📅 我们继续 50 个小项目挑战!—— SplitLandingPage 组件 仓库地址:https://github.com/SunACong/50-vue-projects 项目预览地址:https://50-vue-projects.vercel.app/ 在这篇文章中,我们将实现一个交互式的左右面板…

Dif-Fusion:第一个基于扩散模型实现的红外光与可见光图像融合的论文

1. 论文介绍 论文主要创新点:提出了第一个基于扩散模型 (Diffusion) 实现的红外光与可见光图像融合模型,但模型不止简单的依赖于 Diffusion,而是一个新颖的 two-stage 的图像融合模型。 Dif-Fusion 利用扩散模型的生成能力,直接在…

Java开发经验——阿里巴巴编码规范实践解析5

摘要 这篇文章主要介绍了阿里巴巴Java开发规范中关于安全和性能优化的实践解析。内容涵盖了配置文件密码加密、用户输入内容风控、SQL注入防护、参数有效性验证、XSS攻击防护、CSRF安全验证、文件上传安全检查、防重放机制等多个方面,通过正反示例和推荐做法&#…

如何在python3.8环境中安装pytorch

我的conda配置了两个独立环境: base环境 - 安装有Python 3.12及各类依赖包;pytorch环境 - 基于Python 3.8创建,包含特定功能包。 在Anaconda Prompt中激活您的PyTorch环境: 访问PyTorch官网历史版本页面(https://pyt…

源的企业级网络安全检测工具Prism X(棱镜X)

Prism X(棱镜X)是由yqcs团队自主研发的开源网络安全检测解决方案,专注于企业级风险自动化识别与漏洞智能探测。该工具采用轻量化架构与跨平台设计,全面兼容Windows、Linux及macOS操作系统,集成资产发现、指纹鉴别、弱口…

ADB识别手机系统弹授权框包含某段文字-并自动点击确定按钮

ADB识别手机系统弹授权框包含某段文字-并自动点击确定按钮 --蓝牙电话App自动部署 上一篇:手机打电话时将对方DTMF数字转为RFC2833发给局域网SIP坐席 下一篇:编写中。 一、前言 蓝牙电话方案中,我们提供了将手机通话的语音拦截后转发到局域…

kafka 常用知识点

文章目录 前言kafka 常用知识点1. kafka 概念2. 消息共享和广播3. 分区和副本数量奇偶数 前言 如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。   而且听说点赞的人每天的运气都不会太差&#xff0…