Java Selenium UI自动化框架
一、GitHub链接
项目网址链接:
https://github.com/yff9802/Java_Selenium
代码克隆链接:
git@github.com:yff9802/Java_Selenium.git SSH方式
https://github.com/yff9802/Java_Selenium.git HTTPS方式
二、框架结构图
框架用到Java+Maven+Selenium+Tesng+Jedis+Jenkins持续集成,除去Jenkins持续集成,其他相关知识点和知识点的参考链接都在框架代码中有写到,可以克隆代码后学习。由于是该框架在工作中用到,在框架中实际的案例中,将系统登录的方法注释掉并将相关信息删除,所以实际是运行不了。但是整体框架的知识点都已体现出来,只是把具体的业务代码删除和登录的网址、账号、密码、服务器IP都注释了。
- main
- java
- base
- DriverBase:封装启动本地或远程的各种浏览器的类
- JedisBase:封装利用JedisPool获取和归还Jedis对象,操作Redis
- utils
- MyRemoteWebDriver:用于启动远程WebDriver的类
- PropertyReader:读取Properties的类
- ScreenShot:截图工具类
- ThreadLocalUtil:用于操作_ThreadLocal的工具类_
- base
- resources
- log4j2.xml:log4j2的配置文件、控制台输出和文件滚动输出
- java
- test
- java
- listener
- TestLogListener:Testng监听接口TestListenerAdapter实现类,用于测试方法不同的操作
- TestReportListener:Testng自定义报告IReporter接口实现类,用于自定义结果报告
- test
- base
- BaseTest:
- TimeBaseOpt:WebDriverWait,隐式等待相关设置
- common
- 封装页面共用方法,用于Page层调用
- data
- 数据层:数据常量做数据驱动,动态数据用jedis对象来保存
- locator
- 定位层:用于存放对应页面相关元素的xpath定位
- page
- 逻辑层:具体每个测试用例的业务逻辑编写
- test
- 业务层:利用Test注解及相关配置,封装成对应的测试方法
- base
- util
- 相关工具方法,例如获取当前时间(为了实际业务中单据编号不重复)、操作Excel、文件相关操作等
- listener
- resources
- config
- config.properties:将配置文件,例如浏览器Driver路径、Redis的IP、端口等
- download
- 定义的文件下载的默认路径
- drivers
- 存放各种浏览器的driver文件
- report
- template.html:生产的测试报告的模板文件,会在报告监听器中用到
- config
- java
- pom.xml:Maven配置文件
- testng.xml:实际运行的文件
三、框架运行注意点及运行大体逻辑
3.1 运行注意点
3.2运行大体逻辑
下面是一个大体的运行逻辑,然后就是监听器监听执行的@Test的方法,并输出日志、错误时截图、运行完成后生成报告等。