Selenium自動(dòng)化測(cè)試細(xì)節(jié)講解

與以前瀑布式開發(fā)模式不同蜒茄,現(xiàn)在軟件測(cè)試人員具有使用自動(dòng)化工具執(zhí)行測(cè)試用例套件的優(yōu)勢(shì),而以前诈泼,測(cè)試人員習(xí)慣于通過(guò)測(cè)試腳本執(zhí)行來(lái)完成測(cè)試循榆。

但自動(dòng)化測(cè)試的目的不是完全擺脫手動(dòng)測(cè)試,而是最大程度地減少手動(dòng)運(yùn)行的測(cè)試查刻。自動(dòng)化測(cè)試使您可以快速測(cè)試多語(yǔ)言站點(diǎn)键兜,還可以提高測(cè)試執(zhí)行速度。

一穗泵、Selenium自動(dòng)化

由于開源工具和應(yīng)用程序的成本效益普气,效率,可重復(fù)性佃延,準(zhǔn)確性和易用性现诀,它們變得越來(lái)越重要。Selenium是開放源代碼工具之一履肃,它在應(yīng)用程序測(cè)試方面提供了開放源代碼工具的所有優(yōu)點(diǎn)赶盔。

Selenium是用于測(cè)試的一套Selenium工具。它包含Selenium IDE榆浓,Selenium RC于未,Selenium Webdriver和Selenium Grid。它用于自動(dòng)化Web交互和回歸測(cè)試,并具有記錄和回放功能烘浦。此外還可以將記錄的腳本導(dǎo)出為其他語(yǔ)言抖坪,包括Java,C#闷叉,Python擦俐,Ruby,Javascript和PHP握侧。

二蚯瞧、跨瀏覽器測(cè)試中的Selenium

顧名思義,跨瀏覽器測(cè)試是一種用于在不同的Web瀏覽器和設(shè)備上測(cè)試Web應(yīng)用程序以確保其在每個(gè)設(shè)備和瀏覽器上都能無(wú)縫運(yùn)行的方法品擎。

Selenium幫助在Safari埋合,Google Chrome,Mozilla Firefox和IE中自動(dòng)化測(cè)試案例萄传。Selenium也可以同時(shí)在不同瀏覽器上的同一臺(tái)計(jì)算機(jī)上執(zhí)行測(cè)試用例甚颂。它還支持多種語(yǔ)言和操作系統(tǒng)。

讓我們看一下Selenium的最佳實(shí)踐秀菱,以在自動(dòng)化測(cè)試過(guò)程中充分利用振诬。

三、利用正確的定位器

Selenium框架的底部是與瀏覽器進(jìn)行交互衍菱,從而可以使用文檔**對(duì)象模型(DOM)**檢查赶么,輸入和瀏覽多個(gè)對(duì)象。這是通過(guò)一組操作發(fā)生的脊串,并使用了多個(gè)定位器辫呻,包括CSS選擇器,name洪规,Xpath印屁,ID循捺,標(biāo)記名斩例,鏈接文本和classname。

例如从橘,當(dāng)您不想在開發(fā)人員和測(cè)試人員不了解的情況下更改代碼時(shí)念赶,請(qǐng)使用Class和ID定位器。另一方面恰力,當(dāng)其他團(tuán)隊(duì)進(jìn)行測(cè)試時(shí)叉谜,可以使用鏈接文本來(lái)動(dòng)態(tài)處理情況。最后踩萎,可以采用XPath可用于定位停局。

四、數(shù)據(jù)驅(qū)動(dòng)的測(cè)試

如果要為不同的輸入使用相同的測(cè)試和相同的代碼,則可以依賴Selenium董栽。它將允許開發(fā)人員和質(zhì)量檢查團(tuán)隊(duì)進(jìn)行修改码倦,這意味著您可以將其用于系統(tǒng)功能測(cè)試以及瀏覽器兼容性測(cè)試。

Selenium還允許客戶從其框架中受益锭碳≡客戶可以利用專有的測(cè)試加速器并啟動(dòng)測(cè)試自動(dòng)化。這將減少自動(dòng)化周期時(shí)間擒抛。有很多個(gè)函數(shù)庫(kù)推汽,可讓客戶端啟動(dòng)自動(dòng)化過(guò)程。

五歧沪、不要依賴特定的驅(qū)動(dòng)程序

永遠(yuǎn)不要依賴于一種特定的驅(qū)動(dòng)程序?qū)崿F(xiàn)歹撒。了解驅(qū)動(dòng)程序在不同的瀏覽器中不是瞬時(shí)的。也就是說(shuō)槽畔,不一定會(huì)有IE驅(qū)動(dòng)程序栈妆、FireFox驅(qū)動(dòng)程序等。

例如厢钧,在連續(xù)Linux構(gòu)建過(guò)程中執(zhí)行集成測(cè)試時(shí)鳞尔,將收到RemoteDriver。您可以使用LabelledParameterized(JUnit具有早直,@RunWith 而TestNG為 @Parameters)在Selenium中快速創(chuàng)建小型框架寥假。

和ScreenShotWatchMan(JUnit @Rule,TestNG TestListenerAdapter)霞扬。換句話說(shuō)糕韧,使用參數(shù)注釋來(lái)處理多種瀏覽器類型并準(zhǔn)備好同時(shí)執(zhí)行是不錯(cuò)的選擇。

六喻圃、選擇器順序

選擇選擇器的順序很重要萤彩,因?yàn)檫x擇器(例如XPath和CSS)是基于位置的。與ID斧拍,name和鏈接文本相比雀扶,它們比較慢。name和ID是特別直接和直接的方式選擇器肆汹。CSS通常是ID和Name的組合愚墓。相比之下,XPath應(yīng)該是最后的解決方案昂勉。

健壯的解決方案如下所示: XPath <CSS <Links Text <Name <ID浪册。這意味著以ID開頭,并使XPath為最后一個(gè)選擇器岗照。在3個(gè)沒(méi)有數(shù)據(jù)的表中村象,XPath識(shí)別第二個(gè)表的速度最慢笆环,并且可能不會(huì)返回正確的表。因此厚者,最后選擇了XPath咧织,它們很脆弱。CSS始終與名稱和ID結(jié)合在一起籍救。

七习绢、使用PageObjects設(shè)計(jì)模式

PageObject已作為測(cè)試自動(dòng)化中的最佳設(shè)計(jì)模式而獲得普及。它提升了測(cè)試的可維護(hù)維護(hù)性蝙昙,還減少了代碼重復(fù)量闪萄。此外,它是一個(gè)面向?qū)ο蟮念惼娴撸洚?dāng)被測(cè)應(yīng)用程序頁(yè)面的接口败去。為簡(jiǎn)化起見,PageObject是一種面向?qū)ο蟮脑O(shè)計(jì)模式烈拒,并且將網(wǎng)頁(yè)定義為類圆裕。頁(yè)面上的不同元素將成為變量。用戶交互被用具體的方法實(shí)現(xiàn)荆几。

網(wǎng)頁(yè)=類別

頁(yè)面上的各種元素=變量

用戶互動(dòng)=方法

PageObject的優(yōu)點(diǎn)

通過(guò)較小的UI調(diào)整吓妆,它有助于建立一個(gè)健壯的框架。測(cè)試代碼和頁(yè)面代碼是分開的吨铸。

它們可靠且易于維護(hù)行拢。

該腳本是可讀的。該代碼是可重用的诞吱。

幾乎完全消除重復(fù)舟奠。

八、提倡wait避免sleep

利用wait代替sleep房维。了解顯式和隱式等待沼瘫,還有Thread.sleep()邏輯。然后咙俩,為什么wait等待而不是sleep耿戚。

wait

顯式–等待某種情況發(fā)生,而無(wú)需繼續(xù)編寫代碼暴浦。

隱式–指示W(wǎng)ebDriver輪詢DOM溅话,直到完成對(duì)元素的搜索為止晓锻。默認(rèn)情況下歌焦,時(shí)間設(shè)置為0。

sleep

Thread.sleep()無(wú)論工作頁(yè)是否準(zhǔn)備就緒砚哆,都會(huì)在括號(hào)內(nèi)指定的秒數(shù)內(nèi)等待独撇。

九、關(guān)閉Firebug起始頁(yè)

在啟動(dòng)firefox驅(qū)動(dòng)程序時(shí),可能已包含firebug纷铣。有時(shí)這可能導(dǎo)致無(wú)法工作正常卵史。如果在啟動(dòng)瀏覽器時(shí)同時(shí)打開一個(gè)新的firebug選項(xiàng)卡使您感到煩惱,請(qǐng)按照以下提供的提示之一關(guān)閉firebug起始頁(yè)搜立。

在showFirstRunPage標(biāo)志中將False設(shè)置以躯,如下。

FirefoxProfile profile =newFirefoxProfile();profile.setPreference("extensions.firebug.showFirstRunPage",false);


最后: 可以在?這里這里這里 啄踊! 自行領(lǐng)取一份216頁(yè)軟件測(cè)試工程師面試寶典文檔資料【免費(fèi)的】忧设。以及相對(duì)應(yīng)的視頻學(xué)習(xí)教程免費(fèi)分享!颠通,其中包括了有基礎(chǔ)知識(shí)址晕、Linux必備、Shell顿锰、互聯(lián)網(wǎng)程序原理谨垃、Mysql數(shù)據(jù)庫(kù)、抓包工具專題硼控、接口測(cè)試工具刘陶、測(cè)試進(jìn)階-Python編程、Web自動(dòng)化測(cè)試牢撼、APP自動(dòng)化測(cè)試易核、接口自動(dòng)化測(cè)試、測(cè)試高級(jí)持續(xù)集成浪默、測(cè)試架構(gòu)開發(fā)測(cè)試框架牡直、性能測(cè)試、安全測(cè)試等纳决。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末碰逸,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子阔加,更是在濱河造成了極大的恐慌饵史,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,743評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件胜榔,死亡現(xiàn)場(chǎng)離奇詭異胳喷,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)夭织,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門吭露,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人尊惰,你說(shuō)我怎么就攤上這事讲竿∧嗬迹” “怎么了?”我有些...
    開封第一講書人閱讀 157,285評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵题禀,是天一觀的道長(zhǎng)鞋诗。 經(jīng)常有香客問(wèn)我,道長(zhǎng)迈嘹,這世上最難降的妖魔是什么削彬? 我笑而不...
    開封第一講書人閱讀 56,485評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮秀仲,結(jié)果婚禮上吃警,老公的妹妹穿的比我還像新娘。我一直安慰自己啄育,他們只是感情好酌心,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著挑豌,像睡著了一般安券。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上氓英,一...
    開封第一講書人閱讀 49,821評(píng)論 1 290
  • 那天侯勉,我揣著相機(jī)與錄音,去河邊找鬼铝阐。 笑死址貌,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的徘键。 我是一名探鬼主播练对,決...
    沈念sama閱讀 38,960評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼吹害!你這毒婦竟也來(lái)了螟凭?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,719評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤它呀,失蹤者是張志新(化名)和其女友劉穎螺男,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體纵穿,經(jīng)...
    沈念sama閱讀 44,186評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡下隧,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了谓媒。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片淆院。...
    茶點(diǎn)故事閱讀 38,650評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖篙耗,靈堂內(nèi)的尸體忽然破棺而出迫筑,到底是詐尸還是另有隱情,我是刑警寧澤宗弯,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布脯燃,位于F島的核電站,受9級(jí)特大地震影響蒙保,放射性物質(zhì)發(fā)生泄漏辕棚。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評(píng)論 3 313
  • 文/蒙蒙 一邓厕、第九天 我趴在偏房一處隱蔽的房頂上張望逝嚎。 院中可真熱鬧,春花似錦详恼、人聲如沸补君。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)挽铁。三九已至,卻和暖如春敞掘,著一層夾襖步出監(jiān)牢的瞬間叽掘,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工玖雁, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留更扁,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,370評(píng)論 2 360
  • 正文 我出身青樓赫冬,卻偏偏與公主長(zhǎng)得像浓镜,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子劲厌,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容