✅ 自动定位元素、自动生成用例、智能执行操作、输出报告文档的全流程测试系统
🧠 背景初衷:解决自动化测试过程中各种痛点:用例编写、元素定位、回归测试、巴拉巴拉......
距离上一次发文已经过去四个多月,这段时间我一直在思考并动手实践一个想法 —— 开发一款 Web 智能测试系统。
起因是来自实际工作场景的痛点:
Web 自动化测试过程中,用例编写、自动化用例编写、元素定位耗时过多,元素定位不稳定、维护成本高。
虽然有很多自动化工具和平台,但真正做到“自动理解页面结构,智能定位元素并生成测试用例”的工具非常少。
💡 灵感来源:偶遇 GitHub 开源项目 browser-user
在构思过程中,我偶然看到了 GitHub 上一个非常酷的开源项目:
这个项目展示了如何通过浏览器控制和智能分析,实现更自然的人机交互操作,我当时大为震撼:
“这不就是我想要的效果吗?!”
但深入研究后,我发现这个项目虽然优秀,但与我所追求的目标略有不同 —— 我希望的是更贴近测试流程,特别是 “测试用例生成 + 元数据驱动 + 测试文档输出” 的闭环。
于是,我下定决心自己开发一款系统,目标更聚焦于测试工程实践。
🏗️ 项目目标:构建智能测试的全流程闭环
我理想中的这款系统,应该具备如下特性:
- 🧾 自动理解模块结构,可根据菜单路径自动生成测试用例;
- 🧠 字段元数据驱动,支持别名识别、OCR 验证码、智能优先级定位;
- 🔄 智能执行流程,具备交互封装、定位重试、行为自动恢复;
- 📊 报告输出完善,支持测试报告、截图归档、文档自动生成;
- ⚙️ 灵活适配项目,具备配置化能力,不依赖强耦合代码逻辑。
最终,目标是打造一套覆盖:
测试需求接收 → 自动生成用例 → 自动执行操作 → 自动生成报告与文档
的完整自动化链路,降低人力依赖,提升质量闭环。
📌 当前进展:第一阶段功能实现清单
经过几个月的开发和验证,目前已经完成了系统第一阶段的功能实现:
| 功能模块 | 当前状态 | 说明 |
|---|---|---|
| ✅ 用例生成机制 | ✔️ 完成 | 基于模块结构(如菜单导航)自动生成深度粒度测试步骤 |
| ✅ 元数据字段管理 | ✔️ 完成 | 支持别名、定位器优先级、OCR 验证码识别等 |
| ✅ 登录自动化流程 | ✔️ 完成 | 动态配置支持,验证码处理支持 base64 和截图两种方式 |
| ✅ 定位自适应机制 | ✔️ 完成 | 引入优先级 + 动态运行反馈,提升稳定性和鲁棒性 |
| ✅ 动作封装框架 | ✔️ 完成 | 执行步骤支持封装、组合、可扩展重试机制 |
其中,元素定位模块是当前系统的核心亮点。通过以下能力,实现高准确率的元素识别:
- 支持字段别名 → 标准字段键 → 多策略定位器映射;
- 元数据配置中支持多个优先级定位器;
- 定位失败时自动降级重试并记录修正权重;
- 验证码支持通过 OCR 自动识别并自动回填。
📸 项目截图展示(第一阶段)
以下是当前系统部分模块的实际运行截图,供参考:
1️⃣ 配置界面
首先进行模型配置
2️⃣ 用例自动生成界面
基于模块结构 + 元数据的自动用例生成逻辑:
输入项目信息
根据项目信息生成测试用例
还会生成一份具有指导性的测试计划
生成的测试用例
随便查看用例详情,看看生成的效果
选中列表中生成的用例,就能执行
3️⃣ 登录自动化流程
展示如何通过配置动态执行登录操作,支持验证码识别(用的是“带带弟弟”模块,ddddocr牛逼):
其实点击“执行”后,后台会将用例转换为可执行的脚本用例
这样就能执行了,因为用实际项目演示,不得不涂黑,总之执行,不需要再做其他操作
4️⃣ 自动执行结果与报告
展示系统执行后生成的测试报告、日志或截图归档结构:
执行完成后生成报告
🔮 后续计划:第二阶段规划方向
接下来,我将围绕以下方向继续优化系统:
- 📌 增强断言体系:支持接口对比、数据库校验、截图识别等;
- 📝 自然语言用例生成:尝试将需求文案直接转化为测试用例;
- 📈 可视化平台:开发 Web 界面支持用例管理、执行跟踪;
- 🤖 引入 AI 能力:提升字段识别、定位准确率,减少人工参与。
💬 写在最后:欢迎交流反馈!
这篇文章是我对第一阶段开发的总结,也希望能借此机会认识更多同样在做测试工具、自动化平台的同行朋友。如果你:
- 对这类项目感兴趣;
- 有想法或建议想提;
- 正在做类似的系统;
欢迎评论区留言或者私信我交流,我非常期待听到你们的声音!
感谢你看到这里 🙏
路漫漫其修远兮 吾将上下而求索
如果你觉得这篇文章有启发,欢迎 👍 点赞、📌 收藏、📣 转发,让更多人看到这个项目!