金三銀四,自動(dòng)化測(cè)試面試題精選【拼多多二面】

面試一般分為技術(shù)面和hr面,形式的話很少有群面,少部分企業(yè)可能會(huì)有一個(gè)交叉面,不過(guò)總的來(lái)說(shuō),技術(shù)面基本就是考察你的專業(yè)技術(shù)水平的,hr面的話主要是看這個(gè)人的綜合素質(zhì)以及家庭情況符不符合公司要求,一般來(lái)講,技術(shù)的話只要通過(guò)了技術(shù)面hr面基本上是沒(méi)有問(wèn)題(也有少數(shù)企業(yè)hr面會(huì)刷很多人)

我們主要來(lái)說(shuō)技術(shù)面,技術(shù)面的話主要是考察專業(yè)技術(shù)知識(shí)和水平,下面是我們整理好的自動(dòng)化測(cè)試崗的面試題。

1.如何把自動(dòng)化測(cè)試在公司中實(shí)施并推廣起來(lái)的?

1.項(xiàng)目組調(diào)研選擇自動(dòng)化工具并開會(huì)演示demo案例,我們主要是演示selenium和robotframework兩種。

2.搭建自動(dòng)化測(cè)試框架,在項(xiàng)目中逐步開展自動(dòng)化。

3.把該項(xiàng)目的自動(dòng)化流程、框架固化成文檔

4.推廣到公司的其它項(xiàng)目組應(yīng)用

2.請(qǐng)描述一下自動(dòng)化測(cè)試流程?

1.編寫自動(dòng)化測(cè)試計(jì)劃

2.設(shè)計(jì)自動(dòng)化測(cè)試用例

3.編寫自動(dòng)化測(cè)試框架和腳本

4.調(diào)試并維護(hù)腳本

5.無(wú)人值守測(cè)試

6.后期腳本維護(hù)(添加用例、開發(fā)更新版本)

3.自動(dòng)化測(cè)試用例如何編寫?以下答案二選一即可:

1.用例是自動(dòng)化測(cè)試工程師自己設(shè)計(jì)的,一般剛開始已基本業(yè)務(wù)流程為主(登錄--完成一個(gè)業(yè)務(wù)--退出)

2.從系統(tǒng)測(cè)試用例中進(jìn)行篩選或由業(yè)務(wù)工程師提供

4.上一個(gè)項(xiàng)目中自動(dòng)化測(cè)試的執(zhí)行策略?

上一個(gè)項(xiàng)目中是定時(shí)執(zhí)行的,設(shè)置的執(zhí)行時(shí)間是晚上12點(diǎn),執(zhí)行完畢后會(huì)自動(dòng)發(fā)送郵件通知

5.自動(dòng)化測(cè)試發(fā)現(xiàn)BUG多嗎?

不多,因?yàn)橹绊?xiàng)目組是把已經(jīng)測(cè)試通過(guò)的基本功能再進(jìn)行自動(dòng)化腳本編寫和在后續(xù)版本執(zhí)行自動(dòng)化測(cè)試,它主要是保證已經(jīng)測(cè)試通過(guò)的功能在新版本更新后沒(méi)有問(wèn)題。

6.你覺(jué)得自動(dòng)化測(cè)試的價(jià)值在哪里?你們公司為什么要做自動(dòng)化測(cè)試?

引用自動(dòng)化測(cè)試之后,能代替大量繁瑣的回歸測(cè)試工作,把業(yè)務(wù)測(cè)試人員解放出來(lái),既而讓業(yè)務(wù)測(cè)試人員把精力集中在復(fù)雜的業(yè)務(wù)功能模塊上,自動(dòng)化測(cè)試一般是對(duì)穩(wěn)定下來(lái)的功能進(jìn)行自動(dòng)化,保證不會(huì)因?yàn)楫a(chǎn)品的更新導(dǎo)致之前穩(wěn)定下來(lái)的功能出現(xiàn)BUG

7.自動(dòng)化測(cè)試有誤報(bào)過(guò)bug嗎?產(chǎn)生誤報(bào)怎么辦?

有誤報(bào)過(guò),有時(shí)候自動(dòng)化測(cè)試報(bào)告中顯示發(fā)現(xiàn)了bug,實(shí)際去通過(guò)手工測(cè)試去確認(rèn)又不存在該bug。

誤報(bào)原因一般是:

1.元素定位不穩(wěn)定,需要盡量提高腳本的穩(wěn)定性;

2.開發(fā)更新了頁(yè)面但是測(cè)試沒(méi)有及時(shí)更新維護(hù)!

8.自動(dòng)化測(cè)試過(guò)程中,你遇到了哪些問(wèn)題,是如何解決的?

1.頻繁地變更頁(yè)面,經(jīng)常要修改頁(yè)面對(duì)象類里面的代碼

2.自動(dòng)化測(cè)試偶爾出現(xiàn)過(guò)誤報(bào)

3.自動(dòng)化測(cè)試結(jié)果出現(xiàn)覆蓋的情況:Jenkins根據(jù)時(shí)間建立文件夾

4.自動(dòng)化測(cè)試代碼維護(hù)比較麻煩

5.自動(dòng)化測(cè)試進(jìn)行數(shù)據(jù)庫(kù)對(duì)比數(shù)據(jù)

9.在上一家公司做自動(dòng)化測(cè)試用的什么框架?

可以說(shuō)出以下自己擅長(zhǎng)的一種:

1.python+selenium+unittest+htmltestrunner

2.python+selenium+pytest+allure

3. robotframework+Selenium3

10.在selenium自動(dòng)化測(cè)試中,你一般完成什么類型的測(cè)試?自動(dòng)化覆蓋率?

主要是冒煙測(cè)試和回歸測(cè)試?;貧w測(cè)試主要寫一些功能穩(wěn)定的場(chǎng)景,通過(guò)自動(dòng)化手段去實(shí)現(xiàn),節(jié)約測(cè)試時(shí)間。因?yàn)樽詣?dòng)化測(cè)試用例也是在不斷的更新和迭代,沒(méi)有刻意去統(tǒng)計(jì),大概在30%-40%左右!

11.在執(zhí)行腳本過(guò)程,如何實(shí)現(xiàn)當(dāng)前元素高亮顯示?

這個(gè)其實(shí)就是利用javaScript去修改當(dāng)前元素的邊框樣式來(lái)到達(dá)高亮顯示的效果,

12.如果一個(gè)元素?zé)o法定位,你一般會(huì)考慮哪些方面的原因?

1.頁(yè)面加載元素過(guò)慢,加等待時(shí)間

2.頁(yè)面有frame框架頁(yè),需要先跳轉(zhuǎn)入frame框架再定位

3.可能該元素是動(dòng)態(tài)元素,定位方式要優(yōu)化,可以使用部分元素定位或通過(guò)父節(jié)點(diǎn)或兄弟節(jié)點(diǎn)定位。

4.可能識(shí)別了元素,但是不能操作,比如元素不可用,不可寫等。需要使用js先把前置的操作完成,

13.元素定位方法你熟悉的有哪些?(八大元素定位方式)

id ,name, class, tag, link_text, Partial link text, css, xpath

14.遇到frame框架頁(yè)面怎么處理?

先用driver.switch_to.frame()跳轉(zhuǎn)進(jìn)去frame,

然后再操作頁(yè)面元素,

操作完后使用driver.swith_to.default_content()跳轉(zhuǎn)出來(lái)

15.遇到alert彈出窗如何處理?

使用driver.switch_to.alert方法先跳轉(zhuǎn)到alert彈出窗口

然后再通過(guò)accept點(diǎn)擊確定按鈕,通過(guò)dismiss點(diǎn)擊取消難,通過(guò)text()獲得彈出窗口的文本。

16.如何處理多窗口?

這個(gè)多窗口之間跳轉(zhuǎn)處理,我們?cè)陧?xiàng)目中也經(jīng)常遇到。就是,當(dāng)你點(diǎn)擊一個(gè)鏈接,這個(gè)鏈接會(huì)在一個(gè)新的tab打開,然后你接下來(lái)要在新tab打開的頁(yè)面查找元素,

1.我們?cè)邳c(diǎn)擊鏈接前使用driver.current_window_handle獲得當(dāng)前窗口句柄。

2.再點(diǎn)擊鏈接。點(diǎn)擊后通過(guò)driver.window_handles獲得所有窗口的句柄,

3.然后再循環(huán)找到新窗口的句柄,然后再通過(guò)driver.switch_to.window()方法跳轉(zhuǎn)到新的窗口。

17.怎么驗(yàn)證元素是enable/disabled/checked狀態(tài)?

定位元素后:分別通過(guò)isEnabled(),isSelected(),isDisplayed()三個(gè)方法進(jìn)行判斷。

18.如何處理下拉菜單?

在Selenium中有一個(gè)叫Select的類,這個(gè)類支持對(duì)下拉菜單進(jìn)行操作。使用方法如下:

1.定位元素

2.把定位的元素轉(zhuǎn)化成Select對(duì)象。

sel = Select(定位的元素對(duì)象)

3.通過(guò)下標(biāo)或者值或者文本選中下拉框。

sel.select_by_index(index);
sel.select_by_value(value);
sel.select_by_visible_text(text);

19.在日歷這種web 表單你是如何處理的?

首先要分析當(dāng)前網(wǎng)頁(yè)試用日歷插件的前端代碼,看看能不能通過(guò)元素定位,點(diǎn)擊日期實(shí)現(xiàn),如果不能,可能需要借助javascript。還有些日歷控件一個(gè)文本輸入框,可以直接sendKeys()方法來(lái)實(shí)現(xiàn)傳入一個(gè)時(shí)間的數(shù)據(jù)。

20.舉例一下說(shuō)明一下你遇到過(guò)那些異常

常見(jiàn)的selenium異常有這些:

NoSuchElementException:沒(méi)有該元素異常
TimeoutException :超時(shí)異常

ElementNotVisibleException :元素不可見(jiàn)異常
NoSuchAttributeException :沒(méi)有這樣屬性異常
NoSuchFrameException :沒(méi)有該frame異常

21.關(guān)閉瀏覽器中quit和close的區(qū)別

簡(jiǎn)單來(lái)說(shuō),兩個(gè)都可以實(shí)現(xiàn)退出瀏覽器session功能,close是關(guān)閉你當(dāng)前聚焦的tab頁(yè)面,而quit是關(guān)閉全部瀏覽器tab頁(yè)面,并退出瀏覽器session。知道這兩個(gè)區(qū)別,我們就知道quit一般用在結(jié)束測(cè)試之前的操作,close用在執(zhí)行用例過(guò)程中關(guān)閉某一個(gè)頁(yè)面的操作。

22.在Selenium中如何實(shí)現(xiàn)截圖,如何實(shí)現(xiàn)用例執(zhí)行失敗才截圖

在Selenium中提供了一個(gè)get_screenshot_as_file()的方法來(lái)截圖的,一般結(jié)合try/except捕獲異常時(shí)使用,進(jìn)行錯(cuò)誤截圖。

23.如何實(shí)現(xiàn)文件上傳?

定位元素后,直接使用send_keys()方法設(shè)置就行,參數(shù)為需要上傳的文件的路徑。

24.自動(dòng)化中有哪三類等待?他們有什么特點(diǎn)?

1.線程等待(強(qiáng)制等待)如time.sleep(2):線程強(qiáng)制休眠2秒鐘,2秒過(guò)后,再執(zhí)行后續(xù)的代碼。建議少用。

2.imlicitlyWait(隱式等待)會(huì)在指定的時(shí)間范圍內(nèi)不斷的查找元素,直到找到元素或超時(shí),特點(diǎn)是必須等待整個(gè)頁(yè)面加載完成。

3.WebDriverWait(顯式等待)通常是我們自定義的一個(gè)函數(shù)代碼,這段代碼用來(lái)等待某個(gè)元素加載完成,再繼續(xù)執(zhí)行后續(xù)的代碼

25.你寫的測(cè)試腳本能在不同瀏覽器上運(yùn)行嗎

當(dāng)然可以,我寫的用例可以在在IE,火狐和谷歌這三種瀏覽器上運(yùn)行。實(shí)現(xiàn)的思路是封裝一個(gè)方法,分別傳入一個(gè)瀏覽器的字符串,如果傳入IE就使用IE,如果傳入FireFox就使用FireFox,如果傳入Chrome就使用Chrome瀏覽器,并且使用什么瀏覽器可以在總的ini配置文件中進(jìn)行配置。需要注意的是每個(gè)瀏覽器使用的驅(qū)動(dòng)不一樣。

26.什么是PO模式,為什么要使用它

PO是Page Object 模式的簡(jiǎn)稱,它是一種設(shè)計(jì)思想,意思是,把一個(gè)頁(yè)面,當(dāng)做一個(gè)對(duì)象,頁(yè)面的元素和元素之間操作方法就是頁(yè)面對(duì)象的屬性和行為,PO模式一般使用三層架構(gòu),分別為:基礎(chǔ)封裝層BasePage,PO頁(yè)面對(duì)象層,TestCase測(cè)試用例層。

27.你會(huì)封裝自動(dòng)化測(cè)試框架嗎?

這個(gè)問(wèn)得最多,甚至有很多公司直接卸載招聘要求中

當(dāng)然可以,自動(dòng)化框架主要的核心框架就是分層+PO模式:分別為:基礎(chǔ)封裝層BasePage,PO頁(yè)面對(duì)象層,TestCase測(cè)試用例層。然后再加上日志處理模塊,ini配置文件讀取模塊,unittest+ddt數(shù)據(jù)驅(qū)動(dòng)模塊,jenkins持續(xù)集成模式組成。

28.你們測(cè)試團(tuán)隊(duì)如何提升自己的測(cè)試技能?

更多是靠技術(shù)討論和學(xué)習(xí)交流,除了我們公司內(nèi)部群之外,我們還會(huì)有相關(guān)的技術(shù)交流群,可以和跟很多同行一起學(xué)習(xí),完善自己的技能樹。IT行業(yè)技術(shù)更新迭代本來(lái)就很快,所以更需要保持學(xué)習(xí)的心態(tài)。感興趣可以關(guān)注我們愛(ài)碼小士,公眾號(hào)內(nèi)會(huì)有不定期的發(fā)放免費(fèi)的資料鏈接,還有同行一起技術(shù)交流。

好看的人都點(diǎn)了【贊同】罒ω罒

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容