對于很多剛?cè)腴T的測試新手來說,大家都將自動化測試作為自己職業(yè)發(fā)展的一個主要階段??墒?,在成為一名合格的自動化測試工程師之前,我們不僅要掌握相應(yīng)的理論知識,還要進(jìn)行大量的實踐,積累足夠的經(jīng)驗,以便快速適應(yīng)工作需求。
今天,筆者就想給大家介紹一些,關(guān)于使用Selenium進(jìn)行自動化測試的實戰(zhàn)案例經(jīng)驗。希望對測試新手們有所幫助。
1、測試自動化與Selenium工具
首先,我們要先澄清一個觀點,自動化測試不可能完全取代手動測試。換句話說,就是自動化測試是為了減少手動運行測試用例數(shù),幫助快速測試多語言站點,提高測試執(zhí)行速度;是為了節(jié)省手動測試帶來的時間成本、計算準(zhǔn)確性成本等,而不是為了完全擺脫手動測試。因此,希望測試新手們對此有一個清晰的認(rèn)知。
事實上,自動化測試的過程很簡單,你只需要執(zhí)行以下步驟:
下面,切回正題。自2000年以來,基于開源工具和應(yīng)用程序的成本效益、效率、可重復(fù)性、準(zhǔn)確性和易用性越來越被大家接受和喜愛,因此,使用開源工具進(jìn)行自動化測試就變得越來越重要。而作為開放源代碼工具之一,Selenium工具(簡稱Selenium)在自動化測試方面,展現(xiàn)了自己的極大優(yōu)勢。
Selenium包含IDE、RC、Webdriver和Grid等組件,主要用于WEB交互和回歸測試。它除了具有記錄和回放功能外,還能幫助我們將記錄的腳本導(dǎo)出為其他語言,包括Java,C#,Python,Ruby,Javascript和PHP等。
除此以外,Selenium web driver還允許我們通過其封裝好的API進(jìn)行自動化腳本開發(fā),更好地輔助回歸測試,通過數(shù)據(jù)驅(qū)動DDT,關(guān)鍵字驅(qū)動,PO等設(shè)計模式的結(jié)合應(yīng)用,可以讓我們的自動化腳本更具可靠性,可維護(hù)性,及延展性
2、使用Selenium進(jìn)行跨瀏覽器測試
顧名思義,跨瀏覽器測試就是在不同的Web瀏覽器和設(shè)備上,測試Web應(yīng)用程序是否能夠正常使用,以確保其在每個設(shè)備和瀏覽器上都能正常運行的一種測試。
那么,我們?yōu)槭裁葱枰鐬g覽器測試呢?例如,同一個電商頁面,在Chrome瀏覽器中能夠正常顯示,且操作流暢但并不能確保在同一臺機(jī)器上IE(通常有不同版本),火狐等瀏覽器上也能正常顯示且操作順利。這也是為什么產(chǎn)生跨瀏覽器測試的由來。
如今,跨瀏覽器測試已成為Web應(yīng)用程序測試的必需項。Selenium可以幫助我們在同一臺計算機(jī)上,執(zhí)行包括Safari、Chrome、Firefox、IE等不同瀏覽器的測試用例。并且,它還支持多種語言和操作系統(tǒng)。
3、使用Selenium進(jìn)行測試的一些技巧分享
1)便捷好用的定位器
Selenium web driver中封裝的API給我們提供了8中定位頁面元素的方式:通過id或name定位,通過class name或tag name定位,通過link text和partial link text定位,xpath定位,CSS定位;同時還提供了模擬頁面元素操作方法,鍵盤操作,JS事件處理等一些方法,來滿足與瀏覽器交互的功能。
2)可利用數(shù)據(jù)驅(qū)動做測試
Selenium還具備其他優(yōu)秀特質(zhì)。比如,如果要為不同的輸入使用相同的測試和相同的代碼,那么,選它就對了。Selenium允許開發(fā)人員和質(zhì)量檢查團(tuán)隊進(jìn)行修改,因為它可以用于系統(tǒng)功能測試,以及瀏覽器兼容性測試。
另外,Selenium還有測試加速器,可以啟動客戶端自動化測試。這可以大大縮減你的回歸測試周期,為你節(jié)約時間。
3)不依賴特定的驅(qū)動程序
永遠(yuǎn)不要依賴于某一種特定的驅(qū)動程序,去做自動化測試。因為,不同的瀏覽器版本針對的驅(qū)動程序都是1-1對應(yīng)的,舉個例子,不存在這樣的萬能驅(qū)動程序,可以兼容各個版本各個廠商提供的瀏覽器。
另外,還可能發(fā)生不存在某種驅(qū)動程序的可能。比如,并非每一個chrome版本都有與之能對應(yīng)上的驅(qū)動程序,這樣就需要對被測瀏覽器進(jìn)行范圍上的指定,有針對性地選擇當(dāng)前項目中必須測試的那些瀏覽器等。
4)使用Page Objects
時下,Page Object已成為了測試自動化中的最佳設(shè)計模式。因為它不僅能增強(qiáng)測試維護(hù)能力,還能減少代碼重復(fù)。此外,它還是一個面向?qū)ο蟮念悾∣OC),可以充當(dāng)被測應(yīng)用程序頁面的接口。
簡言之,Page Object是一種面向?qū)ο蟮脑O(shè)計模式,它重新定義了一些內(nèi)容。如下:網(wǎng)頁=類別;頁面上的各種元素=變量;用戶互動=方法。
因此,它具備以下優(yōu)點:
由于測試代碼和頁面代碼是分開的。因此,Page Object可以抵制微小的調(diào)調(diào)整,有助于我們構(gòu)建更穩(wěn)固的代碼框架。
服務(wù)不會通過測試分散,但是該頁面提供的所有服務(wù)都有一個存儲庫。
可靠且易于維護(hù)。
腳本是可讀的,且代碼是可重用的,還可以完全消除重復(fù)部分。
5)可利用等待代替睡眠,提升測試效率
Selenium具備Thread.sleep()邏輯,可以利用等待代替睡眠,從而提升測試效率。因為,我們都知道,睡眠不僅會減慢測試速度,并且,我們很難確定它什么時候執(zhí)行完畢;而等待則不同,它能幫我們判斷等待時長,并保證測試速度,從而提升我們的測試效率。
Selenium為我們提供了兩類常用的等待模式:顯示等待和隱式等待,分別用于不同的場景下,兩者也可以搭配著使用,從而更好地輔助自動化測試。
6)當(dāng)時間緊迫時,不要害怕破解Selenium
在工作中,有時候我們會遇到時間比較緊急,但工作量又比較大的情況。這種時候,我們要學(xué)會靈活應(yīng)對。關(guān)鍵時刻,你可以通過入侵Selenium Webdriver,來制作有效的自動化腳本。下面給大家介紹兩個快捷技巧。
(劃重點啦?。。?/p>
技巧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,就可以創(chuàng)建一個穩(wěn)定、真實和可靠的UI自動化流程。當(dāng)然,前提是你得積累Selenium的各種使用技巧,并經(jīng)常應(yīng)用他們。
今天的分享就到此結(jié)束了,如果文章對你有幫助,記得點贊,收藏,加關(guān)注。會不定期分享一些干貨哦......文章來源:http://www.zghlxwxcb.cn/news/detail-458140.html
?文章來源地址http://www.zghlxwxcb.cn/news/detail-458140.html
到了這里,關(guān)于一文3000字從0到1使用Selenium進(jìn)行自動化測試的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!