大数跨境
0
0

这才是AI自动化测试:AI视觉定位+多模态理解,复杂业务自动化测试稳如磐石!

这才是AI自动化测试:AI视觉定位+多模态理解,复杂业务自动化测试稳如磐石! 危网科技
2025-09-15
4
导读:别再卷Selenium了!视觉AI无需定位元素,复杂业务页面随便改也能秒级适配

这些年,电信行业的测试工程师,哪个没被UI自动化折腾过?网上营业厅、手机App,页面三天一小改、五天一大变。Selenium和Playwright脚本写得再溜,也扛不住业务频繁调整和合规要求层层加码——维护成本高、执行脆弱、动不动就崩。直到最近,我用了一款叫 Midscene 的AI驱动测试工具,才发现:原来自动化测试,还可以这么玩!

它不需要你硬啃代码,只需用自然语言告诉它:“登录电信营业厅,查一下套餐余量”,剩下的操作,AI自动规划、执行、生成报告——像对话一样简单,却可靠得让人惊喜。

今天这篇文章,就基于我刚跑通的POC,带你彻底看懂Midscene在电信复杂业务中的实战应用。如果你也在为数字化转型中的测试效率发愁,那么这次分享,可能就是你的突围之路。

一、UI自动化的两大AI技术路径

在电信行业,UI测试往往涉及网页门户(如网上营业厅)和移动App(如流量查询、套餐办理),这些场景变化快、交互复杂。基于AI的自动化方案主要沿着两个方向发展:基于DOM元素定位和基于图像理解+坐标定位。每种路径都有独特优势,我在实际项目中都试过,下面细说。

1. 基于DOM元素定位的技术路径

这种方式的核心是通过浏览器自动化工具(如Playwright或Selenium)实时获取页面的完整DOM结构,包括元素属性、URL、标题等。然后,将DOM树与用户任务描述(如“查询用户本月流量余额”)一起提交给AI模型。AI分析页面结构,理解意图,规划操作步骤,最后通过工具执行模拟点击、输入等操作。

代表工具是BrowserUse(Manus底层就用)。它适合复杂脚本编写场景,比如电信系统多标签页对比账单和套餐。但需要一定的编程能力,执行速度相对较慢,Token消耗较高。优势在于能获取元素的详细属性和层级关系,对文本内容的处理精准,比如精确提取账单数字。但在电信页面频繁变更时,维护成本高,项目中就因为DOM调整花了不少时间,如果不维护就跑失败,非常头痛。

2. 基于图像理解+坐标定位的技术路径

这个路径更接近人类的交互方式:工具截取页面截图,将截图和用户指令(如“点击查询账单按钮”)提交给多模态大模型(如GPT-4o、Qwen-VL)。AI同时分析视觉信息和DOM结构,识别元素位置,返回坐标,然后通过Playwright或Puppeteer执行操作。

Midscene就是典型代表,它更接近真实用户操作视角,对视觉变化适应性强,减少了对DOM的绝对依赖。特别适合现代电信Web应用,那些大量用动态内容和视觉元素的系统,比如App内的套餐可视化图表。我对比BrowserUse后,发现Midscene在定位动态元素时更稳,尤其在桥接模式下,能复用浏览器Cookie,避免重复登录——这在电信测试中超级实用。

BrowserUse和Midscene的对比,我总结成表格,便于大家一看就懂:

方面

BrowserUse

Midscene

优势

- 灵活性高:支持Python脚本,适合复杂任务 - 多标签管理:高效处理电信多页对比 - 自定义扩展:如保存账单到数据库

- 自然语言YAML脚本:降低门槛,适合非码农测试员 - 多模态理解:视觉+DOM,精准定位动态元素 - 可视化报告:调试套餐查询超方便

局限

- 学习成本高:需Python和Playwright - 自然语言弱:依赖代码 - 执行慢,Token高

- 复杂场景需补代码:如拖拽地图 - 无法访问Chrome原生元素:如右键菜单 - 验证码不稳:OpenAI可能拒绝

总的来说,对于电信运营商这类复杂业务系统,Midscene更实用,它让我从代码堆里解放出来,专注业务逻辑。

二、Midscene:用自然语言驱动浏览器

Midscene是一个基于AI的自动化测试平台,核心理念是让测试变得自然易用。它结合计算机视觉和大语言模型,实现自然语言驱动执行。在电信场景下,它的核心优势显而易见:

  • 支持自然语言:测试员用简单描述如“登录电信网上营业厅”或“查询本月账单”,无需复杂代码。我第一次用时,就用它模拟用户充值流程,省了半天脚本时间。

  • 多模态理解:视觉+DOM定位精准,即使页面微调,AI也能认出“流量余量”按钮。

  • 可视化报告:每个步骤有录屏、日志和截图,快速定位问题。比如测试失败时,一看报告就知道是验证码卡住了。

  • 桥接模式:复用现有浏览器会话,避免重复登录,特别适合保持电信账户状态的测试。

官网:https://midscenejs.com/zh/。我强烈推荐,从简单登录测试起步,就能感受到它的魅力。

三、快速上手:5步实现电信Web自动化测试

上手Midscene不难,我一步步带你走。以中国电信网上营业厅为例,测试登录、查询套餐余量和办理流量包。

1. 安装Chrome插件

插件安装地址:

https://chromewebstore.google.com/detail/midscene/gbldofcpkknbggpkmbdaefngejllnief

或者用crx文件拖拽安装(Chrome > 扩展 > 管理 > 拖入)。安装后,右上角图标出现,点击设置,就能配置了。这步我花了3分钟,简单得很。

2. 选择合适的大模型

电信业务页面元素多、动态强,选对模型关键。推荐:

  • Qwen-2.5-VL(阿里云):开源,专为图像识别设计,支持视觉定位,返回精确坐标。推荐72B版本,准确性和速度平衡好。相比GPT-4o,省30-50% Token,在阿里云部署费用降80%以上。高分辨率输入,够用电信高清页面。开源,能自部署,数据不外泄。

  • UI-TARS(火山引擎):专为UI自动化,开源,只用截图输入,无需DOM。基准测试顶尖,适合开放任务如“办理流量包”。用目标驱动提示如“用手机号1816365XXXX登录”,它会逐步规划。速度快,原生图像识别,和Qwen类似省Token。开源,自部署安全。

  • 硅基流动:使用Qwen/Qwen2-VL-72B-Instruct模型。在这个网站上注册,替换成你的API_KEY即可https://cloud.siliconflow.cn/i/nRDJFg4z

配置示例(插件设置或.env):

OPENAI_BASE_URL="https://api.siliconflow.cn/v1"OPENAI_API_KEY=""MIDSCENE_MODEL_NAME="Qwen/Qwen2-VL-72B-Instruct"MIDSCENE_USE_QWEN_VL = "1"

我POC中使用的是硅基流动上部署的Qwen/Qwen2-VL-72B-Instruct模型,大家可以参考上面的配置。响应快,适合实时调试电信App兼容性。

插件使用:

  • Action(AI规划任务,如登录查询);

  • Query(提取数据,如剩余流量);

  • Assert(断言,如验证余额);

  • Tap(点击)。限当前Tab,测试时超便捷。

3. 编写电信业务测试脚本

YAML是灵魂,不码代码。结构:web配置 + tasks数组。

web示例(中国电信):

web:  url: https://www.189.cn/  viewportWidth1366  viewportHeight768  waitForNetworkIdle:    timeout3000    continueOnNetworkIdleError: false  bridgeMode: newTabWithUrl

tasks步骤(每个-开头):

tasks:  - name: 登录电信网上营业厅    continueOnError: false    flow:      - aiTap: 登录按钮      - aiInput: 1816365XXXX        locate: 手机号码输入框      - aiInput: 您的密码        locate: 密码输入框      - aiTap: 获取短信验证码      - sleep: 5000      - aiInput: 123456        locate: 验证码输入框      - aiTap: 登录确认按钮      - aiWaitFor: 页面显示"我的账户"        timeout: 10000  - name: 查询套餐余量    flow:      - aiTap: 业务办理菜单      - aiTap: 套餐余量查询      - aiWaitFor: 显示套餐详情表格        timeout: 5000      - aiQuery: 提取当前套餐名称、剩余流量、剩余通话时长        name: packageInfo      - aiAssert: 页面包含"套餐余量"标题        errorMessage: 套餐余量查询失败  - name: 办理流量加油包    flow:      - aiTap: 增值业务      - aiTap: 流量包办理      - ai: 选择10元10G流量加油包      - aiWaitFor: 显示办理确认页面        timeout: 3000      - aiTap: 立即办理      - aiWaitFor: 显示办理成功提示        timeout: 5000
  • 自动规划(ai)智能但慢;

  • 即时(aiTap等)快准,一Prompt一事。

  • 缓存cacheable: true省Token。

4. 配置环境变量

YAML同级建.env:

OPENAI_BASE_URL="https://api.siliconflow.cn/v1"OPENAI_API_KEY=""MIDSCENE_MODEL_NAME="Qwen/Qwen2-VL-72B-Instruct"MIDSCENE_USE_QWEN_VL = "1"MIDSCENE_CACHE=1TEST_PHONE_NUMBER="1816365XXXX"TEST_PASSWORD="your_password"

加缓存加速重复测试。

5. 运行测试脚本

node.js安装


打开node.js官⽹,下载安装包进⾏安装,⼀切按照默认配置安装即可。

官⽹:https://nodejs.org/zh-cn

安装完成后,cmd中输⼊ node -v 出现版本号即为安装成功。

配置npm的镜像源为国内淘宝镜像地址:

npm config set registry https://registry.npmmirror.com

安装命令⾏⼯具

全局安装midscene/cli

npm i -g @midscene/cli

运行:

# 无头模式midscene ./telecom_test.yaml# 显示浏览器midscene ./telecom_test.yaml --headed# 桥接模式midscene ./telecom_test.yaml --bridge

报告在midscene_run/report,有录像和日志。我用--headed调试,桥接复用Cookie,测试已登录状态超省时。开启MIDSCENE_CACHE=1,重复测试快多了。

四、Android自动化测试同样简单

Midscene支持Android,配置JDK(java -version检查)和ADB(ANDROID_HOME环境变量,Path加platform-tools等)。连手机开启USB调试,adb devices验证。

示例(telecom_app.yaml,中国电信App余额查询):

YAML:

android:  launch: com.chinatelecom.bestpay  # 中国电信App包名tasks:  - name: 登录和余额查询    flow:      - ai: 打开中国电信APP      - aiInput: 1816365XXXX        locate: 手机号输入框      - aiInput: 密码123456        locate: 密码输入框      - aiTap: 登录按钮      - aiWaitFor: 首页加载完成      - aiTap: 查询余额      - aiAssert: 显示余额信息        errorMessage: 余额查询失败

运行同Web,加.env的ANDROID_HOME如果提示找不到。装Playground调试:npx --yes @midscene/android-playground。我在电信App充值测试中,用它模拟手势,效率高。


五、局限性及应对策略

Midscene强大,但有局限,我项目中遇到过:

  • 不支持Chrome原生元素:如文件上传对话框、右键菜单。应对:用传统input操作绕过,或JS补。

  • 无法处理复杂验证码:图形码难。应对:测试环境禁用,或用识别服务。

  • 复杂交互支持有限:拖拽、手势需代码。应对:自定义JS函数。

  • 大模型推理耗时:实时性高场景慢。应对:设超时,用缓存。

了解这些,能避坑。

六、提示词编写技巧:让AI更懂你

提示词是关键,我总结几招:

  1. 指令要具体明确:不佳:“查询账单”。推荐:“在页面顶部的查询菜单中选择'月度账单',选择2025年1月,点击查询按钮”。加细节,AI准度up。

  2. 多用即时操作提高精度:ai规划如- ai: 点击登录按钮慢;即时如- aiTap: 登录按钮快准,只定位不规划。

  3. 单一职责原则:不堆指令如- ai: 登录并查询余额然后办理套餐;分步:- aiTap: 登录按钮、- aiInput: 1816365XXXX locate: 手机号输入框、- aiTap: 查询余额。

  4. 善用断言验证结果:操作后加- ai: 完成套餐办理、- aiAssert: 页面显示办理成功提示且包含订单编号 errorMessage: 套餐办理失败。AI出错时,这步救场。

看报告分析规划/定位出错,加细节优化。积累提示词库,项目中我建了个共享文档。

七、总结

技术终究要回归于人。Midscene 这样的AI自动化工具,正悄悄改变电信测试的游戏规则——它让我们从“选择器维护师”重新变回“业务测试专家”,从重复低效中解放出来,转向更高价值的场景探索与质量洞察。

我的实践表明:仅初步使用Midscene,脚本编写效率就提升了3倍以上,维护成本大幅下降,非技术人员也能快速上手写用例。这已不仅是工具升级,更是一场测试理念的进化。

如果你也在运营商、金融、ERP或其他复杂业务领域苦于UI自动化,不妨从今天开始:

  • 安装Midscene插件,用自然语言写第一个测试脚本;

  • 从小场景验证,逐步扩展到核心业务流程;

  • 建立团队内的提示词库与最佳实践。

AI不会取代测试工程师,但会用AI的测试人,必将淘汰那些仍停留在“手工+硬编码”时代的团队。如果您有更好的想法或实践,欢迎一起探讨!也欢迎板砖!

【声明】内容源于网络
0
0
危网科技
1234
内容 141
粉丝 0
危网科技 1234
总阅读1.2k
粉丝0
内容141