SHAFT:把 Java 测试自动化的脏活全包了

📅 2026/7/11 10:01:38 👁️ 阅读次数 📝 编程学习
SHAFT:把 Java 测试自动化的脏活全包了

文章目录

  • SHAFT:把 Java 测试自动化的脏活全包了
    • 1、 这玩意儿是干嘛的
    • 2、 为什么要用它
    • 3、 它能干哪些活
    • 4、 SHAFT 怎么用
    • 5、 适合哪些人用

SHAFT:把 Java 测试自动化的脏活全包了

SHAFT_ENGINE 在 GitHub 上拿到 394 Star。

它是一个 Maven 发布的 Java 自动化测试框架,把 Web、Mobile、API、CLI、Database 这些测试场景里重复的基建活儿拢到一处:驱动管理、同步、断言、配置、测试数据、报告、证据,全在一个框架里搞定。

1、 这玩意儿是干嘛的

就一件事:让 Java 团队不用再自己搭测试基建。

写自动化测试真正折磨人的不是写用例,是周边那一堆事。装驱动、等元素、截图、出报告、管配置、跑 CI、对接云平台、留证据,每种活儿都得配一套代码。项目大了,这套东西散在各处,维护起来很痛。

SHAFT 把这层全部封装好,对外暴露一致的 API。Web 测试、Mobile 测试、API 调用、CLI 执行、Database 校验,都走同一套写法。本地能跑,Grid 能跑,云平台能跑,CI 也能跑。

2、 为什么要用它

做过 Java 测试的人都经历过的痛:Selenium WebDriver 自己只管驱动,等待得自己写,断言得自己挑库,截图得自己封,报告得引 Allure,配置得自己读 yaml,Excel 数据源得自己解析,移动端又得另起一套 Appium 代码。

换一个项目,这些活儿再重做一遍。换一个公司,又重做一遍。

SHAFT 把这些公共能力做成了标配。一次配置,多端复用。Web 用例和 Mobile 用例写起来几乎一样,API 测试也共用同一套断言和报告。Allure 报告开箱即用,执行日志、截图、附件、可访问性产物都自动生成。

3、 它能干哪些活

领域内置能力
UI 自动化浏览器和移动端驱动管理、同步动作、截图、日志
服务测试REST 和 GraphQL API 工作流,请求、响应、断言全覆盖
系统覆盖CLI 和 Database 动作,覆盖浏览器之外的端到端校验
测试设计断言、校验、测试数据处理、配置覆写
报告Allure 就绪,附件、执行日志、可访问性产物
扩展云执行、录制、诊断、自愈、MCP、AI、视频、视觉校验

Web、Mobile、API 这几块是基础盘。CLI 和 Database 让端到端链路也能纳入自动化校验,不用再单独搭一套。

扩展模块有几个值得点出来。BrowserStack 模块直接对接云执行,Capture 录视频,Doctor 做诊断,Heal 做自愈。MCP 模块接 Agentic 工作流,AI 模块接大模型,视觉测试模块做 UI 像素级比对。需要哪个引哪个,不强绑。

4、 SHAFT 怎么用

它本身是 Maven 工件,坐标在 Maven Central 上。pom.xml 里引依赖:

<dependency><groupId>io.github.shafthq</groupId><artifactId>shaft-engine</artifactId><version>最新版本</version></dependency>

测试框架这边支持 TestNG、JUnit、Cucumber 三家,不挑。配好就能写用例,Web 端走封装好的浏览器驱动,API 端走 REST/GraphQL 客户端,断言用内置的 Assertions、Validations。

执行层面本地跑、Selenium Grid 跑、BrowserStack 跑、CI 里跑,全靠配置文件切换,代码不动。报告自动落到 Allure,附件自动挂,跑完开会看就行。

5、 适合哪些人用

  • Java 团队,受够了每个项目都从零搭测试基建的人
  • 在搞全链路自动化、想让 Web、Mobile、API 共用一套断言和报告的测试负责人
  • 接 AI 工作流的团队,想让 Agent 直接参与测试诊断、自愈、生成用例的人

官方文档在 shafthq.github.io/docs,安装、升级、各端测试、Agentic 工作流都写得比较细。MIT 协议,源码、贡献指南都在仓里。

.github.io/docs,安装、升级、各端测试、Agentic 工作流都写得比较细。MIT 协议,源码、贡献指南都在仓里。