天天看點

使用Selenium進行自動化測試

使用Selenium進行自動化測試
願你我相遇,皆有所獲! 歡迎關注微信公衆号:【傷心的辣條】 免費領取一份216頁軟體測試工程師面試寶典文檔資料。以及相對應的視訊學習教程免費分享!
           

對于很多剛入門的測試新手來說,大家都将自動化測試作為自己職業發展的一個主要階段。可是,在成為一名合格的自動化測試工程師之前,我們不僅要掌握相應的理論知識,還要進行大量的實踐,積累足夠的經驗,以便快速适應工作需求。

今天,筆者就想給大家介紹一些,關于使用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可以抵制微小的UI調整,助于我們建構更穩固的代碼架構。

服務不會通過測試分散,但是該頁面提供的所有服務都有一個存儲庫。

可靠且易于維護。

腳本是可讀的,且代碼是可重用的,還可以完全消除重複部分。

5)可利用等待代替睡眠,提升測試效率

Selenium具備Thread.sleep()邏輯,可以利用等待代替睡眠,進而提升測試效率。因為,我們都知道,睡眠不僅會減慢測試速度,并且,我們很難确定他什麼時候執行完畢;而等待則不同,它能幫我們判斷等待時長,并保證測試速度,進而提升我們的測試效率。

Selenium為我們提供了兩類常用的等待模式:顯示等待和隐式等待,分别用于不同的場景下,兩者也可以搭配着使用,進而更好地輔助自動化測試。

6)當時間緊迫時,不要害怕破解Selenium

在工作中,有時候我們會遇到時間比較緊急,但工作量又比較大的情況。這種時候,我們要學會靈活應對。關鍵時刻,你可以通過入侵Selenium Webdriver,來制作有效的自動化腳本。下面給大家介紹兩個快捷技巧。(劃重點啦!!)

技巧1:Test NG報告–螢幕快照連結

使用以下代碼,來連結到Test NG報告的螢幕截圖。這可以讓你快速擷取捕獲螢幕截圖的超連結。

技巧2:檢查Web元素的存在

使用下面這串代碼,你将可以快速檢查Web對象的代碼大小并确定特定Web元素的存在。

寫在最後

實際工作中,Selenium還具備很多實用的功能。如果你能充分利用Selenium,就可以建立一個穩定、真實和可靠的UI自動化流程。當然,前提是你得積累Selenium的各種使用技巧,并經常應用他們。

技術行業,一定要提升技術功底,豐富自動化項目實戰經驗,這對于你未來幾年職業規劃,以及測試技術掌握的深度非常有幫助。

金九銀十面試季,跳槽季,整理面試題已經成了我多年的習慣!下面有我近幾年的收集和整理,整體是圍繞着【軟體測試】來進行整理的,主體内容包含:python自動化測試專屬視訊、Python自動化詳細資料、全套面試題等知識内容。

使用Selenium進行自動化測試

對于軟體測試的的朋友來說應該是最全面最完整的面試備戰倉庫,為了更好地整理每個子產品,我也參考了很多網上的優質博文和項目,力求不漏掉每一個知識點,很多朋友靠着這些内容進行複習,拿到了BATJ等大廠的offer,這個倉庫也已經幫助了很多的軟體測試的學習者,希望也能幫助到你!

願你我相遇,皆有所獲! 歡迎關注微信公衆号:【傷心的辣條】 免費領取一份216頁軟體測試工程師面試寶典文檔資料。以及相對應的視訊學習教程免費分享!

使用Selenium進行自動化測試