用途
该技能面向 QA 自动化工程师,用于在 Java 环境下构建、审查或调试基于 Selenium WebDriver 的高级测试自动化框架。它强调结构化的页面对象模型(POM)、集中式驱动管理、监听器驱动的报告与重试、以及测试数据外部化,目标是让测试框架具备可维护性、可扩展性和多环境运行能力。
主要能力
- 三种 POM 模式:基础 POM(每个页面类直接使用 driver.findElement)、改进型 POM(页面类继承 CommonToAllPage 基类复用操作方法)、Page Factory(使用 @FindBy 注解和 PageFactory.initElements 初始化元素)。
- CommonToAllPage 基类:集中 click、type、getText 等通用页面操作,所有页面对象可继承复用。
- DriverManager 单例:静态 getter/setter 管理 WebDriver 生命周期,支持 Chrome、Edge、Firefox 多浏览器初始化与退出。
- 监听器驱动报告:通过 TestNG 的 ITestListener、IRetryAnalyzer、IAnnotationTransformer 实现失败截图、重试逻辑和 Allure 集成。
- 数据外部化:测试数据和配置存放在 properties 文件与 Excel 表格中,不硬编码在测试方法里。
- 等待策略层次:优先使用 WebDriverWait 显式等待,轮询场景使用 FluentWait,避免 Thread.sleep。
- 环境专用套件:为 QA、staging、生产环境分别维护 TestNG XML 套件文件。
- Grid 就绪架构:框架设计为可在本地或 Selenoid/Docker grid 上运行,无需修改代码。
使用方式
项目采用 Maven 构建,依赖包括 selenium-java 4.31.0、testng 7.11.0、allure-testng 2.26.0、reportng 1.1.2、assertj-core 3.25.1、poi-ooxml 5.2.4、log4j-core 3.0.0-beta2。编译目标为 Java 11,Surefire 插件配置 suiteXmlFiles 指向 testng.xml。
目录结构分为 src/main/java(base、driver、pages、utils)、src/main/resources(data.properties、log4j2.xml)、src/test/java(base、listeners、tests、utilexcel)、src/test/resources(TestData.xlsx),以及多个 TestNG XML 套件文件。
配置通过 data.properties 提供应用 URL、凭据、浏览器类型和期望值。PropertiesReader 读取该文件,DriverManager.init() 根据 browser 键选择浏览器并最大化窗口,down() 退出驱动。测试基类 CommonToAllTest 在 @BeforeMethod 中初始化驱动,在 @AfterMethod 中退出。
编写测试时,可选择继承 CommonToAllTest,使用 CommonToAllPage 提供的 openVWOUrl、enterInput、clickElement、getText 等方法,结合 WaitHelpers 进行显式等待或 FluentWait。
适用场景
适用于需要结构化、可维护的 Selenium Java 测试框架的团队,尤其是需要多浏览器支持、多环境套件、数据驱动测试、失败重试与 Allure 报告的场景。Page Factory 适合偏好声明式元素定位的项目;改进型 POM 适合需要复用公共操作的较大项目。
限制
资料未提供安装命令、运行命令或具体版本兼容性说明;未说明收费、价格或平台限制。部分代码示例在资料中截断(如测试类代码未完整展示),因此无法确认全部测试实现细节。