自動化測試何時切入?為何選擇selenium做UI自動化?
一、什么時候引入自動化測試?
看了那么多文章,我們不談虛的,今天就聊點實際的,我們什么階段需要引入AutoTest呢?
毋庸置疑的告訴你是當(dāng)case越來越多,而產(chǎn)品迭代周期不變的情況下,總有一天,現(xiàn)有團隊無法在上線之前把所有的case執(zhí)行完,此時我們需要更有效率的用例執(zhí)行方式。同時測試人員總是需要重復(fù)執(zhí)行同樣的TestCase,時間長了會產(chǎn)生疲憊感,我們此時就會想辦法把一些枯燥的工作交給自動化程序去執(zhí)行。
二、為何選型selenium自動化測試工具?
在web自動化測試中,用得較多的主要有以下框架Selenium、Cypress、Playwright、Puppeter....以下是Selenium在各方面技術(shù)/特性與其他測試框架的對比
腳本語言支持方面,Selenium、Playwright支持的最多。因為不同的公司、不同的技術(shù)棧,程序員使用的語言都不一樣,支持的語言更多占據(jù)的優(yōu)勢就更大,因此Selenium擁有了更多的潛在用戶群體
從瀏覽器的支持程度來看,TestCafe支持的最多,Selenium與其他幾個框架則大同小異,而Cypress支持的相對較少,且不支持運用廣泛的IE和Safari瀏覽器
多Tab,iFrame支持及并行測試方面,Selenium也都是支持的,而Cypress則都不支持
原生DOM選擇器方面,雖然Playwright(到底是微軟)支持的最多,但Selenium也能夠支持主流的兩種選擇器CSS和XPath
在錄制插件和解決方案方面,Selenium也是做得比較好的。Protractor、WebDriverIO因為和Selenium同宗同源,所以差異不大。而Cypress、TestCafe、Playwright在這兩方面則相對較差,都沒有比較好的解決方案。
三、Selenium特點
開源軟件:源代碼開放可以根據(jù)需要來增加工具的某些功能
跨平臺:Linux、windows、mac
支持多種瀏覽器:Firefox、Chrome、IE、Edge、Opera、Safari等
支持多種語言:Python、Java、C#、JavaScript、Ruby、PHP等
成熟穩(wěn)定:目前已經(jīng)被Google、百度、騰訊等公司廣泛使用
功能強大:能夠?qū)崿F(xiàn)類似商業(yè)工具的大部分功能嗎,因為開源性,可實現(xiàn)定制化功能
四、Selenium的短板在哪里?
當(dāng)然,作為軟件開發(fā)的從業(yè)者,選擇某一種技術(shù)必然要承擔(dān)其技術(shù)負(fù)債。Selenium雖然具備以上提及的多種優(yōu)點,但Selenium有以下4個方面的困難。而這4個困難恰恰是當(dāng)今UI自動化不被看好的主要原因
元素定位困難。隨著打包編譯等技術(shù)的不斷發(fā)展,使用了新的現(xiàn)代化的條件渲染引擎后,頁面元素定位復(fù)雜多變,依靠Selenium中原有的ID、CSS、XPath等選擇器編寫的腳本有時候不能很好地工作,原先的定位方式不再適用
等待元素?zé)o法做到自動等待。當(dāng)測試運行的服務(wù)發(fā)生異常、資源不夠或者網(wǎng)絡(luò)擁堵時,頁面元素的渲染時間會受到影響。由于Selenium是通過WebDriver控制瀏覽器,需要用戶自己去管理等待時間,而這個時間通常都是不太固定的
插件錄制會把不必要的步驟錄制下來。所有的錄制插件都會錄制非常多的不必要步驟,比如點擊一個按鈕,插件會把鼠標(biāo)移動的過程也錄制進去
人工維護元素定位非常困難,工作量非常大。當(dāng)UI測試的用例數(shù)量愈加龐大,元素定位的維護就會變得相當(dāng)困難,當(dāng)需求發(fā)生變更時,頁面也可能隨之發(fā)生改變。而這一改變對于不熟知前端代碼的測試人員來說通常是難以察覺的
五、總結(jié)
Selenium在腳本語、瀏覽器持、并發(fā)、分布式,以及插件錄制、視頻錄制都有完整的案例,開源、多平臺、多瀏覽器、API齊全、技術(shù)架構(gòu)也在不停的演化升級維護,你有任何技術(shù)問題在搜索引擎去檢索基本都可以搜索到解決方案,目前就企業(yè)測試團隊使用selenium的用戶群體居多,所以選擇了selenium!
作者: Python測試社區(qū)
歡迎關(guān)注微信公眾號 :Python測試社區(qū)