写在前面
java
java 当前最主流的后端开发语言,目前做自动化主要是两大阵营 java 和 python,这里不讨论游戏自动化,相比而言,小厂的 python 稍微主流一些,大厂的 java 稍微主流一些,毕竟大厂几乎全部被 java 占领,而测试作为保障项目质量的一个关键角色,必须要打穿整个项目流程,因此贴近研发代码就显得尤为重要
testng
目前整个测试圈有两大阵营,一个是忠实的 testng 阵营,另一个是新潮流 junit5 阵营,不论哪个阵营未来都会成为测试圈的主流,我个人感觉纯粹的自动化测试或者测开应该是 testng 目前更占有又是,junit5 随着许多开发转为测试开发,会把 junit5 的技术带到测试圈进而丰富测试圈的技术栈
我个人认为 testng 比 junit5 更灵活,更加适合做自动化,但是 junit5 提供了更丰富的参数化运行,总的来说如果项目较为复杂我推荐使用更加灵活多变的 testng, 简单的项目就可以使用 junit5 来做
appium
写过 web 自动化脚本的人对于 appium 的上手会非常迅速,因为 appium 实际上是基于 selenium 的,脚本代码绝大部分都是一致的,只是对于 app 的 UI 测试来讲,配置稍微显得麻烦了一些,而且还要考虑到安卓和苹果两个系统,苹果对于安卓来说配置还要麻烦一些
我之前总结过一个继承关系图谱,WebDriver 是一个接口,MobileDriver 直接继承它,而 RemoteWebDriver 直接实现它
本文的项目地址
appuitest4j:https://github.com/abcnull/appuitest4j
另外我推荐我一个 web ui 测试项目的框架:https://github.com/abcnull/webuitest4j
项目结构介绍
我这里张贴一下我的项目结构图
整体框架都是放在 test 包下,采用了 pageobject 思想,我们将页面对象抽离出来,复杂的页面操作逻辑写在其中,pageobject 大致分为两个大的“阵营”,一个是 page 阵营,也就是单纯的页面对象,另一个就是 case 阵营存放测试用例脚本
-
page 阵营
-
basepage 包
这个是所有页面对象的父类,主要做页面对象共有方法的封装,这样在页面对象中大家就不用编写一些重复的复杂的页面操作方法,直接使用父类的方法即可
-