自動化測試概念
- 1. 自動化
- 1.1 回歸測試
- 1.2 自動化分類
- 1.3 自動化測試金字塔
- 2. web自動化測試
- 3.Selenium
1. 自動化
? **自動化測試(Automated Testing):**是指使用軟件工具或腳本來自動執行測試任務,代替人工進行重復性、繁瑣的測試空座。
自動化的主要目的是用來進行回歸測試
1.1 回歸測試
? **回歸測試:**在軟件維護階段,當軟件發生變更時,更新執行之前的測試用例以確保不會影響已有功能的正確性的一種測試活動。
在檢查變更而導致的意外副作用,并確保軟件質量不受影響。
1.2 自動化分類
-
**接口自動化測試(API Automation Testing):**是指使用工具或腳本自動發送請求并驗證接口返回結果的過程。主要針對應用測試編程接口(API)
用于驗證系統中不同模塊、服務或第三方系統之間通過接口進行通信時是否正常工作。
-
**UI自動化測試(User Interface Automation):**也稱頁面測試,常見的UI自動化測試包含Web自動化測試、移動端自動化測試等等。
- **Web自動化測試:**主要針對通過瀏覽器訪問的應用程序進行測試。其目的是驗證網頁上的各種元素是否正確響應用戶的操作。
- **移動端自動化測試:**針對智能手機和平板電腦的應用程序進行的測試,包括原生應用、混合應用及移動Web應用。
1.3 自動化測試金字塔
理想的自動化測試表達了自動化測試的理想情況,利用較少的時間和精力在單元測試上就能夠發現更多有效的問題
在實際中往往是 “冰激凌蛋筒反模式”,利用較少的時間和精力在單元測試上就能夠發現更多有效的問題。
2. web自動化測試
驅動:
? 在Web自動化測試中,驅動是指控制瀏覽器的底層接口程序。負責與瀏覽器建立通信,并將你的測試腳本中的操作指令翻譯成瀏覽器可以理解的動作。
驅動 = 瀏覽器的遙控器
安裝驅動管理:
? WebDriverManager是一個開源的工具庫,以完全自動化的方式對Selenium WebDriver 所需的驅動程序。
<!-- 使用Maven構建項目,在pom.xml文件中添加依賴--><dependency><groupId>io.github.bonigarcia</groupId><artifactId>webdrivermanager</artifactId><version>5.9.3</version>
</dependency>
3.Selenium
? Selenium是一個強大的工具集,主要用于Web應用程序的自動化測試。它允許開發者和測試人員編寫本來模擬用戶與網頁的交互,從而實現對Web應用的功能測試。
例:
<!-- 安裝selenium -->
<dependency><groupId>org.seleniumhq.selenium</groupId><artifactId>selenium-java</artifactId><version>4.23.0</version>
</dependency><!-- 使用Maven構建項目,在pom.xml文件中添加依賴--><dependency><groupId>io.github.bonigarcia</groupId><artifactId>webdrivermanager</artifactId><version>5.9.3</version>
</dependency>
package com.mohunhun;import io.github.bonigarcia.wdm.WebDriverManager;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;public class Test {public void example_tet() throws InterruptedException {//驅動程序管理的自動化/*自動檢測操作系統類型(Windows、Mac、Linux)自動下載與當前系統兼容的最新版本的 chromedriver*///WebDriverManager.chromedriver().setup();//配置本地驅動System.setProperty("webdriver.chrome.driver", "C:\\Users\\31681\\Desktop\\chromedriver-win64\\chromedriver.exe");ChromeOptions options = new ChromeOptions();Thread.sleep(3000);//允許訪問所有鏈接options.addArguments("--remote-allow-origins=*");Thread.sleep(3000);//1.打開瀏覽器WebDriver driver = new ChromeDriver(options);Thread.sleep(3000);//2.輸入百度網絡driver.get("https://www.baidu.com/");Thread.sleep(3000);//3.找到輸入框并輸入“迪麗熱巴”driver.findElement(By.xpath("//*[@id=\"kw\"]")).sendKeys("迪麗熱巴");Thread.sleep(3000);//4.找到“百度一下” 按鈕并點擊driver.findElement(By.xpath("//*[@id=\"su\"]")).click();Thread.sleep(3000);//5.關閉瀏覽器driver.quit();}public static void main(String[] args) throws InterruptedException {Test test = new Test();test.example_tet();}}
selenium + 驅動+瀏覽器工作原理:
- 通過 selenium 編寫自動化腳本代碼中在 ChromeDriverService 中創建一個服務
- 通過創建好的服務打開 webdriver,安裝在本地的驅動服務ip為 localhost,PORT為ChromeDriverService中創建的端口號,該服務地址為 selenium 向 webdriver 發送請求的服務地址
- 向瀏覽器驅動程序發送HTTP請求,瀏覽器驅動程序解析請求,打開瀏覽器,并取得 sessionid,如果再次對瀏覽器操作需攜帶次 id
- 打開瀏覽器后,所有的 selenium 的操作均通過創建好的服務鏈接到 webdriver,然后使用 execute 發送請求
- 驅動收到請求并對請求進行解析,轉成瀏覽器能夠解析并發送給瀏覽器,瀏覽器通過請求的內容執行對應動作
- 瀏覽器再把執行的動作結果通過瀏覽器驅動程序返回給測試腳本