各位搞 Web 自动化测试的大佬们,小弟先吐个槽:
不知道大家是不是也这样,现在前端迭代快得飞起,UI 稍微一改版,之前辛辛苦苦写的自动化脚本,元素定位(Locator)就全线崩溃!
结果就是,大半天时间不是在写新 Case,全TMD在维护旧脚本,改各种 XPath、CSS Selector,人都麻了...
这活儿的痛点简直不要太多:
- 门槛高: 想让业务 QA 参与,但手写 Python 脚本的门槛直接把人挡在门外。
- 效率低: 从需求分析到脚本产出,流程又臭又长,跟不上敏捷开发。
- 维护难: (核心槽点)元素定位太"脆"了! 前端稍微换个 DIV 结构,或者改个 Class,定位就失效,脚本就得改,烦得要死。
我的("作死")思路
实在受不了这种"面向 XPath 编程"的苦日子了,小弟花了几个月业余时间,关起门来肝了一款工具。
我给它的定位是:一个 AI 驱动的、低代码自动化测试平台。
核心思路很简单:
-
用"大白话"提效(AI): 让不懂代码的 QA,用自然语言(比如:
"登录系统,用户名A,密码B")就能生成可执行的 Python 脚本。 -
用"语义化"抗变更(核心引擎): 这才是我想解决的核心问题! 我希望彻底告别脆弱的 XPath/CSS。
- 比如,我封装了一个引擎,当你想操作一个多级菜单时,你根本不需要去 F12 找元素。
- 你只需要输入(或在脚本里调用):
"首页" > "系统配置" > "用户管理" - 系统就会自动、依次地去点击这些菜单项。无论前端怎么改版,只要菜单的文字不变,脚本就永远有效!
-
它又不能是个"黑盒": 无论是 AI 生成的,还是引擎调用的,最终都是标准的 Python + Playwright 脚本。专业大佬随时可以接管,进行二次开发或调试。
"Show Time"(求轻喷)
光说不练假把式,直接上图(和 GIF),大佬们看看这功能是不是你们想要的:
1. 亮点一:用"嘴"写用例(自然语言 -> Python 脚本)
我直接输入 Prompt,它(调用我配置的 LLM 接口)就能自动生成 Playwright 脚本。
[ GIF 动图 演示 1 ]
- 动图内容: 在 Prompt 输入框,输入"用例名称'项目演示-演示登录go入门指南并进入指定章节',访问'go.timpaik.top/directory.html',在目录>起源与发展菜单单,等待10秒,使用assert断言1等于1",点击发送按钮。平台将内容发送至配置的AI模型,并将模型返回的内容翻译成可执行的用例脚本执行,执行完成后可将用例进行归档至项目用例下。
2. 亮点二:用"语义"告别 XPath(这才是重点!)
看这里,我不用关心元素定位。比如我要操作菜单(其实也能操作复杂的web中form)。
[ GIF 动图演示 2 ]
- 动图内容: 看上一个动图操作,浏览器界面自动完成访问和点击动作
"https://go.timpaik.top/directory.html"、调用一个smart.click("目录">"起源于发展")这样的函数,然后了这一系列点击。请注意整个过程我只参与自然语言输入,并没写定位符,它却点对了目标元素
3. 不只是玩具:内置的编辑器和用例管理
生成的脚本不是摆设,可以直接在平台里组织、管理、运行,也支持二次编辑。
[ GIF 动图演示 3 ]
- 动图内容: 生成的用例执行完成后进行归档到项目用例库中,当然少不了测试报告(暂时使用pytest-html)。中间是 Python 脚本编辑器(显示行号和高亮),可对生成的用例进行编辑优化,可以看到不需要关心元素定位。
** 这里少一个动图,不知道为啥插入的时候无法更新,睡觉先,明天再搞 **
睡醒了,补图补图:

技术实现(欢迎大佬们开喷这部分)
为了让大佬们喷得有理有据,我简单贴下我的(简陋)架构。这玩意儿是个桌面应用(用 Tkinter 打包的):
scss
┌──────────────┐
│ 表现层 GUI │ → Tkinter + ttkbootstrap (图它打包方便)
└─────▼────────┘
│
┌──────────────┐
│ 业务逻辑层 │ → 用例生成 / 脚本执行 / 报告管理
└─────▼────────┘
│
┌──────────────┐
│ 核心API引擎 │ → Playwright封装 + 【语义定位引擎】 + 链式调用
└─────▼────────┘
│
┌──────────────┐
│ AI集成层 │ → OpenAI / Gemini / Kimi 等大模型接口 (可配置)
└─────▼────────┘
│
┌─────▼────────┐
│ 数据持久层 │ → YAML / JSON / .py 文件 (轻量级)
└──────────────┘
几个设计上的考虑:
- GUI 为啥用 Tkinter? 主要是图个简单、跨平台、打包成 .exe 方便。
ttkbootstrap库让它颜值勉强能看(内置了深色/浅色主题)。 - 核心引擎怎么搞的? 底层还是 Playwright。重点就在于我封装的**"语义定位引擎"**。它会根据
"A > B > C"这种输入,结合 DOM 结构去智能分析和查找元素(比如基于文本、A 标签、父子关系等多种策略),而不是依赖单一的 XPath。目标就是提高脚本的"健壮性",减少维护。
真正"求虐"的来了!
小弟目前还在埋头开发,发帖就是想在"闭门造车"的路上听听劝,看看这个方向对不对。
想请教各位大佬几个问题:
- 这个思路(AI 生成 + 语义定位 + Pro-Code)大家觉得靠谱吗? 还是说又是一个"重复造轮子"的玩具?
- (灵魂拷问)大家对这种
"首页 > 系统配置"的"语义化"操作方式怎么看? 会觉得它实用,还是更信任自己手写的 XPath/CSS? - 大家对"AI 生成脚本"的容忍度咋样? 是希望它 100% 准确,还是能帮我生成个 70% 的框架、我再改改就行?
- 大家觉得 Web 自动化测试里,还有啥是巨恶心的痛点?
如果大佬们觉得这个玩意儿还有点意思,或者想喷我几句,都欢迎留言。
也可以先 Mark 一下这个帖子,等我手续搞定了,一定第一时间把试用包和(可能的)开源地址放出来,再请大家使劲"鞭尸"!
