?本節?標:
- ?動化測試
- Web?動化測試
- selenium
1. ?動化
1.1 ?動化概念
?動化在?活中處處可?,?動的代替?的?為完成操作。
?動灑?機,主要通上?就可以?動化灑?并且可以?動的旋轉。
?動洗?液,免去了?動擠壓可以?動感應出洗?液
超市?動閘?,不需要?動的開?關?
?活中的?動化案例有效的減少了??的消耗,同時也提?了?活的質量。
軟件中的?動化測試也是如此,通過?動化測試有效減少??的消耗的同時也提?了測試的質量和效率。
- 測試人員編寫自動化測試腳本
- 增加新的功能:測試人員需要同步增加對應的自動化腳本
- 自動化測試報錯:測試人員需要維護并解決自動化腳本問題
?動化的主要?的就是?來進?回歸測試。回歸測試是什么要講到位
1.1.1 回歸測試
軟件有多個版本需要進?功能的整體回歸。
為了避免新增功能影響到歷史的功能需要進?功能的回歸。
常??試題
1.?動化測試能夠取代??測試嗎?
?動化測試不?定???測試更能保障系統的可靠性,?動化測試是測試?員??編寫,后續如果有功能的變更?動化也需要進?不定期的維護和更新。
2.?動化測試可以?幅度降低?作量?
錯誤
坑!!“?定程度上”和“?幅度”的表達?式也需要注意
tips:測試筆試中的選擇題盡量不要選擇說的太死或者太絕對的選項?
1.2 ?動化分類
? 很多同學經常聽到?動化這個詞,但是很容易誤以為?動化就是?個東西,?動化是個統稱,同
學們可以理解為我們常說的吃?這樣的表達?式和?動化是?樣的,吃?可以是吃西?,吃哈密
?,吃??,?動化也包含多種,如接??動化,web?動化,移動端?動化等等...
? 主要介紹各測試分類為什么需要實施?動化,?的和意義
1.2.1 接??動化
什么是接??動化測試?
為什么要做?解決了什么問題,?的是什么
1.2.2 UI?動化
UI測試也稱為界?測試,常?的UI?動化測試包含web?動化測試、客戶端?動化測試等等。
客戶端:pc端? 移動端
1.2.2.1 移動端?動化測試
什么是移動端?動化測試?
為什么要做?解決了什么問題,?的是什么
移動端,顧名思義,就是部署在?機上的應?程序。移動端?動化測試主要測試程序部署在?機上能否按照預期的結果的進?操作。
移動端測試通常不是將程序部署在移動端上進?測試,?是需要安裝模擬器,在電腦上編寫?動化測試腳本代碼對模擬器上的軟件進?操作
移動端測試難度相對較?,移動端測試的穩定性要?接??動化測試和web?動化測試的穩定性要差很多,原因主要是移動端測試收到的環境影響?較多,諸如什么呢????
1.2.2.2 web?動化測試
什么是web?動化測試?
為什么要做?解決了什么問題,?的是什么
如何進?百度搜索?
通常來說我們?動進?百度搜索的步驟如下,web?動化能夠代替我們?動的執?。
模擬?在瀏覽器上的操作?為,?動的打開瀏覽器,訪問百度??,并進??系列的搜索和驗證等?為。
1.3 ?動化測試?字塔
?動化的類型?常多,那么到底哪?種是最好的?哪?種測試的收益會更佳?
這?我們介紹測試圈內?常著名的?動化測試?字塔
理想的?動化測試?字塔表達了?動化測試的理想情況,利?較少的時間和精?在單元測試上就能夠發現更多有效的問題。
然后實際上在企業中,?動化往往是“冰淇淋蛋筒反模式”
?動化需要?量的初始投資,找到“突破點”,與?動測試相?,我們開始看到它對?期成本產?的 積極影響,也能夠清楚,這兩種測試活動都是完全兼容,產?短期和?期利益。
2. web?動化測試
學到這?,希望同學們對?動化測試能夠有?定的了解。然后實際在企業中,我們需要對某?個特定的軟件進??動化的實施,包含但不限于軟件所有界?的UI?動化測試、所有接?的接??動化測試。
接下來我們將正式步?web?動化測試的學習,了解企業中是如何使??具來統?編寫和管理?動化?例。
2.1 驅動
上?給?家已經介紹過,web系統的測試前提是需要打開瀏覽器,通過訪問web服務器來對服務器界?進??系列的操作。對于??測試來說,這?系列的操作都需要測試?員?動的,?步?步的來執?測試。那么對于?動化程序來說,程序如何才能打開瀏覽器并執?我們預期的操作流程呢?
驅動?詞應??泛,同學們都不會陌?。
?有了驅動才能夠讓?跑起來。
計算機有了驅動程序就可以與設備(?機,攝像頭,?克?,鍵盤,顯?器等等設備)進?通信。
程序想要打開web瀏覽器就需要安裝web驅動(即WebDriver),WebDriver 以本地化?式驅動瀏覽
器。
2.1.1 安裝驅動管理
驅動管理:
WebDriverManager是?個開源Java庫,以完全?動化的?式對Selenium WebDriver所需的驅動程 序(如chromedriver、geckodriver、msedgedriver等)進?管理(即下載、設置和維護),?版本5起,WebDriverManager還提供了其他相關功能,如發現本地系統中安裝的瀏覽器的能?,構建 WebDriver對象(如ChromeDriver、FirefoxDriver、EdgeDriver等)
<dependency><groupId>io.github.bonigarcia</groupId><artifactId>webdrivermanager</artifactId><version>5.8.0</version><scope>test</scope></dependency>
3. Selenium
萬事俱備,只?東?。
接下來就是使?selenium來編寫web?動化測試腳本。
selenium是?個web?動化測試?具,selenium中提供了豐富的?法供給使?者進?web?動化測
試。
3.1 ?個簡單的web?動化?例
1)安裝selenium庫
<dependency><groupId>org.seleniumhq.selenium</groupId><artifactId>selenium-java</artifactId><version>4.0.0</version></dependency>
2)使?selenium編寫代碼
package com.example.seleniumaototest;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 FirstTest {//測試百度搜索關鍵詞迪麗熱巴public void test01() throws InterruptedException {//1.打開瀏覽器WebDriverManager.chromedriver().setup();//增加瀏覽器配置,創建對象時允許訪問所有鏈接ChromeOptions options = new ChromeOptions();options.addArguments("--remote-allow-origins=*");WebDriver driver = new ChromeDriver(options);Thread.sleep(1000);//2.輸入完整網址:https://www.baidu.comdriver.get("https://www.baidu.com");Thread.sleep(1000);//3.找到輸入框,輸入“迪麗熱巴”driver.findElement(By.cssSelector("#kw")).sendKeys("迪麗熱巴");Thread.sleep(1000);///4.找到百度一下driver.findElement(By.cssSelector("#su")).click();Thread.sleep(1000);//5.關閉瀏覽器driver.quit();}
}
3.2 selenium+驅動+瀏覽器的?作原理
實現web?動化測試需要瀏覽器、瀏覽器驅動、selenium?動化腳本。這三者是如何交互最終實現web的?動化測試?
1. 通過selenium編寫的?動化腳本代碼中在ChromeDriverService中創建?個服務
2. 通過創建好的服務打開webdriver,安裝在本地的驅動服務IP為localhost,PORT為ChromeDriverService中創建的端?號,該服務地址為selenium向webdriver發送請求的服務地 址。
3. 向瀏覽器驅動程序發送HTTP請求,瀏覽器驅動程序解析請求,打開瀏覽器,并獲得sessionid,如果再次對瀏覽器操作需攜帶此id
4. 打開瀏覽器后,所有的selenium的操作(訪問地址,查找元素等)均通過創建好的服務鏈接到 webdriver,然后使?execute發送請求
5. 驅動收到請求并對請求進?解析,轉成瀏覽器能夠解析的腳本并發送給瀏覽器,瀏覽器通過請求的內容執?對應動作
6. 瀏覽器再把執?的動作結果通過瀏覽器驅動程序返回給測試腳本
驅動需要接收、解析請求,發送請求給瀏覽器,那么驅動到底是什么樣的??呢?
驗證?式:
1)執?selenium編寫的?動化腳本代碼中,可以在終端看到創建的驅動服務地址。