目錄
1. 什么是自動化測試?
回歸測試
自動化分類
2. web自動化測試
3. selenium
1. 什么是自動化測試?
通過自動化測試工具,編寫腳本,自動執行測試用例,主要用于回歸測試,性能測試等重復測試任務
常見面試題
自動化測試能取代人工測試嗎?
自動化測試腳本是由測試人員編寫的,后續有功能的變更,也需要修改測試腳本,更新測試用例,所以自動化測試不能取代人工
自動化測試可以大幅度降低工作量?
錯誤
自動化測試還需要人工編寫測試腳本,測試人員需要維護自動化測試。測試主要由人工測試為主,自動化測試來輔助測試
回歸測試
自動化測試主要用于回歸測試。什么是回歸測試?
軟件有多個版本需要進行功能的整體回歸,每增加一個功能,都可能會影響之前的功能,所以新版本和舊版本都需要進行測試,使用自動化測試。
自動化分類
接口自動化測試:直接調用API接口,驗證接口的輸入輸出是否符合預期,關注程序的內部交互和數據傳輸
前端自動化測試:模擬用戶在UI界面上的操作,驗證前端頁面的功能,又分為web前端自動化和客戶端自動化
-
web前端自動化測試:主要針對瀏覽器的Web程序,測試頁面元素,交互功能和兼容性
-
客戶端自動化測試:針對移動端應用,測試安裝,啟動,界面間交互和設備兼容性
2. web自動化測試
web自動化測試的前提是打開瀏覽器,通過訪問web服務器來對服務器界面進行測試,程序想要打開瀏覽器就要安裝對應的web驅動。
若通過安裝驅動的方式來啟動瀏覽器,每次瀏覽器更新后對應的驅動也要更新,為了解決這個問題,selenium中提供了驅動管理工具 webdriver - manager,有了webdriver - manager無需手動安裝瀏覽器驅動,即使瀏覽器更新也不會影響自動化的執行
先安裝python環境,然后安裝webdriver-manager,在控制臺中輸入這條命令
pip install webdriver-manager
安裝selenium
pip install selenium==4.0.0
3. selenium
我們安裝好了webdriver-manager驅動,可以通過腳本打開瀏覽器,安裝了selenium,可以使用selenium編寫自動化腳本。
在pyCharm編輯器中,檢查python解釋器,確定selenium庫和webdriver-manager庫都安裝成功并加載到項目中,然后編寫一段簡單的selenium腳本
import time from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.common.by import By from webdriver_manager.chrome import ChromeDriverManager ? # 創建谷歌瀏覽器驅動對象,安裝谷歌瀏覽器驅動 driver = webdriver.Chrome(service=Service(ChromeDriverManager().install())) #訪問百度頁面 driver.get("https://www.baidu.com") #在百度頁面的搜索框中搜索 "許嵩" driver.find_element(By.CSS_SELECTOR, "#kw").send_keys("許嵩") #點擊百度頁面的 "百度一下" 按鈕 driver.find_element(By.CSS_SELECTOR, "#su").click() #休眠30秒 time.sleep(30) #關閉瀏覽器 driver.quit()
selenium+web驅動+瀏覽器的工作原理
-
通過selenium編寫的自動化腳本代碼在ChromeDriverService中創建一個服務
-
通過創建好的服務打開webdriver,安裝在本地的驅動服務IP為localhost,port為ChromeDriverService中創建的端口號,該服務地址為selenium向webdriver發送請求的服務地址。
-
向瀏覽器驅動程序發送HTTP請求,瀏覽器驅動程序解析請求,打開瀏覽器,并獲得sessionid,如果再次對瀏覽器操作需攜帶次id
-
打開瀏覽器后,所有的selenium的操作(訪問地址,查找元素等)均通過創建好的服務連接到webdriver,然后使用excute發送請求
-
驅動收到請求并對請求進行解析,轉成瀏覽器能夠進行解析的腳本發送給瀏覽器,瀏覽器通過請求的內容執行對應動作
-
瀏覽器再把執行的動作結果通過瀏覽器驅動程序返回給測試腳本