🍅?點擊文末小卡片?,免費獲取軟件測試全套資料,資料在手,漲薪更快??
對于很多剛入門的測試新手來說,大家都將自動化測試作為自己職業發展的一個主要階段。可是,在成為一名合格的自動化測試工程師之前,我們不僅要掌握相應的理論知識,還要進行大量的實踐,積累足夠的經驗,以便快速適應工作需求。
今天,筆者就想給大家介紹一些,關于使用Selenium進行自動化測試的實戰案例經驗。希望對測試新手們有所幫助。
1、測試自動化與Selenium工具
首先,我們要先澄清一個觀點,自動化測試不可能完全取代手動測試。換句話說,就是自動化測試是為了減少手動運行測試用例數,幫助快速測試多語言站點,提高測試執行速度;是為了節省手動測試帶來的時間成本、計算準確性成本等,而不是為了完全擺脫手動測試。因此,希望測試新手們對此有一個清晰的認知。
事實上,自動化測試的過程很簡單,你只需要執行以下步驟:
下面,切回正題。自2000年以來,基于開源工具和應用程序的成本效益、效率、可重復性、準確性和易用性越來越被大家接受和喜愛,因此,使用開源工具進行自動化測試就變得越來越重要。而作為開放源代碼工具之一,Selenium工具(簡稱Selenium)在自動化測試方面,展現了自己的極大優勢。
Selenium包含IDE、RC、Webdriver和Grid等組件,主要用于WEB交互和回歸測試。它除了具有記錄和回放功能外,還能幫助我們將記錄的腳本導出為其他語言,包括Java,C#,Python,Ruby,Javascript和PHP等。
除此以外,Selenium web driver還允許我們通過其封裝好的API進行自動化腳本開發,更好地輔助回歸測試,通過數據驅動DDT,關鍵字驅動,PO等設計模式的結合應用,可以讓我們的自動化腳本更具可靠性,可維護性,及延展性。
2、使用Selenium進行跨瀏覽器測試
顧名思義,跨瀏覽器測試就是在不同的Web瀏覽器和設備上,測試Web應用程序是否能夠正常使用,以確保其在每個設備和瀏覽器上都能正常運行的一種測試。
那么,我們為什么需要跨瀏覽器測試呢?例如,同一個電商頁面,在Chrome瀏覽器中能夠正常顯示,且操作流暢但并不能確保在同一臺機器上IE(通常有不同版本),火狐等瀏覽器上也能正常顯示且操作順利。這也是為什么產生跨瀏覽器測試的由來。
如今,跨瀏覽器測試已成為Web應用程序測試的必需項。Selenium可以幫助我們在同一臺計算機上,執行包括Safari、Chrome、Firefox、IE等不同瀏覽器的測試用例。并且,它還支持多種語言和操作系統。
3、使用Selenium進行測試的一些技巧分享
1)便捷好用的定位器
Selenium web driver中封裝的API給我們提供了8中定位頁面元素的方式:通過id或name定位,通過class name或tag name定位,通過link text和partial link text定位,xpath定位,CSS定位;同時還提供了模擬頁面元素操作方法,鍵盤操作,JS事件處理等一些方法,來滿足與瀏覽器交互的功能。
2)可利用數據驅動做測試
Selenium還具備其他優秀特質。比如,如果要為不同的輸入使用相同的測試和相同的代碼,那么,選它就對了。Selenium允許開發人員和質量檢查團隊進行修改,因為它可以用于系統功能測試,以及瀏覽器兼容性測試。
另外,Selenium還有測試加速器,可以啟動客戶端自動化測試。這可以大大縮減你的回歸測試周期,為你節約時間。
3)不依賴特定的驅動程序
永遠不要依賴于某一種特定的驅動程序,去做自動化測試。因為,不同的瀏覽器版本針對的驅動程序都是1-1對應的,舉個例子,不存在這樣的萬能驅動程序,可以兼容各個版本各個廠商提供的瀏覽器。
另外,還可能發生不存在某種驅動程序的可能。比如,并非每一個chrome版本都有與之能對應上的驅動程序,這樣就需要對被測瀏覽器進行范圍上的指定,有針對性地選擇當前項目中必須測試的那些瀏覽器等。
4)使用Page?Objects
時下,Page?Object已成為了測試自動化中的最佳設計模式。因為它不僅能增強測試維護能力,還能減少代碼重復。此外,它還是一個面向對象的類(OOC),可以充當被測應用程序頁面的接口。
簡言之,Page Object是一種面向對象的設計模式,它重新定義了一些內容。如下:網頁=類別;頁面上的各種元素=變量;用戶互動=方法。
因此,它具備以下優點:
-
由于測試代碼和頁面代碼是分開的。因此,Page Object可以抵制微小的調調整,有助于我們構建更穩固的代碼框架。
-
服務不會通過測試分散,但是該頁面提供的所有服務都有一個存儲庫。
-
可靠且易于維護。
-
腳本是可讀的,且代碼是可重用的,還可以完全消除重復部分。
5)可利用等待代替睡眠,提升測試效率
Selenium具備Thread.sleep()邏輯,可以利用等待代替睡眠,從而提升測試效率。因為,我們都知道,睡眠不僅會減慢測試速度,并且,我們很難確定它什么時候執行完畢;而等待則不同,它能幫我們判斷等待時長,并保證測試速度,從而提升我們的測試效率。
Selenium為我們提供了兩類常用的等待模式:顯示等待和隱式等待,分別用于不同的場景下,兩者也可以搭配著使用,從而更好地輔助自動化測試。
6)當時間緊迫時,不要害怕破解Selenium
在工作中,有時候我們會遇到時間比較緊急,但工作量又比較大的情況。這種時候,我們要學會靈活應對。關鍵時刻,你可以通過入侵Selenium Webdriver,來制作有效的自動化腳本。下面給大家介紹兩個快捷技巧。
(劃重點啦!!)
技巧1:Test NG報告–屏幕快照鏈接
使用以下代碼,來鏈接到Test NG報告的屏幕截圖。這可以讓你快速獲取捕獲屏幕截圖的超鏈接:reporte.data("<: a href="+"E:\\ screenshot \\"+?screenshot_timestamp+".png"+">:")Click to open
技巧2:檢查Web元素的存在
使用下面這串代碼,你將可以快速檢查Web對象的代碼大小并確定特定Web元素的存在:Driver.findElements(pass.ID(“元素-ID”)).size()!=0
寫在最后
實際工作中,Selenium還具備很多實用的功能。如果你能充分利用Selenium,就可以創建一個穩定、真實和可靠的UI自動化流程。當然,前提是你得積累Selenium的各種使用技巧,并經常應用他們。
最后感謝每一個認真閱讀我文章的人,禮尚往來總是要有的,雖然不是什么很值錢的東西,如果你用得到的話可以直接拿走:
?這些資料,對于做【軟件測試】的朋友來說應該是最全面最完整的備戰倉庫,這個倉庫也陪伴我走過了最艱難的路程,希望也能幫助到你!凡事要趁早,特別是技術行業,一定要提升技術功底。