Carina:Java 写的自动化测试框架,把测试那几层全统一了

📅 2026/7/8 3:37:35 👁️ 阅读次数 📝 编程学习
Carina:Java 写的自动化测试框架,把测试那几层全统一了

文章目录

  • Carina:Java 写的自动化测试框架,把测试那几层全统一了
    • 1、 这玩意儿是干嘛的
    • 2、 几个值得说的点
    • 3、 框架模块拆得比较细
    • 4、 上手成本
    • 5、 适合谁

Carina:Java 写的自动化测试框架,把测试那几层全统一了

Carina 在 GitHub 上拿到了 962 个 Star。

zebrunner 开源的这个框架,想解决的是测试代码碎片化的问题。Mobile、Web、Windows 应用、REST 服务、数据库,这几层过去各玩各的,Carina 把它们拢到一个 Java 框架里。

1、 这玩意儿是干嘛的

一句话:用 Java 写一套自动化测试脚本,移动端、Web 端、Windows 桌面端、API、数据库都能覆盖。

底层踩在 Selenium、Appium、TestNG 这几个老牌开源项目上,不自己重新造轮子。这意味着用过 Selenium 的人接进来不需要重新学一套 API。

2、 几个值得说的点

跨平台这点对 Java 框架来说是自然属性。Unix 和 Windows 上跑测试都行,前置条件就是 JDK 11。

移动端这块有个具体数字:iOS 和 Android 之间的测试代码复用率能到 70% 到 80%。对于同时要维护两套移动端测试的团队,省下来的工作量是实打实的。

浏览器支持 IE、Safari、Chrome、Firefox。IE 都还在列表里,说明这个框架的服役场景包含老系统迁移。

数据库这块走 MyBatis ORM,关系型和非关系型都支持,MySQL、SQL Server、Oracle、PostgreSQL 都在里面。DAO 层的实现方式对写过 Java 后端的人来说不陌生。

API 测试基于 Freemarker 模板引擎。请求和响应的内容可以按入参动态拼出来,比起硬编码的请求模板要灵活一些。

3、 框架模块拆得比较细

Carina 把功能拆成了 9 个模块,按需引入:

  • carina-api:API 测试,基于 RestAssured,可选
  • carina-aws-s3:Amazon S3 工具集,可选
  • carina-azure:Azure 工具集,可选
  • carina-appcenter:AppCenter 工具集,可选
  • carina-dataprovider:xls/csv 作为数据源,可选
  • carina-webdriver:会话创建逻辑,核心组件
  • carina-utils:全框架通用工具,核心组件
  • carina-commons:可插拔依赖的接口,核心组件
  • carina-crypto:加解密工具,核心组件

核心那几个一般绕不开,可选模块按项目实际用的云服务和数据源挑着加。这种拆法对仓库体积和依赖冲突都友好。

4、 上手成本

官方准备了一个 carina-demo 项目,直接 clone 下来就能跑。文档放在 zebrunner.github.io/carina,还有个 Telegram 频道 @qps_carina。

代码风格上有 Eclipse 格式化文件 carina_formatter.xml,IntelliJ IDEA 里装个 Eclipse Code Formatter 插件就能用同一套规则。

License 是 Apache 2.0,文档和站点走 CC BY 4.0。

5、 适合谁

  • 团队主力语言是 Java,需要把 Web、移动、API 测试归到一套基础设施里
  • 在做 iOS/Android 双端测试,受够了两套脚本同步维护
  • 老系统还在用 IE 跑业务的测试团队
  • 需要在测试里直接连数据库做校验的场景

测试,受够了两套脚本同步维护

  • 老系统还在用 IE 跑业务的测试团队
  • 需要在测试里直接连数据库做校验的场景