自动化工具 【AI 视觉测试】基于 OmniPaser V2+Playwright 的纯视觉 UI 自动化测试

潘潘潘潘同学 · 2025年02月28日 · 最后由 潘潘潘潘同学 回复于 2025年03月05日 · 5290 次阅读

OmniPaser V2 的发布,使我对纯视觉方案做 UI 自动化测试产生了浓厚的兴趣,特别是使用 AI 来实现自然语言驱动做一些事情,但是之前使用 Browser Use 体验过 AI 来操作浏览器,发现准确率真的一言难尽,甚至直接卡死,所以还是放弃了,所以做了一个用 Excel 编排执行步骤,让 OmniPaser V2 识别屏幕数据,然后经过数据转化,驱动 Playwright 来操作,做了一个简单的版本。

OmniPaser V2 源生代码在 Github 可以找到,不过发现了好几处缺陷,所以单独把里面的模型解析方法提取了出来,运行在自己本地电脑上,使用 fastapi 做了一层转发,测试框架通过 api 进行交互。

图像识别有点慢,是因为电脑 GPU 性能、图片尺寸和图像里面内容综合导致的,相信如果是做移动端的识别,识别速度会提升几倍。

B 站效果视频链接:

代码就暂不公布了,因为不是独立的代码仓库,简单说下实现思路:
我的设备: MacbookPro M1 款 (2020) 16G+512GB 建议使用有英伟达 GPU 的电脑或服务器,苹果芯片在使用 torch 时会有一些问题,需要改 torch 版本 (2.4.0) 和代码
1、下载 OmniParser 源码: https://github.com/microsoft/OmniParser
2、源码经过测试,有一些奇奇怪怪的 Bug,特别是使用 Gradio 启动,使用几次发现有内存释放失败问题,会导致进程内存约占越大,所以建议单独把代码里面的 omniparser.py 有关的代码提取出来,然后自己写一个 fastapi 来和测试框架作交互,大体就是 api 传递识别语言和图片,api 返回识别的结构数据。
这里建议 omniparser 和测试框架分两个服务,因为 omniparser 涉及模型的加载,所以它启动的时候很慢,如果你把这部分服务扔到测试框架里面,会严重影响测试代码执行效率。
3、然后设计一个 Excel 模板,模板设计一些常用的操作,比如点击、鼠标下滚、键盘输入等等。
4、当然上一步只是最基础常用的操作,想要实现一些复杂逻辑,必须在 Excel 设计自定义脚本调用,这部分逻辑通过测试框架里面测试函数,Excel 文件设计好第几步去调用就好了
5、至于视频里面呈现的红框就很简单了,omniparser 返回了所有识别到的元素坐标和索引,你只需要通过 playwright 执行 js 脚本的方式,把这些红框插入到当前页面就行了 (不会的问 ai,这段逻辑我直接 copy ChatGPT 的代码)

共收到 8 条回复 时间 点赞

看效果 感觉还行 厉害厉害

我的电脑是 5 年前发布的 MacBook Pro M1,性能肯定比不上现在的新款电脑或服务器,这应该是图片识别慢的主要原因

代码开源,学习下😂 😂 😂

请教实现原理,OmniPaser 识别控件的坐标,playwright 再根据坐标点击?

YYUY 回复

是的,拿到坐标后进行一些键鼠操作,omniparser 识别坐标后,把元素框的位置和索引,通过 js 代码追加到页面上,就是红框里面的部分;另外有些相同的元素,可以用多个相邻元素作最近距离值或偏移坐标来实现;另外一些复杂逻辑或操作肯定不能通过点点点解决,可以在 Excel 里面设计一个自定义脚本,直接在代码里面写好逻辑,Excel 里面直接调用测试函数就好,一般来说,大部分操作都是简单的键鼠操作,有一部分需要写代码实现。

仅楼主可见
lj 回复

那不行,你得用模糊匹配去定位对应的坐标,另外我这边没有管他是什么类型的元素

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册