文章目錄
- 1. 自動化
- 1.1 自動化概念
- 1.2 自動化分類
- 1.2.1 接口自動化
- 1.2.2 UI自動化
- 1.3 自動化測試金字塔
- 2. Web自動化測試
- 2.1 驅動
- 3. Selenium
- 3.1 一個簡單的Web自動化示例
- 3.2 Selenium + 驅動 + 瀏覽器的工作原理
1. 自動化
1.1 自動化概念
自動化是指自動地代替人的行為完成操作。自動化在生活中處處可見,例如自動灑水機、自動洗手液、超市自動閘門等。這些自動化案例有效減少了人力的消耗,同時也提高了生活的質量。
軟件中的自動化測試也是如此,通過自動化測試有效減少人力的消耗,同時提高測試的質量和效率。自動化的主要目的是進行回歸測試。
1.2 自動化分類
自動化測試是一個統稱,包含多種類型,如接口自動化、Web自動化、移動端自動化等。
1.2.1 接口自動化
什么是接口自動化測試?
接口自動化測試是通過自動化腳本對系統的接口進行測試,驗證接口的功能、性能、安全性等。
為什么要做接口自動化測試?
- 解決手動測試效率低的問題
- 提高測試覆蓋率
- 減少回歸測試的時間
1.2.2 UI自動化
UI測試也稱為界面測試,常見的UI自動化測試包含Web自動化測試、移動端自動化測試等。
移動端自動化測試:
-
什么是移動端自動化測試?
移動端自動化測試主要測試程序部署在手機上能否按照預期的結果進行操作。 -
為什么要做移動端自動化測試?
移動端測試通常不是將程序部署在移動端上進行測試,而是需要安裝模擬器,在電腦上編寫自動化測試腳本代碼對模擬器上的軟件進行操作。
Web自動化測試:
-
什么是Web自動化測試?
Web自動化測試是模擬人在瀏覽器上的操作行為,自動打開瀏覽器,訪問網頁,并進行一系列的搜索和驗證等行為。 -
為什么要做Web自動化測試?
Web自動化測試可以減少手動測試的工作量,提高測試效率,尤其是在回歸測試中。
1.3 自動化測試金字塔
自動化測試金字塔表達了自動化測試的理想情況,利用較少的時間和精力在單元測試上就能夠發現更多有效的問題。
理想的自動化測試金字塔:
- 單元測試:最底層,覆蓋最多的代碼,發現最多的問題
- 集成測試:中間層,驗證模塊之間的接口
- UI測試:最上層,驗證用戶界面的功能
實際中的自動化測試“冰淇淋蛋筒反模式”:
自動化測試需要大量的初始投資,找到“突破點”,與手動測試相比,自動化測試能夠產生長期成本上的積極影響。
2. Web自動化測試
Web自動化測試是通過自動化腳本模擬用戶在瀏覽器上的操作行為,自動執行測試用例。
2.1 驅動
Web系統的測試前提是需要打開瀏覽器,通過訪問Web服務器來對服務器界面進行一系列的操作。對于自動化程序來說,程序需要通過Web驅動(WebDriver)來打開瀏覽器并執行預期的操作流程。
驅動管理:
WebDriverManager是一個開源Java庫,用于管理Selenium WebDriver所需的驅動程序(如Chromedriver、geckodriver、msedgedriver等),自動下載、設置和維護驅動程序。
示例代碼:
<dependency><groupId>io.github.bonigarcia</groupId><artifactId>webdrivermanager</artifactId><version>5.0.3</version>
</dependency>
3. Selenium
Selenium是一個Web自動化測試工具,提供了豐富的方法供使用者進行Web自動化測試。
3.1 一個簡單的Web自動化示例
1)安裝Selenium庫:
<dependency><groupId>org.seleniumhq.selenium</groupId><artifactId>selenium-java</artifactId><version>4.0.0</version>
</dependency>
2)使用Selenium編寫代碼:
public void example_test() {// 驅動程序管理的自動化WebDriverManager.chromedriver().setup();ChromeOptions options = new ChromeOptions();// 允許訪問所有鏈接options.addArguments("--remote-allow-origins=*");// 1、打開瀏覽器WebDriver driver = new ChromeDriver(options);// 2、輸入百度網址: https://www.baidu.comdriver.get("https://www.baidu.com");// 3、找到輸入框并輸入“迪麗熱巴”driver.findElement(By.xpath("//*[@id=\"kw\"]")).sendKeys("迪麗熱巴");// 4、找到“百度一下”按鈕并點擊driver.findElement(By.xpath("//*[@id=\"su\"]")).click();// 5、關閉瀏覽器driver.quit();
}
3.2 Selenium + 驅動 + 瀏覽器的工作原理
實現Web自動化測試需要瀏覽器、瀏覽器驅動、Selenium自動化腳本。這三者通過以下步驟交互:
- 創建服務:通過Selenium編寫的自動化腳本代碼在ChromeDriverService中創建一個服務。
- 打開WebDriver:通過創建好的服務打開WebDriver,安裝在本地的驅動服務IP為localhost,PORT為ChromeDriverService中創建的端口號。
- 發送HTTP請求:向瀏覽器驅動程序發送HTTP請求,瀏覽器驅動程序解析請求,打開瀏覽器,并獲得sessionid。
- 執行操作:打開瀏覽器后,所有的Selenium操作(訪問地址、查找元素等)均通過創建好的服務鏈接到WebDriver,然后使用execute發送請求。
- 解析請求:驅動收到請求并對請求進行解析,轉成瀏覽器能夠解析的腳本并發送給瀏覽器,瀏覽器通過請求的內容執行對應動作。
- 返回結果:瀏覽器再把執行的動作結果通過瀏覽器驅動程序返回給測試腳本。