Selenium+Java完整框架搭建(2019完整版)

 1、WebDriver框架開發實戰

一、框架的思想

(1)什麼是框架?java

  • 框架是能夠被應用開發者定製的應用骨架

(2)爲何要寫框架?git

  • 提升腳本可維護性
  • 提升編寫腳本的速度
  • 提升腳本可閱讀性

(3)框架的幾個要素?github

  • driver管理,等待管理,經常使用方法封裝,LOG,經常使用類封裝,數據,失敗重跑等等

二、前期準備-框架搭建前期步驟

  • 經過IDEA新建個項目名TestAutomation2019的Maven工程
  • 導入Selenium和TestNG對應的jar包
  • 在工程根目錄新建一個driver文件夾,放置driver
  • 新建一個包:com.lixx

三、Driver管理

  • 在com.lixx下新建driver包
  • 在driver包下新建SeleniumDriver類
  • 封裝driver
  • 代碼實例演示
  • 測試
package com.lixx.drivers;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.edge.EdgeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
public class SeleniumDriver1 {
    public static WebDriver driver;
    public static WebDriver initialDriver(String browser){
        //獲取當前工程根目錄
        String path = System.getProperty("user.dir");
        if (browser.equals("chrome")){
            System.setProperty("webdriver.chrome.driver", path + "/driver/chromedriver.exe");
            driver = new ChromeDriver();
        }else if (browser.equals("ie")){
            System.setProperty("webdriver.ie.driver", path + "/driver/IEDriverServer.exe");
            driver = new InternetExplorerDriver();
        }else if (browser.equals("firefox")){
            driver = new FirefoxDriver();
        }else if (browser.equals("edge")){
            System.setProperty("webdriver.edge.driver", path + "/driver/MicrosoftWebDriver.exe");
            driver = new EdgeDriver();
        }else {
            System.out.println("您輸入的瀏覽器名稱有誤,請確認!");
        }
        return driver;
    }
}

四、元素等待方法封裝

  • 在com.autoframework下新建element包
  • 在element包下新建WebElementUtils類並繼承SeleniumDriver類
  • 二次封裝findElement和findElements方法
  • 代碼實例演示
  • 測試

五、Log4j整合

  • 配置pom.xml文件,添加log4相關jar包
  • 在工程根目錄下新建configs文件夾並新建log4j.properties文件
  • 在log4j.properties配置文件中加入須要的配置
  • 新建com.lixx.logger包
  • 在logger包下新建LoggerController類
  • 代碼示例
  • 測試

六、框架經常使用類整合

經常使用類封裝-隨機數封裝web

  • 在com.autoframework下新建tools包
  • 在tools包下新建RandomNum下
  • 實現時間戳和隨機數生成
  • 部分經常使用方法封裝實例演示
  • 測試

 截圖方法封裝chrome

Assert類封裝瀏覽器

經過TestNg作數據驅動框架

PO理念的引入dom

監聽錯誤自動重跑和截圖測試

  • 從github上下載已經封裝好的程序 https://github.com/NetEase/arrow
  • 複製到項目裏面,修改各個類導入包的路徑
  • 刪除咱們不想要PowerEmailableReporter.java文件
  • 在config文件下新建config.properties文件,並添加以下:retrycount=1
  • 修改ConfigReader.java類,讀取配置文件路徑
  •  添加自動截圖方法到TestResultListener.java類
  • 在運行的.xml文件裏面添加監聽
相關文章
相關標籤/搜索