AI+playwright+robotframework实现AI大模型驱动的web UI自动化测试

文章目录


前言

前些日子将团队内的UI自动化完成了重构,由之前使用的selenium的迁移到了新生的工具playwright。 在AI大模型的加持下,脚本质量稳定和编写效率上得到了明显提升。刚刚发了一个关于AI 编写自动化接口测试的博客,看起来反响不错,所以又写了这篇文章与大家分享。本文从playwright与selenium 对比出发,尽量用简单语言来描述,一篇文章不太可能教会你如何去写,更多的是思路与设计的分享


一、playwright与selenium 对比

关于对比,之前有博主总结的蛮好,直接引用了 Playwright 与Selenium对比。我稍微总结一下,便于理解,从原理上对比

  • selenium 使用“代理”webdriver 协议来统一接口对接不同厂家的浏览器
  • playwright直接和各个浏览器原生底层调试协议来通信,比如CDP(Chrome Devtools Protocol)

从原理上对比不难看出,selenium其实是在众多浏览器中采用“套一层”去解决自动化问题的,那么浏览器很多原生的底层数据selenium根本无法实现,比如网络请求参数、控制台信息等等。而且执行速度上也天然的没有playwright快。在AI时代,个人感觉因为selenium底层原理,导致目前相关的AI应用难有明显的成果,之前我也搜索了很多,selenium作为老牌工具在AI上的火花好像还没有诞生。反观playwright,结合AI的应用有很多亮点之处,所以近期在团队内部已经将驱动UI的底层重构,切换为playwright。

二、AI-playwright MCP

那么如何让AI与web自动化有效的结合,并带来效率、准确度上的提升呢。其实我另一篇博客利用AI+ MCP让AI模型与业务数据完美结合,自动编写高质量的自动化测试脚本也提到过类似的解决方式,也就是利用MCP,至于什么是MCP本文不再赘述。让AI模型分析页面的dom元素。 利用MCP来驱动浏览器,告诉AI模型记住页面交互的细节,它会抓取页面的情况并帮助你分析页面的元素结构和交互的过程。那么有了这些源数据以后,它会很好帮助你编写UI自动化测试,如果你之前有很好的代码结构它会让你在编写脚本的过程中减轻很多的工作量。

至于哪个模型能力最强等等话题。在现在各种LLM百花齐放,各路追赶的情况下。对于第一批梯队的大模型,我觉得对于普通人来说差异不大。 当然还是有差距的,建议喜欢哪个,用哪个顺手就用哪个好了。

AI模型也会犯错,而且会犯很多错,还有可能在跑偏的路上一直带歪你,所以如果利用好AI也是门学问。目前AI发展的情况,个人建议记住一个原则一定是AI辅助,半自动档位配合你工作,不要偷懒不去reviewAI生成的代码,有错误必须反馈;积累好有效的prompt;在AI生成的代码毫无逻辑下,立即停止,手动coding教会它如何去写;在AI生成代码很复杂的情况下,手动拆分模式加入合理设计模型,这样会更高效的协助你coding;

demo 来演示一下
如何安装playwright MCP 请参考node 环境的MCP Server安装
其实我也调研过目前市面上一些比较火的AI测试工具如TestCraft、Testim.ai 、applitools 等等,封闭式的测试用例管理和编写方面,封装和封闭性太强了,而且收费,我觉得很难适合大多数业务的需求。下面使用一个demo来演示一下如何使用playwright MCP 。

在这里插入图片描述


在这里插入图片描述


OK 让我们试运行一下生成的脚本看看

在这里插入图片描述


完美运行!!! 在实际业务中还是要修改的,demo演示的是AI 分析页面并输出脚本的能力,大家可以举一反三。

三、Playwright封装设计建议

分层设计思想的指导下,考虑到可维护性和可扩展性等,主要的封装思路如下,供参考:

  • playwright 提供了原生操作浏览器的能力,比如点击click、输入input等等。那么基于底层封装一个你们业务的playwright即 XxxPlayWright。
  • 在XxxPlayWright 基础之上,将也代码组件化,因为每个公司的业务都不一样,大多数的UI控件其实都是DIY过的,所以基于XxxPlayWright基础上,可以将操作告警框、下拉框等组件的代码模块化,可以考虑使用Mixin 等结构型的设计模式。
  • 基于模块组件化的代码,封装业务关键字层,提供业务的UI操作能力
  • case 上层只调用UI业务代码关键字。

robotframerwork-browser 介绍

博主使用的自动化测试框架是robotframework,所以针对RF来简单介绍一下相关的知识,如果使用pytest的,其实原理类似。
使用的自动化测试框架一直是robotframwork,所以我是基于robot官方的库再二次封装一下,简单介绍一下robotframework-browser的特性。如果你使用原生的playwright可以忽略这部分内容
Browser library powered by Playwright。 关键点:new browser 、new page 等无需关心资源清理问题,RF框架可以自动清理,确保资源的隔离。 自动关联已经存在的资源和自动启动需要的资源。
RF-browser 文档

安装
Only Python 3.9 or newer is supported. From Node side 18, 20 and 22 LTS versions are supported.

  1. Install node.js e.g. from https://nodejs.org/en/download/
  2. Update pip pip install -U pip to ensure latest version is used
  3. Install robotframework-browser from the commandline: pip install robotframework-browser
  4. Install the node dependencies: run rfbrowser init in your shell
  • if rfbrowser is not found, try python -m Browser.entry init
    这里需要注意的是,playwright不像selenium那样需要单独安装驱动和驱动对应的浏览器,playwright提供了自动安装的方式。我这里使用了robot的playwright库,所以使用了rfbrowser init 进行安装,如果你使用原生playwright,它也提供了类似的能力。

Read more

【无人机路径规划】基于粒子群算法PSO融合动态窗口法DWA的无人机三维动态避障路径规划研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭:行百里者,半于九十。 📋📋📋本文内容如下:🎁🎁🎁  ⛳️赠与读者 👨‍💻做科研,涉及到一个深在的思想系统,需要科研者逻辑缜密,踏实认真,但是不能只是努力,很多时候借力比努力更重要,然后还要有仰望星空的创新点和启发点。建议读者按目录次序逐一浏览,免得骤然跌入幽暗的迷宫找不到来时的路,它不足为你揭示全部问题的答案,但若能解答你胸中升起的一朵朵疑云,也未尝不会酿成晚霞斑斓的别一番景致,万一它给你带来了一场精神世界的苦雨,那就借机洗刷一下原来存放在那儿的“躺平”上的尘埃吧。      或许,雨过云收,神驰的天地更清朗.......🔎🔎🔎 💥第一部分——内容介绍 基于PSO-DWA的无人机三维动态避障路径规划研究 摘要:本文聚焦于无人机在三维复杂环境中的动态避障路径规划问题,提出了一种融合粒子群算法(PSO)与动态窗口法(DWA)的PSO-DWA混合算法。该算法首先利用

如何快速掌握Stable Diffusion数据集标签编辑器:新手完整指南

如何快速掌握Stable Diffusion数据集标签编辑器:新手完整指南 【免费下载链接】stable-diffusion-webui-dataset-tag-editorExtension to edit dataset captions for SD web UI by AUTOMATIC1111 项目地址: https://gitcode.com/gh_mirrors/st/stable-diffusion-webui-dataset-tag-editor Stable Diffusion WebUI Dataset Tag Editor是AUTOMATIC1111 WebUI的扩展工具,专门用于高效管理和编辑图像数据集的标签信息。无论你是AI绘画爱好者还是专业的数据标注人员,这个工具都能显著提升你的标签编辑效率。 🔥 核心功能亮点 智能标签识别系统 标签编辑器集成了强大的自动识别功能,能够快速为图像生成准确的描述标签。通过[scripts/dataset_tag_editor/interrogators/]目录下的多种识别器,包括BLIP2、Git Large等

视频生成器是机器人策略

视频生成器是机器人策略

25年8月来自哥伦比亚大学和TRI的论文“Video Generators are Robot Policies”。 尽管灵巧操作取得了巨大进展,但当前的视觉运动策略仍然受到两大挑战的根本制约:一是难以在感知或行为分布变化的情况下进行泛化;二是其性能受限于人类演示数据的大小。本文利用视频生成作为机器人策略学习的代理(proxy),以同时解决这两个限制。视频策略(Video Policy)框架,是一个结合视频和动作生成的模块化框架,可以进行端到端的训练。结果表明,学习生成机器人行为视频能够以最少的演示数据提取策略,从而显著提高鲁棒性和样本效率。该方法在仿真和真实世界中均展现出对未见过的物体、背景和任务的强大泛化能力。任务的成功与生成的视频密切相关,无动作的视频数据对于泛化到新任务至关重要。通过利用大规模视频生成模型,实现比传统行为克隆(BC)更优异的性能。 如图所示,视频策略(Video Policy)模型展现这一过程。只要视频生成模型能够合成准确的机器人行为视频,那么经过训练的解码器只需极少量的演示数据即可学习将视频映射到机器人可以直接执行的动作。值得注意的是,一个小型解码器即可被

VibeVoice Pro多场景落地:AR眼镜语音导航+实时翻译双模输出

VibeVoice Pro多场景落地:AR眼镜语音导航+实时翻译双模输出 1. 引言:当AR眼镜“开口说话” 想象一下,你戴着一副AR眼镜走在陌生的城市街头。眼前浮现出清晰的导航箭头,耳边同时响起一个亲切的声音:“前方100米路口右转,您将看到一家咖啡馆。” 更神奇的是,当你路过一家法式面包店,橱窗里的法文菜单被实时翻译成中文,并以同样的声音念给你听。 这不再是科幻电影的场景,而是正在发生的技术融合。实现这一切的关键,在于一个能“即时开口说话”的语音引擎。传统语音合成技术有个明显的短板:它需要把一整段文字全部处理完,才能开始播放声音。这就好比你要等厨师把整道菜做完才能尝第一口,体验上总感觉慢半拍。 而VibeVoice Pro的出现,彻底改变了这个局面。它就像一个“边炒菜边让你尝”的智能厨师,实现了音素级的流式处理。简单来说,它不需要等整句话的文字都处理完,而是看到第一个字就开始准备声音,让语音输出几乎与文字输入同步。这种“零延迟”的特性,正是AR眼镜这类实时交互设备最需要的核心能力。 本文将带你深入探索,如何将VibeVoice Pro这款零延迟流式音频引擎,实际应用到A