一个简单的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. 规范使用常量
相关推荐
spider_xcxc15 分钟前
Redis 深度实践:安全管控、性能压测与持久化分析(二)
运维·前端·redis·云计算·bootstrap·运维开发
Mortalbreeze1 小时前
深入 Linux 线程机制(三):线程互斥——竞争条件与互斥锁的本质
linux·运维·服务器·c++·算法
江华森1 小时前
Python 编程快速上手:让繁琐工作自动化 —— 19章全实战笔记
笔记·python·自动化
Mr_Controll1 小时前
【运动控制——电子凸轮曲线设计(多项式)】
算法·自动化
Tian_Hang1 小时前
Eclipse Mosquitto 安装及介绍
java·运维·服务器·ide·sql·mysql·eclipse
曦尧1 小时前
Terax:轻量级终端优先的 AI 原生开发工作区
ai·自动化
是大强1 小时前
Docker中文件修改的三种方法
运维·docker·容器
从零开始的代码生活_2 小时前
Linux select 多路转接详解
linux·运维·服务器·网络·网络协议·tcp/ip·计算机网络
搬砖柯2 小时前
系列12-接口压测怎么做成平台能力?自研 httpx 引擎、分布式 Worker 与 Locust 选型对照
分布式·测试工具·性能优化·开源·自动化·httpx
Helen_cai2 小时前
OpenHarmony CustomDialog 自定义弹窗全场景开发与 API23 + 适配优化
运维·服务器·microsoft