/Java_Selenium

Java Selenium的UI自动化框架

Primary LanguageJava

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都注释了。
系统架构图1.png

  • main
    • java
      • base
        • DriverBase:封装启动本地或远程的各种浏览器的类
        • JedisBase:封装利用JedisPool获取和归还Jedis对象,操作Redis
      • utils
        • MyRemoteWebDriver:用于启动远程WebDriver的类
        • PropertyReader:读取Properties的类
        • ScreenShot:截图工具类
        • ThreadLocalUtil:用于操作_ThreadLocal的工具类_
    • resources
      • log4j2.xml:log4j2的配置文件、控制台输出和文件滚动输出
  • test
    • java
      • listener
        • TestLogListener:Testng监听接口TestListenerAdapter实现类,用于测试方法不同的操作
        • TestReportListener:Testng自定义报告IReporter接口实现类,用于自定义结果报告
      • test
        • base
          • BaseTest
          • TimeBaseOpt:WebDriverWait,隐式等待相关设置
        • common
          • 封装页面共用方法,用于Page层调用
        • data
          • 数据层:数据常量做数据驱动,动态数据用jedis对象来保存
        • locator
          • 定位层:用于存放对应页面相关元素的xpath定位
        • page
          • 逻辑层:具体每个测试用例的业务逻辑编写
        • test
          • 业务层:利用Test注解及相关配置,封装成对应的测试方法
      • util
        • 相关工具方法,例如获取当前时间(为了实际业务中单据编号不重复)、操作Excel、文件相关操作等
    • resources
      • config
        • config.properties:将配置文件,例如浏览器Driver路径、Redis的IP、端口等
      • download
        • 定义的文件下载的默认路径
      • drivers
        • 存放各种浏览器的driver文件
      • report
        • template.html:生产的测试报告的模板文件,会在报告监听器中用到
  • pom.xml:Maven配置文件
  • testng.xml:实际运行的文件

三、框架运行注意点及运行大体逻辑

3.1 运行注意点

  1. 由于框架中用到Jedis,所以在本地运行Testng.xml文件的时候,需要打开Redis。
  2. 运行的时候一般都是运行的对应的xml文件。

3.2运行大体逻辑

下面是一个大体的运行逻辑,然后就是监听器监听执行的@Test的方法,并输出日志、错误时截图、运行完成后生成报告等。

3.3运行结果报告

报告.html