Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >推荐一款最新开源,基于AI人工智能UI自动化测试工具!支持自然语言编写脚本!

推荐一款最新开源,基于AI人工智能UI自动化测试工具!支持自然语言编写脚本!

作者头像
测试开发技术
发布于 2025-02-25 08:10:12
发布于 2025-02-25 08:10:12
834011
代码可运行
举报
文章被收录于专栏:测试开发技术测试开发技术
运行总次数:11
代码可运行

随着互联网技术的飞速发展,Web应用越来越普及,前端页面也越来越复杂。为了确保产品质量,UI自动化测试成为了开发过程中不可或缺的一环。然而,传统的UI自动化测试工具往往存在学习成本高、维护困难等问题。特别是UI 自动化脚本里往往到处都是选择器,比如 #ids、data-test、.selectors。在需要重构的时候,这可能会让人感到非常头疼。

今天,我们将为您推荐一款基于AI人工智能的开源UI自动化测试工具——Midscene,让您轻松应对UI自动化测试挑战。

1、Midscene介绍

Midscene.js 是一款由 web-infra-dev开发的开源 AI 驱动的自动化 SDK。其核心功能是能够让测试人员使用自然语言来控制页面、执行断言以及提取 JSON 格式的数据。这种以自然语言为交互方式的设计,极大地降低了自动化测试的门槛,即使是非专业编程人员也能够较为轻松地开展 UI 自动化测试工作。

Midscene.js 采用了多模态大语言模型(LLM),能够直观地“理解”你的用户界面并执行必要的操作。你只需描述交互步骤或期望的数据格式,AI 就能为你完成任务。

默认选择的是 OpenAI GPT-4o 作为模型,你也可以自定义为其他多模态模型。

2、核心特性

1、自然语言交互:

  • Midscene.js允许用户通过自然语言描述测试步骤,工具将自动规划并控制用户界面。这种交互方式大大降低了编写测试脚本的难度,提高了测试脚本的可读性和可维护性。

2、理解UI,JSON格式回答:

  • 用户只需提供所需数据的格式提示,Midscene.js即可返回以JSON格式组织的预期响应。这使得数据提取和验证过程更加直观和高效。

3、直观断言:

  • 用户可以用自然语言进行断言,Midscene.js将基于AI理解执行这些断言。这减少了编写复杂断言逻辑的需求,提高了测试的准确性和可靠性。

4、无需定制训练的LLM:

  • Midscene.js支持使用公共的多模态LLM(如GPT-4等),无需进行任何定制训练。这降低了使用门槛,使得更多开发者能够轻松上手这款工具。

5、可视化报告:

  • Midscene.js提供了可视化报告文件,用户可以轻松理解和调试整个测试过程。这有助于快速定位问题,提高测试效率。

3、技术实现与架构

1、语言构成

Midscene 的代码主要由 HTML、TypeScript、MDX、Less和 JavaScript等语言编写。这种多语言的组合构建了一个功能丰富且灵活的测试工具框架。其中,TypeScript 的使用为代码提供了强类型检查,有助于提高代码的质量和可维护性;HTML 用于构建相关的页面结构(可能用于测试页面的模拟或展示测试结果等方面);MDX 和 Less 则在文档编写、样式处理等方面发挥作用;JavaScript 作为前端开发的重要语言,也在一些交互逻辑处理等环节起到补充作用。

2、AI 驱动机制

Midscene.js基于多模态AI技术构建,通过AI agent实现自然语言控制页面、页面信息提取和断言页面状态等功能。它采用了多种工程手段,如AI结果缓存、AI任务报告等,以提升执行速度和中间透明化。

此外,Midscene.js还支持丰富的API接口,方便开发者进行自定义扩展和集成。

以下是 Midscene.js 的一个介绍视频

其内部采用了先进的 AI 技术来理解自然语言指令并转化为实际的自动化测试操作。它可能基于自然语言处理(NLP)模型来解析测试人员输入的自然语言文本,识别其中的操作意图和目标元素等关键信息。然后,通过与底层的自动化测试框架进行交互,将这些解析后的指令映射为具体的页面操作代码,如使用 PlaywrightPuppeteer 等常见的自动化测试库来实现对浏览器页面的控制和交互。

4、安装与使用

如果你想要使用Midscene中的核心能力,有多种方式,可以安装浏览器插件 开始快速体验。插件里可以用自然语言与任意网页联动,调用交互、提取、断言三种接口,无需搭建代码项目。

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

  • 使用 YAML 格式的自动化脚本
  • 集成到 Puppeteer
  • 集成到 Playwright

Midscene一共有三种关键方法:交互(.ai, .aiAction), 提取 (.aiQuery), 断言 (.aiAssert)。

  • 用 .ai方法描述步骤并执行交互
  • 用 .aiQuery 从 UI 中“理解”并提取数据,返回值是 JSON 格式,你可以尽情描述想要的数据结构
  • 用 .aiAssert 来执行断言

举例:

代码语言:javascript
代码运行次数:7
运行
AI代码解释
复制

// 👀 输入关键字,执行搜索
// 注:尽管这是一个英文页面,你也可以用中文指令控制它
await ai('在搜索框输入 "Headphones" ,敲回车');

// 👀 找到列表里耳机相关的信息
const items = await aiQuery(
  '{itemTitle: string, price: Number}[], 找到列表里的商品标题和价格'
);

console.log("headphones in stock", items);

4.1 通过 Chrome 插件快速体验

前往 Chrome 扩展商店安装 Midscene 扩展:Midscene启动扩展(可能默认是折叠的),通过粘贴 Key=Value 格式配置插件环境:

代码语言:javascript
代码运行次数:2
运行
AI代码解释
复制

OPENAI_API_KEY="sk-replace-by-your-own"

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

4.2 使用 YAML 格式的自动化脚本

在大多数情况下,开发者编写自动化脚本只是为了执行一些冒烟测试,比如检查某些内容是否出现,或者验证某个关键用户路径是否可用。在这种情况下,维护一个大型测试项目会显得毫无必要。

⁠Midscene 提供了一种基于 .yaml 文件的自动化测试方法,这有助于你专注于脚本本身,而不是测试框架。以此,任何团队内的成员都可以编写自动化脚本,而无需学习任何 API。

1、编写一个名为 bing-search.yaml 的文件。

代码语言:javascript
代码运行次数:2
运行
AI代码解释
复制

target:
  url: https://www.bing.com

tasks:
  - name: 搜索天气
    flow:
      - ai: 搜索 "今日天气"
      - sleep: 3000

  - name: 检查结果
    flow:
      - aiAssert: 结果中展示了天气信息

2、配置 OpenAI API Key

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制

# 更新为你自己的 Key

export OPENAI_API_KEY="sk-abcdefghijklmnopqrstuvwxyz"

或使用 .env 文件存储配置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制

.env
OPENAI_API_KEY="sk-abcdefghijklmnopqrstuvwxyz"

3、全局安装 @midscene/cli

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制

npm i -g @midscene/cli
# 或在项目中安装
npm i @midscene/cli --save-dev

4、运行脚本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制

midscene ./bing-search.yaml
# 或者如果你在项目中安装了 midscene
npx midscene ./bing-search.yaml

你应该会看到脚本的执行进度和可视化运行报告文件。

4.3 集成到 Playwright

Playwright 是由微软开发的一个开源自动化库,主要用于对网络应用程序进行端到端测试(end-to-end test)和网页抓取。

这里我们假设你已经拥有一个集成了 Playwright 的仓库。

1、配置 OpenAI API Key

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制

# 更新为你自己的 Key
export OPENAI_API_KEY="sk-abcdefghijklmnopqrstuvwxyz"

2、新增依赖

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制

npm install @midscene/web --save-dev

3、更新配置文件,把下方代码保存为 ./e2e/fixture.ts;

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制

import { test as base } from '@playwright/test';
import type { PlayWrightAiFixtureType } from '@midscene/web/playwright';
import { PlaywrightAiFixture } from '@midscene/web/playwright';

export const test = base.extend<PlayWrightAiFixtureType>(PlaywrightAiFixture());

4、编写测试用例,例如下方代码,保存为 ./e2e/ebay-search.spec.ts

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制

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 = await aiQuery(
    '{itemTitle: string, price: Number}[], 找到列表里的商品标题和价格'
  );

  console.log("headphones in stock", items);
  expect(items?.length).toBeGreaterThan(0);

  // 👀 用 AI 断言
  await aiAssert("界面左侧有类目筛选功能");
});

5、运行测试用例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制

npx playwright test ./e2e/ebay-search.spec.ts

6、查看测试报告 当上面的命令执行成功后,会在控制台输出:Midscene - report file updated: ./current_cwd/midscene_run/report/some_id.html,通过浏览器打开该文件即可看到报告。

5、小结

Midscene作为一款开源的基于 AI 人工智能的 UI 自动化测试工具,在简化测试流程、提高测试效率和降低测试门槛等方面有着显著的优势。它为软件测试人员提供了一种全新的测试手段,尤其适用于快速迭代开发的项目和团队中测试资源相对有限的情况。然而,如同任何工具一样,它也有其自身的局限性,在实际使用过程中需要测试人员根据具体的项目需求和场景进行合理的评估和应用。

但总体而言,Midscene 无疑是 UI 自动化测试领域中一颗极具潜力的新星,值得广大测试人员和开发团队关注与尝试。

项目地址:https://github.com/web-infra-dev/midscene

使用文档:https://midscenejs.com/zh/

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

另,对AI感兴趣的读者,欢迎加入狂师新建的知识星球:「DeepSeek创智研习社」,专注于AI领域,目前免费对外开放,欢迎在研究或在实践的你,一起交流共创,添加作者微信762357658,备注【加入知识星球】或公众号后台回复「AI」邀请加入。

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

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
专为 Claude Code 设计的基于 YAML 的 Playwright MCP自动化测试
专为 Claude Code 和 Playwright MCP 打造的 YAML 配置如何改变了我们的测试工作流程,让自动化测试变得人人可用
terryso
2025/06/20
860
必看!2025 年颠覆测试行业的 10 大 AI 自动化测试工具/平台(上篇)
各位看官,等着急了吧,之前有粉丝后台留言,想了解学习一下,AI这么火爆,那市面上AI与自动化测试结合起来的的工具/平台有哪些值得学习的。
测试开发技术
2025/03/29
8441
必看!2025 年颠覆测试行业的 10 大 AI 自动化测试工具/平台(上篇)
惊!Midscene.js:一款AI 驱动的 UI 自动化测试利器,小白也能秒上手!
在软件开发测试领域,UI自动化测试一直是我们的“心头大患”。传统测试工具依赖繁琐的元素定位(如CSS选择器、XPath),一旦页面结构变化,脚本就可能失效;复杂交互场景(如动态加载、多步骤验证)需要编写大量代码,维护成本高昂;而数据抓取、性能监控等场景更是让测试人员苦不堪言。
测试开发技术
2025/04/18
1K0
惊!Midscene.js:一款AI 驱动的 UI 自动化测试利器,小白也能秒上手!
Midscene.js - AI驱动,轻松实现UI自动化
该技术正从“辅助工具”进化为‌质量保障核心决策中枢‌,推动软件交付从“人适应工具”到“工具理解意图”的范式重构。
wangmcn
2025/02/25
1.5K1
Midscene.js - AI驱动,轻松实现UI自动化
9个用于测试自动化的最佳AI测试工具(2024)
选择一款优质的基于生成式AI人工智能的测试工具能够确保测试过程的准确性和效率,从而加速整个软件测试周期。相反,设计不佳的测试工具可能无法发现错误,并可能存在安全问题。它们可能产生误报或漏报,误导开发与测试团队,导致潜在的软件故障。
wangmcn
2024/07/08
11.8K0
9个用于测试自动化的最佳AI测试工具(2024)
震惊!推荐一款AI驱动的自动化测试神器:TestCraft!
在当今快速迭代的软件开发环境中,自动化测试已经成为确保软件质量的重要一环。然而,传统的手动录制和编写测试脚本的方式不仅耗时耗力,还难以跟上敏捷开发的节奏。
测试开发技术
2024/11/28
9280
震惊!推荐一款AI驱动的自动化测试神器:TestCraft!
MCP-Playwright:AI自动化神器,一款超级好用的自动化测试框架!
在软件开发与测试领域,自动化测试早已成为提升效率、保障质量的核心工具。然而,传统自动化测试框架往往面临代码编写繁琐、跨工具协作困难、操作复杂等痛点。
测试开发技术
2025/04/30
2.6K0
MCP-Playwright:AI自动化神器,一款超级好用的自动化测试框架!
自动化测试工具-Playwright(快速上手)
一提到 UI 自动化测试工具,首要推荐的必属是 Selenium,其优势在于跨平台、跨语言、完全开源、对商业用户也没有任何限制、支持分布式、拥有成熟的社区与学习文档等,目前已经迭代更新到 4 版本。那么缺点也有,比如环境配置、加载效率低、运行速度慢等。
wangmcn
2022/07/26
3.4K0
自动化测试工具-Playwright(快速上手)
Windows桌面自动化测试工具:WinAppDriver
大家好,今天给大家介绍一款Windows桌面自动化测试工具:WinAppDriver。
测试开发技术
2023/09/27
4.4K0
Windows桌面自动化测试工具:WinAppDriver
又一款国产自动化测试平台,开源了!
“时间就是金钱,效率就是生命”,在当下的社会里不仅我们的生活节奏变得越来越快,软件研发上线的节奏也是如此。在如此快节奏的软件开发环境中,高质量的软件测试变得尤为重要。
测试开发技术
2023/08/21
1K0
又一款国产自动化测试平台,开源了!
字节开源,让 AI 给你写 UI 自动化测试,更愉悦的 UI 自动化体验
Midscene.js 是一个由 AI 驱动的浏览器自动化 SDK,旨在通过 Chrome 扩展、JavaScript 和 YAML 脚本实现自动化操作。这个项目的目标是简化用户界面控制、数据提取和断言操作,使开发者能够以自然语言描述操作步骤,从而实现自动化。
大侠之运维
2025/01/17
7000
推荐几款常用Web自动化测试神器!
Web自动化测试在保证质量、提升效率、软件开发加速迭代上起到关键作用,它已经成为现代软件测试中不可或缺的一部分,今天给大家介绍推荐几款常用的Web自动化测试工具。
测试开发技术
2023/09/11
4.9K0
推荐几款常用Web自动化测试神器!
Playwright for .Net:自动化测试工具快速上手与实用技巧
Microsoft.Playwright 是由微软开发的开源自动化测试工具,支持多种编程语言(如 C#、JavaScript、Python 等)和主流浏览器(Chromium、Firefox、WebKit)。它通过统一的 API 提供跨浏览器的自动化能力,广泛应用于 Web 应用的端到端测试、爬虫开发和自动化任务,支持无头模式、设备仿真、截图等功能,帮助开发者高效实现自动化测试和开发任务。
郑子铭
2025/03/13
2060
Playwright for .Net:自动化测试工具快速上手与实用技巧
推荐一款Python开源的AI自动化工具:Browser Use
在当今数字化时代,自动化技术的发展日新月异,Python 凭借其简洁的语法和丰富的库资源,成为众多开发者实现自动化任务的首选语言。
测试开发技术
2025/01/14
8.6K0
推荐一款Python开源的AI自动化工具:Browser Use
推荐五大AI +MCP自动化测试工具!
在当今快速发展的软件行业,自动化测试已成为提升开发效率和产品质量的关键。今天,我们将给大家推荐五大MCP自动化测试工具,助你在自动化测试领域更进一步。
测试开发技术
2025/06/19
3930
推荐五大AI +MCP自动化测试工具!
data-testid 如何引领 UI 自动化变革
在前端测试领域,data-testid 堪称测试工程师的"定海神针",它能有效提升测试代码的稳定性,让自动化测试不再受UI频繁变更的影响。想要真正发挥这个工具的威力,需要从项目规划到具体实践步步为营。下面我们就来庖丁解牛,详细拆解实施过程。
FunTester
2025/04/02
1320
data-testid 如何引领 UI 自动化变革
Katalon Studio一款免费的自动化测试工具
自动化测试是软件测试领域一直比较火热的话题。这些年来,大家都在追求简洁、易用、稳定的方向。有一些工具能够有助于创建简单易行的脚本,但是使用起来却很麻烦。而其他相对简单一些的工具,在测试过程中又总会出现一些问题。所以在选择使用何种测试工具的时候,我们总是得此失彼。一款好的自动化测试工具可以解决以上基本问题,更何况这款工具功能强大开源免费。那么,你何乐而不为呢?
Altumn
2019/10/21
4.1K0
Katalon Studio一款免费的自动化测试工具
自动化测试框架之战:Selenium、Cypress 与 Playwright 大比拼!
随着软件行业的快速发展,自动化测试已经成为提高软件质量、缩短发布周期的重要手段。随着技术的不断进步,市场上涌现出了众多自动化测试框架,其中Selenium、Cypress和Playwright以其各自的优势脱颖而出,成为测试开发者们的热门选择。
测试开发技术
2024/12/31
1K0
自动化测试框架之战:Selenium、Cypress 与 Playwright 大比拼!
干货 | 基于 BDD 理念的 UI 自动化测试在携程度假的应用
Leo Li,携程高级软件工程师,负责度假 BDD-Test UI 自动化测试框架的研发、维护和迭代等工作。
携程技术
2020/06/24
2.9K0
干货 | 基于 BDD 理念的 UI 自动化测试在携程度假的应用
自动化测试工具-Taiko
Web自动化测试工具从刚开始接触的QTP(UFT),到现在绝大多数公司或项目都在使用的Selenium,以及之后有很大发展前景的Cypress。可以看出自动化测试工具越来越丰富了,当然这里所提到的都是比较有代表性的,市面上的优秀工具远远不止这三个。
wangmcn
2022/07/26
1.4K0
自动化测试工具-Taiko
推荐阅读
相关推荐
专为 Claude Code 设计的基于 YAML 的 Playwright MCP自动化测试
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档