一个简单的UI自动化框架应用介绍

项目框架介绍

该数据自动校验小程序采用POM模型,基于Java+selenium+testng+extentsreport+excel POI开发。

框架核心功能

  1. 基于PMO模型将页面封装成java对象,并通过selenuim驱动浏览器进行操作。
  2. 通过excel POI对excel文件进行操作,通过对比导出报表excel文件的方式完成数据校验
  3. 通过testng驱动测试用例,配置灵活,测试方式多样化
  4. 使用maven构建项目,简化依赖管理,可以使用jenkins进行持续测试集成
  5. 通过extentsreport插件扩展testng测试报告,测试完成可自动生成测试报告,记录所有测试用例的执行情况及展示统计信息,并通过钉钉消息的方式发送给相关干系人

Selenium中使用POM的特点和优点

  1. 能帮我们维护代码和减少代码的重复
  2. 在具体实施中,一个页面看做一个页面对象,每个页面写一个类。
  3. 你可以把一个页面的元素的全部定位方式和该页面的业务操作方法写在一个类文件,然后在测试脚本类文件去调用页面类的元素和方法。这样就有一个好处,你的软件在某一个界面出现了变化,你只需要修改对应页面的元素定位和相关方法,而不需要去修改你的测试脚本,当然除非你这个页面由于需求问题,之后被砍了,你才要去修改你的测试脚本类。
  4. 在POM中,我们把测试脚本和页面对象分层,例如页面对象统一放一个包下面,测试用例脚本统一放另外一个包下,到达测试脚本和页面对象分离。

项目结构介绍

  1. 目录如下:
  1. Framework

用于Selenium方法的二次封装和页面基类:利用继承的特点,减少我们重复代码量。将每个模块或者相关功能的一些公共的方法或者公共的元素,封装到页面基类里来。

浏览器引擎类:加载浏览器驱动;设置默认导出路径;设置浏览器静默启动;打开测试地址获取浏览器驱动

  1. PageObject

用于存放元素page层的封装

  1. pageObject.dataSetPage

用于封装通过数据集方式创建的卡片

  1. pageObject.dataSetPage

用于封装通过自定义SQL方式创建的卡片

  1. pageObject.function

excel数据对比方法

登录方法

  1. testSuite

测试用例集合

  1. 存放谷歌驱动
  1. 工具类集合

主要包括文件处理类,检索迭代对比文件;excel对比工具类,对excel报表文件进行操作,进行迭代对比;json文件处理类和http客户端类用于发送钉钉消息。

utils下目录文件

  1. testng测试套件 - 测试用例管理集成
  1. Maven插件说明

本次开发使用到两个maven插件,maven-surefire-plugins插件和exec-maven-plugin插件

  1. maven-surefire-plugins插件说明:

maven-surefire-plugin是maven里执行测试用例的插件,不显示配置就会用默认配置。这个插件的surefire:test命令会默认绑定maven执行的test阶段。

  1. exec-maven-plugin插件说明:

如果你想在项maven生命周期内,运行一段java代码,或者一段独立的程序,或者说我们所指的预执行,初始化某些值,生成某些不能预先生成的文件。那么这样我们就可以使用exec-maven-plugin进行程序的预执行,生成相关文件。具体配置如下:

待完善的点

  1. 完善断言方法
  2. 增加失败重跑机制
  3. 增加覆盖场景(实时报表场景覆盖)
  4. 优化测试报告
  5. 规范使用常量
相关推荐
骇客野人1 小时前
Redis 完整安装部署方案(Linux,分【源码编译】+【Docker】两种,推荐生产用源码,测试快速用 Docker)
运维
蓝速科技4 小时前
会议室门牌公告通知发布选型与落地指南丨蓝速科技
大数据·运维·数据库·人工智能·科技
chicheese5 小时前
Linux 面试速查表:从初级到高级,附高频场景答题模板
linux·运维
Linux-lucky5 小时前
32-38-Linux学习之旅之MySQL综合
linux·运维·学习·mysql·ubuntu
智能运维指南6 小时前
2026年ITSM系统怎么选?四款主流方案与五维评估模型
运维·itsm·嘉为蓝鲸
我命由我123456 小时前
Git 推送报错:error: src refspec main does not match any
运维·git·gitee·github·运维开发·学习方法·版本控制
骇客野人6 小时前
测试环境MySQL迁移Vastbase(海量数据库)完整改造与落地实施方案
运维·服务器
迪康Defender6 小时前
终端安全实战:如何高效解决企业U盘泄密与管控难题
运维·网络·安全·web安全·终端安全管理
zly35007 小时前
VMware Converter Standalone 物理机转化为虚拟机后源1硬盘变成了2个硬盘(2个硬盘文件)虚拟机无法启动。
linux·运维·服务器
智能运维指南7 小时前
2026 企业智能运维平台选型:私有化、信创、全链路打通该怎么权衡?
运维·嘉为蓝鲸·aiops平台·一体化运维平台