Selenium自动化测试技巧还不知道吗?
1、前言
與以前瀑布式開發(fā)模式不同,現(xiàn)在軟件測試人員具有使用自動化工具執(zhí)行測試用例套件的優(yōu)勢,而以前,測試人員習(xí)慣于通過測試腳本執(zhí)行來完成測試。
但自動化測試的目的不是完全擺脫手動測試,而是最大程度地減少手動運行的測試。自動化測試使您可以快速測試多語言站點,還可以提高測試執(zhí)行速度。
2、Selenium自動化
由于開源工具和應(yīng)用程序的成本效益,效率,可重復(fù)性,準(zhǔn)確性和易用性,它們變得越來越重要。Selenium是開放源代碼工具之一,它在應(yīng)用程序測試方面提供了開放源代碼工具的所有優(yōu)點。
Selenium是用于測試的一套Selenium工具。它包含Selenium IDE,Selenium RC,Selenium Webdriver和Selenium Grid。它用于自動化Web交互和回歸測試,并具有記錄和回放功能。此外還可以將記錄的腳本導(dǎo)出為其他語言,包括Java,C#,Python,Ruby,Javascript和PHP。
3、跨瀏覽器測試中的Selenium
顧名思義,跨瀏覽器測試是一種用于在不同的Web瀏覽器和設(shè)備上測試Web應(yīng)用程序以確保其在每個設(shè)備和瀏覽器上都能無縫運行的方法。
Selenium幫助在Safari,Google Chrome,Mozilla Firefox和IE中自動化測試案例。Selenium也可以同時在不同瀏覽器上的同一臺計算機上執(zhí)行測試用例。它還支持多種語言和操作系統(tǒng)。
讓我們看一下Selenium的最佳實踐,以在自動化測試過程中充分利用。
4、利用正確的定位器
Selenium框架的底部是與瀏覽器進(jìn)行交互,從而可以使用文檔**對象模型(DOM)**檢查,輸入和瀏覽多個對象。這是通過一組操作發(fā)生的,并使用了多個定位器,包括CSS選擇器,name,Xpath,ID,標(biāo)記名,鏈接文本和classname。
例如,當(dāng)您不想在開發(fā)人員和測試人員不了解的情況下更改代碼時,請使用Class和ID定位器。另一方面,當(dāng)其他團隊進(jìn)行測試時,可以使用鏈接文本來動態(tài)處理情況。最后,可以采用XPath可用于定位。
5、數(shù)據(jù)驅(qū)動的測試
如果要為不同的輸入使用相同的測試和相同的代碼,則可以依賴Selenium。它將允許開發(fā)人員和質(zhì)量檢查團隊進(jìn)行修改,這意味著您可以將其用于系統(tǒng)功能測試以及瀏覽器兼容性測試。
Selenium還允許客戶從其框架中受益??蛻艨梢岳脤S械臏y試加速器并啟動測試自動化。這將減少自動化周期的時間。有很多個函數(shù)庫,可讓客戶端啟動自動化過程。
6、不要依賴特定的驅(qū)動程序
永遠(yuǎn)不要依賴于一種特定的驅(qū)動程序?qū)崿F(xiàn)。了解驅(qū)動程序在不同的瀏覽器中不是瞬時的。也就是說,不一定會有IE驅(qū)動程序、FireFox驅(qū)動程序等。
例如,在連續(xù)Linux構(gòu)建過程中執(zhí)行集成測試時,將收到RemoteDriver。您可以使用LabelledParameterized(JUnit具有,@RunWith 而TestNG為 @Parameters)在Selenium中快速創(chuàng)建小型框架。
和ScreenShotWatchMan(JUnit @Rule,TestNG TestListenerAdapter)。換句話說,使用參數(shù)注釋來處理多種瀏覽器類型并準(zhǔn)備好同時執(zhí)行是不錯的選擇。
7、選擇器順序
選擇選擇器的順序很重要,因為選擇器(例如XPath和CSS)是基于位置的。與ID,name和鏈接文本相比,它們比較慢。name和ID是特別直接和直接的方式選擇器。CSS通常是ID和Name的組合。相比之下,XPath應(yīng)該是最后的解決方案。
健壯的解決方案如下所示: XPath <css <links="" text="" <name="" <id。這意味著以id開頭,并使xpath為最后一個選擇器。在3個沒有數(shù)據(jù)的表中,xpath識別第二個表的速度最慢,并且可能不會返回正確的表。因此,最后選擇了xpath,它們很脆弱。css始終與名稱和id結(jié)合在一起。
8、使用PageObjects設(shè)計模式
PageObject已作為測試自動化中的最佳設(shè)計模式而獲得普及。它提升了測試的可維護(hù)性,還減少了代碼重復(fù)量。此外,它是一個面向?qū)ο蟮念悾洚?dāng)被測應(yīng)用程序頁面的接口。為簡化起見,PageObject是一種面向?qū)ο蟮脑O(shè)計模式,并且將網(wǎng)頁定義為類。頁面上的不同元素將成為變量。用戶交互沒有用具體的方法實現(xiàn)。
網(wǎng)頁=類別
頁面上的各種元素=變量
用戶互動=方法
PageObject的優(yōu)點
通過較小的UI調(diào)整,它有助于建立一個健壯的框架。測試代碼和頁面代碼是分開的。
它們可靠且易于維護(hù)。
該腳本是可讀的。該代碼是可重用的。
幾乎完全消除重復(fù)。
9、提倡wait避免sleep
利用wait代替sleep。了解顯式和隱式等待,還有Thread.sleep()邏輯。然后,為什么wait等待而不是sleep。
wait
顯式–等待某種情況發(fā)生,而無需繼續(xù)編寫代碼。
隱式–指示W(wǎng)ebDriver輪詢DOM,直到完成對元素的搜索為止。默認(rèn)情況下,時間設(shè)置為0。
sleep
Thread.sleep()無論工作頁是否準(zhǔn)備就緒,都會在括號內(nèi)指定的秒數(shù)內(nèi)等待。
10、關(guān)閉Firebug起始頁
在啟動firefox驅(qū)動程序時,可能已包含firebug。有時這可能導(dǎo)致無法正常工作正常。如果在啟動瀏覽器時同時打開一個新的firebug選項卡使您感到煩惱,請按照以下提供的提示之一關(guān)閉firebug起始頁。
在showFirstRunPage標(biāo)志中將False設(shè)置,如下。
FirefoxProfile profile = new FirefoxProfile();profile.setPreference("extensions.firebug.showFirstRunPage", false);
感謝每一個認(rèn)真閱讀我文章的人?。?!
如果下面這些資料用得到的話可以直接拿走:
1、自學(xué)開發(fā)或者測試必備的完整項目源碼與環(huán)境
2、測試工作中所有模板(測試計劃、測試用例、測試報告等)
3、軟件測試經(jīng)典面試題
4、Python/Java自動化測試實戰(zhàn).pdf
5、Jmeter/postman接口測試全套視頻獲取
我個人整理了我這幾年軟件測試生涯整理的一些技術(shù)資料,包含:電子書,簡歷模塊,各種工作模板,面試寶典,自學(xué)項目等。如果在學(xué)習(xí)或工作中遇到問題可以直接進(jìn)群詢問,群里也會有大神幫忙解答,需要的可以在評論區(qū)找我
總結(jié)
以上是生活随笔為你收集整理的Selenium自动化测试技巧还不知道吗?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [BC26]2.BC26接入电信AEP平
- 下一篇: Linux跑分-unixbench性能测