自动化工具 接口&UI 自动化测试平台:我基于 FastAPI HTTPx 和 Playwright 写了个平台 大佬们康康行不行?

曹永琦 · 2025年02月14日 · 最后由 抬头望望天 回复于 2025年02月21日 · 6994 次阅读

作为一名测试工程师,入行近五年,我一直想着打造一个自动化测试平台(不知道是不是 49 入国军)。近两年,借助 AI 的帮助,我的前端能力得到了显著提升,也是将项目空余时间弄了起来。

技术栈

后端:FastAPI
接口请求:Httpx
UI 自动化:Playwright
前端:React + Ant Design

核心运行 cases 逻辑 简单

for case in cases:
  execute(case)

虽然这种方式已经能够满足基本需求,但我一直在思考是否有更高效、更强大的运行方式。如果你有更好的建议,欢迎分享!


git 地址 https://github.com/Caoyongqi912/case_auto_hub
readme 中 展示图更多

接口自动化能力

基础 HTTP 请求:支持多种 HTTP 请求类型(GET、POST、PUT、DELETE 等)。
变量提取与写入:可从响应中提取变量,支持在后续请求中使用。
断言功能:提供响应状态码、内容等多种断言验证。
前后置脚本:在用例执行前后执行自定义 Python 脚本。
调试模式:逐步执行测试用例,便于精准排查问题。
用例执行:支持单个或批量用例的执行。
定时任务:定时执行接口测试任务,适用于定期测试。
报告展示:自动生成并展示 HTML 格式的测试报告,明确显示成功与失败的详细信息。
实时日志可视化:在测试执行过程中实时展示日志,便于进度监控。
接口录制(未完善):录制接口请求并快速生成对应的测试用例。(计划在未来版本中实现)
UI 自动化功能

✨ Playwright :
UI 自动化支持:集成了 Playwright,能够执行浏览器自动化测试,模拟用户操作界面。
步骤录入:支持在 UI 测试中录入测试步骤,便于快速创建测试用例。
前后置接口请求:每个步骤可与前后置接口请求结合,动态调整测试流程。
全局变量:支持全局变量的管理,步骤和请求中的变量可以全局共享,方便管理和使用。
公共步骤编辑:支持创建和管理公共步骤,可以重复使用,减少冗余,提升效率。
任务管理:与接口测试类似,UI 测试任务支持定时执行与结果推送,支持企业微信等推送方式。
SQL 支持(未完成):计划在未来版本中支持 SQL 操作,增强数据处理能力。
IF 条件判断执行:支持根据条件判断执行特定步骤,灵活控制测试流程。

放几张最新的图:
首页:

API 列表

API 详情

日志


图太多不想截了。 具体可以去 git 上看看

给一些宝贵的建议

最佳回复

看着像 pity

共收到 25 条回复 时间 点赞

测试平台嘛,功能大差不差,应该找你们公司用的人提意见比较实际

说是这么说 。 我司 ui 用了我的。 接口用了 soso 因为我开发比较晚了、再用我的也不方便了

说是这么说 。 我司 ui 用了我的。 接口用了 soso 因为我开发比较晚了、再用我的也不方便了

这回复怎么回到自己身上去了

ikun 说得在理

看着像 pity

既然是 py 系的 支持一下前后置执行 py 脚本 就有可能兼容 sosotest(曾经入职迁移过 1500+ sosotest 场景用例)

这个测试平台在公司团队用起来了吗

disable 回复

说的没错 ui 抄过他 捂脸/

Ayo 回复

支持的

jax 回复

接口因为起步比较晚 用的 soso ui 是用了

领导:“怎么没用上 deepseek?,回去再想想怎么加入 deepseek”

经验告诉我,迭代快就没法用自动化。

有本地部署的文档吗,git 上看着就是一些命令

King 回复

更新了简版本/

playwright 本身就可以做接口自动化

你的部署文档,我觉得应该是,详细的,比如 config 里面那些是数据库、那些是 redis,最好有注释,这样你才会节省沟通成本,以及别人能快速部署体验,给到你建议

像我这样的小白 想写个测试平台 该怎么学习哦

支持多用例并行执行吗,还是只能一个执行完了再执行下一个这种单线程的执行操作?

coherence 回复

王中 回复

边抄 炒的过程中加入自己的理解

King 回复

有理

王中 回复

看你们公司有没有对接第三方系统,先写个简单的 mock 平台,把所有需要 mock 的接口写在一个系统里面

能节省你的时间,而且能接收到好的反馈,不然别人本地跑不起来,嘎嘎问你这些基础的问题,效率不高

win10 上安装好几个库有报错,依赖版本不对~ 你这应该是 mac 上开发的吧😂

回复内容未通过审核,暂不显示
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册