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 跑业务的测试团队
- 需要在测试里直接连数据库做校验的场景
