2021SELENIUM自動(dòng)化面試題及答案_第1頁(yè)
2021SELENIUM自動(dòng)化面試題及答案_第2頁(yè)
2021SELENIUM自動(dòng)化面試題及答案_第3頁(yè)
2021SELENIUM自動(dòng)化面試題及答案_第4頁(yè)
2021SELENIUM自動(dòng)化面試題及答案_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、selenium自動(dòng)化面試題及答案 自動(dòng)化技術(shù)是一門綜合性技術(shù),它和控制論、信息論、系統(tǒng)工程、技術(shù)、電子學(xué)、液壓氣壓技術(shù)、自動(dòng)控制等都有著十分密切的關(guān)系,而其中又以“控制理論”和“計(jì)算機(jī)技術(shù)”對(duì)自動(dòng)化技術(shù)的影響最大。下面就由 _為大家介紹一下selenium 自動(dòng)化題及答案的文章,歡迎閱讀。 1、selenium中如何判斷元素是否存在? - isElementPresent 2、selenium中hidden或者是display = none的元素是否可以定位到? - 不能 3、selenium中如何保證操作元素的率?也就是說(shuō)如何保證我點(diǎn)擊的元素一定是可以點(diǎn)擊的? - 添加元素智能等待時(shí)間 d

2、river.implicitly_wait(30) - try 方式進(jìn)行 id,name,clas,x path, css selector 不同方式進(jìn)行定位,如果第一種失敗可以自動(dòng)嘗試第二種 -Selenium保證元素成功率是通過(guò)元素的定位,當(dāng)然它的定位方法很多,一定能有合適的。但是在自動(dòng)化工程的實(shí)施過(guò)程中,高質(zhì)量的自動(dòng)化測(cè)試不是只有測(cè)試人員保證的。需要開發(fā)人員規(guī)范開發(fā)習(xí)慣,如給頁(yè)面元素加上唯一的name,id等,這樣就能大大地提高元素定位的準(zhǔn)確性。當(dāng)然如果開發(fā)人員開發(fā)不規(guī)范,我們?cè)诙ㄎ辉氐臅r(shí)候盡量使用相對(duì)地址定位,這樣能減少元素定位受頁(yè)面變化的影響。只要我們?cè)囟ㄎ粶?zhǔn)確,就能保證我的每一

3、個(gè)操作符合我的預(yù)期 4、如何提高selenium腳本的執(zhí)行速度? - Selenium腳本的執(zhí)行速度受多方面因素的影響,如網(wǎng)速,操作步驟的繁瑣程度,頁(yè)面加載的速度,以及我們?cè)谀_本中設(shè)置的等待時(shí)間,運(yùn)行腳本的線程數(shù)等。所以不能單方面追求運(yùn)行速度的,要確保穩(wěn)定性,能穩(wěn)定地實(shí)現(xiàn)回歸測(cè)試才是關(guān)鍵。 我們可以從以下幾個(gè)方面來(lái)提高速度: 一,減少操作步驟,如經(jīng)過(guò)三四步才能打開我們要測(cè)試的頁(yè)面的話,我們就可以直接通過(guò)網(wǎng)址來(lái)打開,減少不必要的操作。 二,中斷頁(yè)面加載,如果頁(yè)面加載的內(nèi)容過(guò)多,我們可以查看一下加載慢的原因,如果加載的內(nèi)容不影響我們測(cè)試,就設(shè)置超時(shí)時(shí)間,中斷頁(yè)面加載。 三,在設(shè)置等待時(shí)間的時(shí)候,可

4、以sleep固定的時(shí)間,也可以檢測(cè)某個(gè)元素出現(xiàn)后中斷等待也可以提高速度。 四,配置testNG實(shí)現(xiàn)多線程。在編寫測(cè)試用例的時(shí)候,一定要實(shí)現(xiàn)松耦合,然后在服務(wù)器允許的情況下,盡量設(shè)置多線程運(yùn)行,提高執(zhí)行速度。 5、用例在運(yùn)行過(guò)程中經(jīng)常會(huì)出現(xiàn)不穩(wěn)定的情況,也就是說(shuō)這次可以通過(guò),下次就沒通過(guò)了,如何去提升用例的穩(wěn)定性? - time.sleep( ) - driver.implicitly_wait(30) - 多用 try 捕捉,處理異常 -此時(shí)我們要分析出不穩(wěn)定的原因,然后有針對(duì)性的去解決問(wèn)題。主要有以下幾個(gè)方面 : 一,網(wǎng)速問(wèn)題:有的時(shí)候網(wǎng)頁(yè)加載的比較慢,在程序執(zhí)行的時(shí)候要操作的元素沒有顯示出

5、來(lái)。這種情況比較常見,運(yùn)行一次網(wǎng)速好的時(shí)候通過(guò)了,再運(yùn)行一次,頁(yè)面沒有打開,就不通過(guò)了。為了提高穩(wěn)定性,我們只能犧牲運(yùn)行時(shí)間了,在經(jīng)常檢測(cè)失敗的元素前加上等待時(shí)間,等要操作的元素出現(xiàn)之后再執(zhí)行下面的操作。 二,Selelnium的原因:Selenium1.0和2.0還是有區(qū)別的,有些兒在2.0下運(yùn)行確實(shí)有時(shí)而有效,時(shí)面無(wú)效。如果mouseover()函數(shù),就是這種情況, 我們需要避免使用這類的函數(shù)。 三,多線程的時(shí)候,測(cè)試用例間相互影響。雖然多線程的時(shí)候運(yùn)行速度比較快,但是如果用例之間的耦合性沒有設(shè)計(jì)好,也會(huì)影響的,如果用例A先于用例B執(zhí)行的時(shí)候,就會(huì)影響到用例B;反之則沒有問(wèn)題。這種情況,如

6、果你的自動(dòng)化測(cè)試工程打算多線程的時(shí)候,提前就要把測(cè)試用例測(cè)試的耦合度比較松,盡量沒有任何關(guān)系,因?yàn)槎嗑€程的執(zhí)行順序是不受控制的。 6、你的自動(dòng)化用例的執(zhí)行策略是什么? - 自動(dòng)化測(cè)試用例的執(zhí)行策略是要看自動(dòng)化測(cè)試的目的,通常有如下幾種策略: 一,自動(dòng)化測(cè)試用例是用來(lái)監(jiān)控的,在此目的下,我們就把自動(dòng)化測(cè)試用例設(shè)置成定時(shí)執(zhí)行的,如果每五分鐘或是一個(gè)小時(shí)執(zhí)行一次,在jenkins上創(chuàng)建一個(gè)定時(shí)任務(wù)即可。 二,必須回歸的用例。有些兒測(cè)試用例,如BVT測(cè)試用例,我們?cè)诠井a(chǎn)品任何變動(dòng)上線之前都需要回歸執(zhí)行。那我們就把測(cè)試用例設(shè)置成觸發(fā)式執(zhí)行,在jenkins上將我們的自動(dòng)化測(cè)試任務(wù)綁定到開發(fā)的build

7、任務(wù)上。當(dāng)開發(fā)人員在仿真環(huán)境上部代碼的時(shí)候,我們的自動(dòng)化測(cè)試用例就會(huì)被觸發(fā)執(zhí)行。 三,不需要經(jīng)常執(zhí)行的測(cè)試用例。像全量測(cè)試用例,我們沒有必要一直回歸執(zhí)行,必竟還是有時(shí)間消耗的,有些非主要業(yè)務(wù)線也不需要時(shí)時(shí)回歸。這類測(cè)試用例我們就采用人工執(zhí)行,在jenkins創(chuàng)建一個(gè)任務(wù),需要執(zhí)行的時(shí)候人工去構(gòu)建即可。 1、什么是持續(xù)集成? - 持續(xù)集成源于極限編程(XP),是一種軟件實(shí)踐,軟件開發(fā)過(guò)程中集成步驟是一個(gè)漫長(zhǎng)并且無(wú)法預(yù)測(cè)的過(guò)程。集成過(guò)程中可能會(huì)爆發(fā)大量的問(wèn)題,因此集成過(guò)程需要盡可能小而多,實(shí)際上持續(xù)集成講的是不斷的去做軟件的集成工作。持續(xù)集成,最簡(jiǎn)單的形式是包括一個(gè)監(jiān)控版本控制(SVN等等)變化的

8、工具。當(dāng)變化被發(fā)覺時(shí),這個(gè)工具可以自動(dòng)的編譯并測(cè)試你的應(yīng)用。 2、自動(dòng)化測(cè)試的時(shí)候是不是需要連接數(shù)據(jù)庫(kù)做數(shù)據(jù)校驗(yàn)? - UI自動(dòng)化不需要 - 接口測(cè)試會(huì)需要 3、id,name,class,xpath, css selector這些屬性,你最偏愛哪一種,為什么? - css 、xpath 幾乎所有的元素都可以定位到 4、如何去定位頁(yè)面上動(dòng)態(tài)加載的元素? - 觸發(fā)動(dòng)態(tài)加載元素的事件,直至動(dòng)態(tài)元素出現(xiàn),進(jìn)行定位 5、如何去定位屬性動(dòng)態(tài)變化的元素? - xpath或者css通過(guò)同級(jí)、父級(jí)、子級(jí)進(jìn)行定位 6、點(diǎn)擊鏈接以后,selenium是否會(huì)自動(dòng)等待該頁(yè)面加載完畢? - 會(huì)的 7、webdriver

9、 client的原理是什么? - Webdriver實(shí)現(xiàn)原理(.blogs./timsheng/archive/xx/06/12/2546957.html) 通過(guò)研究selenium-webdriver的源碼,筆者發(fā)現(xiàn)其實(shí)webdriver的實(shí)現(xiàn)原理并不高深莫測(cè)無(wú)法揣度。在這里以webdriver ruby binding的firefox-webdriver實(shí)現(xiàn)為例,簡(jiǎn)單介紹一下webdriver的工作原理。 當(dāng)測(cè)試腳本啟動(dòng)firefox的時(shí)候,selenium-webdriver 會(huì)首先在新線程中啟動(dòng)firefox瀏覽器。如果測(cè)試腳本指定了firefox的profile,那么就以該profi

10、le啟動(dòng),否則的話就新啟1個(gè)profile,并啟動(dòng)firefox; firefox一般是以-no-remote的方法啟動(dòng),啟動(dòng)后selenium-webdriver會(huì)將firefox綁定到特定的端口,綁定完成后該firefox實(shí)例便作為webdriver的remote server存在; 客戶端(也就是測(cè)試腳本)創(chuàng)建1個(gè)session,在該session中通過(guò)請(qǐng)求向remote server發(fā)送restful的請(qǐng)求,remote server解析請(qǐng)求,完成相應(yīng)操作并返回response; 客戶端接受response,并分析其返回值以是轉(zhuǎn)到第3步還是結(jié)束腳本; 這就是webdriver的工作流程

11、,看起來(lái)很復(fù)雜實(shí)際上當(dāng)了解了webdriver的實(shí)現(xiàn)原理后,理解上述問(wèn)題應(yīng)該比較簡(jiǎn)單。 webdriver是按照server client的經(jīng)典設(shè)計(jì)模式設(shè)計(jì)的。 server端就是remote server,可以是任意的瀏覽器。當(dāng)我們的腳本啟動(dòng)瀏覽器后,該瀏覽器就是remote server,它的職責(zé)就是等待client發(fā)送請(qǐng)求并做出相應(yīng); client端簡(jiǎn)單說(shuō)來(lái)就是我們的測(cè)試代碼,我們測(cè)試代碼中的一些行為,比如打開瀏覽器,轉(zhuǎn)跳到特定的url等操作是以請(qǐng)求的方式發(fā)送給被 測(cè)試瀏覽器,也就是remote server;remote server接受請(qǐng)求,并執(zhí)行相應(yīng)操作,并在response中返回

12、執(zhí)行狀態(tài)、返回值等信息; 1、webdriver的協(xié)議是什么? -The WebDriver Wire Protocol 2、啟動(dòng)瀏覽器的時(shí)候用到的是哪個(gè)webdriver協(xié)議? - 3、什么是page object設(shè)計(jì)模式? -.blogs./tsbc/p/4080301.html 相似功能地方,代碼基本都是一樣的,界面元素?fù)Q個(gè)查找方式,把原來(lái)的使用 xpath方式,改為使用 id 查找,需要對(duì)每個(gè)用例腳本都要改,雖然幾個(gè)用例看不出什么工作量,但是重復(fù)findElement的代碼,已經(jīng)讓我們感到了代碼的笨重。如果某些定位發(fā)生了改變,我們就得貫穿整個(gè)測(cè)試代碼進(jìn)行調(diào)整元素定位,這樣就會(huì)導(dǎo)致我們的

13、腳本在后期,難以維護(hù)。因此通過(guò)Page Object Model 我們可以創(chuàng)建更加健壯代碼,并減少或者消除重復(fù)的測(cè)試代碼,從而也能夠提高代碼的可讀性,減少編寫腳本的工作量。Page Object Model的實(shí)現(xiàn),就是通過(guò)分離測(cè)試對(duì)象和測(cè)試腳本的來(lái)實(shí)現(xiàn)的。 4、什么是page factory設(shè)計(jì)模式? - relevantcodes./pageobjects-and-pagefactory-design-patterns-in-selenium/ 5、怎樣去選擇一個(gè)下拉框中的value=xx的option? -二次定位 6、如何在定位元素后高亮元素(以調(diào)試為目的)? -重置元素屬性,給定位的元素加背景、邊框 7、什么是斷言? -斷言的英文是assertion,斷言檢查的英文是assertion checking。 -斷言是指定一個(gè)程序必須已經(jīng)存在的狀態(tài)的一個(gè)邏輯表達(dá)式,或者一組程序變量在程序執(zhí)行期間的某個(gè)點(diǎn)上必須滿足的條件。 8、如果你進(jìn)行自動(dòng)化測(cè)試方案的選型,你會(huì)選擇哪種語(yǔ)言,java,js,python還是ruby? -使用自己

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論