2020年最全的自動化測試面試題及答案--看完後吊打面試官!自動化測試是什麼?自動化測試學什麼?

一、前言

最近有童鞋和我抱怨,說網上很難搜到那些全面又合適的自動化測試面試題,這裏根據我個人的經驗以及收集整理的:

你沒看錯,不慌,慢慢來。

先從什麼是自動化測試開始說起哈!

二、什麼是自動化測試?

什麼是自動化測試?

當我第一次知道自動化測試的時候,除了知道“自動化”這三個有些高大上的稱呼之外,我對自動化測試一無所知,正如談戀愛一樣,找女朋友之前要知道她是誰。

自動測試就是把以人爲驅動的測試轉化爲機器執行的一種過程,它是一種以程序測試程序的過程。嗦嘎!那麼...

三、自動化測試需要學什麼技能?

這是我以前在CSDN寫的,可以詳細的瞭解2020年自動化測試攻城獅需要學什麼技能了!

2020年軟件測試工程師需要具備的技能--需要學什麼(靈魂拷問)

https://blog.csdn.net/pengjiangchun/article/details/105292247

四、2020年全網最全的自動化測試面試題和答案,原來乾貨都在這裏

1、你會封裝自動化測試框架嗎?

這個問得最多,甚至有很多公司直接寫在招聘要求中!

當然可以,自動化框架主要的核心框架就是分層+PO模式:分別爲:基礎封裝層BasePage,PO頁面對象層,TestCase測試用例層。然後再加上日誌處理模塊,ini配置文件讀取模塊,unittest+ddt數據驅動模塊,jenkins持續集成模式組成。

2、如何把自動化測試在公司中實施並推廣起來的?

1.項目組調研選擇自動化工具並開會演示demo案例,我們主要是演示selenium和robotframework兩種。

2.搭建自動化測試框架,在項目中逐步開展自動化。

3.把該項目的自動化流程、框架固化成文檔 

4.推廣到公司的其它項目組應用

3、請描述一下自動化測試流程?

1.編寫自動化測試計劃

2.設計自動化測試用例

3.編寫自動化測試框架和腳本

4.調試並維護腳本

5.無人值守測試

6.後期腳本維護(添加用例、開發更新版本)

4、自動化測試用例如何編寫?以下答案二選一即可:

1.用例是自動化測試工程師自己設計的,一般剛開始已基本業務流程爲主(登錄--完成一個業務--退出)

2.從系統測試用例中進行篩選或由業務工程師提供

5、上一個項目中自動化測試的執行策略?

上一個項目中是定時執行的,設置的執行時間是晚上12點,執行完畢後會自動發送郵件通知

6、自動化測試發現BUG多嗎?

不多,因爲之前項目組是把已經測試通過的基本功能再進行自動化腳本編寫和在後續版本執行自動化測試,它主要是保證已經測試通過的功能在新版本更新後沒有問題。

7、你覺得自動化測試的價值在哪裏?你們公司爲什麼要做自動化測試?

引用自動化測試之後,能代替大量繁瑣的迴歸測試工作,把業務測試人員解放出來,既而讓業務測試人員把精力集中在複雜的業務功能模塊上,自動化測試一般是對穩定下來的功能進行自動化,保證不會因爲產品的更新導致之前穩定下來的功能出現BUG

8、自動化測試有誤報過bug嗎?產生誤報怎麼辦?

有誤報過,有時候自動化測試報告中顯示發現了bug,實際去通過手工測試去確認又不存在該bug。

誤報原因一般是:

1.元素定位不穩定,需要儘量提高腳本的穩定性;

2.開發更新了頁面但是測試沒有及時更新維護!

9、自動化測試過程中,你遇到了哪些問題,是如何解決的?

1.頻繁地變更頁面,經常要修改頁面對象類裏面的代碼

2.自動化測試偶爾出現過誤報

3.自動化測試結果出現覆蓋的情況:Jenkins根據時間建立文件夾

4.自動化測試代碼維護比較麻煩

5.自動化測試進行數據庫對比數據

10、在上一家公司做自動化測試用的什麼框架?

可以說出以下自己擅長的一種:

1.python+selenium+unittest+htmltestrunner

2.python+selenium+pytest+allure

3. robotframework+Selenium2Library

11、你們自動化團隊有自己的羣嗎?

當然有:我們使用的羣號是:695458161  有很多軟件測試和自動化大神解決項目中的問題,還會不定時的發放免費資料。

12、在selenium自動化測試中,你一般完成什麼類型的測試?自動化覆蓋率?

主要是冒煙測試和迴歸測試。迴歸測試主要寫一些功能穩定的場景,通過自動化手段去實現,節約測試時間。因爲自動化測試用例也是在不斷的更新和迭代,沒有刻意去統計,大概在30%-40%左右!

13、在執行腳本過程,如何實現當前元素高亮顯示?

這個其實就是利用javaScript去修改當前元素的邊框樣式來到達高亮顯示的效果,

14、如果一個元素無法定位,你一般會考慮哪些方面的原因?

1.頁面加載元素過慢,加等待時間

2.頁面有frame框架頁,需要先跳轉入frame框架再定位

3.可能該元素是動態元素,定位方式要優化,可以使用部分元素定位或通過父節點或兄弟節點定位。

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

15、元素定位方法你熟悉的有哪些?

id      name      classname       link_text      css      xpath

16、遇到frame框架頁面怎麼處理?

先用driver.switch_to.frame()跳轉進去frame,

然後再操作頁面元素,

操作完後使用driver.swith_to.default_content()跳轉出來

17、遇到alert彈出窗如何處理? 

使用driver.switch_to.alert方法先跳轉到alert彈出窗口

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

18、如何處理多窗口?

這個多窗口之間跳轉處理,我們在項目中也經常遇到。就是,當你點擊一個鏈接,這個鏈接會在一個新的tab打開,然後你接下來要在新tab打開的頁面查找元素,

1.我們在點擊鏈接前使用driver.current_window_handle獲得當前窗口句柄。

2.再點擊鏈接。點擊後通過driver.window_handles獲得所有窗口的句柄,

3.然後再循環找到新窗口的句柄,然後再通過driver.switch_to.window()方法跳轉到新的窗口。

19、怎麼驗證元素是enable/disabled/checked狀態?

定位元素後:分別通過isEnabled(),isSelected(),isDisplayed()三個方法進行判斷。

20、 如何處理下拉菜單?

在Selenium中有一個叫Select的類,這個類支持對下拉菜單進行操作。使用方法如下:

1.定位元素

2.把定位的元素轉化成Select對象。

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

3.通過下標或者值或者文本選中下拉框。
sel.select_by_index(index);
sel.select_by_value(value);
sel.select_by_visible_text(text);

21、在日曆這種web 表單你是如何處理的?

首先要分析當前網頁試用日曆插件的前端代碼,看看能不能通過元素定位,點擊日期實現,如果不能,可能需要藉助javascript。還有些日曆控件一個文本輸入框,可以直接sendKeys()方法來實現傳入一個時間的數據。

22、舉例一下說明一下你遇到過那些異常

常見的selenium異常有這些:

NoSuchElementException:沒有該元素異常
TimeoutException : 超時異常

ElementNotVisibleException :元素不可見異常
NoSuchAttributeException :沒有這樣屬性異常
NoSuchFrameException :沒有該frame異常

23、關閉瀏覽器中quit和close的區別

簡單來說,兩個都可以實現退出瀏覽器session功能,close是關閉你當前聚焦的tab頁面,而quit是關閉全部瀏覽器tab頁面,並退出瀏覽器session。知道這兩個區別,我們就知道quit一般用在結束測試之前的操作,close用在執行用例過程中關閉某一個頁面的操作。

24、在Selenium中如何實現截圖,如何實現用例執行失敗才截圖

在Selenium中提供了一個get_screenshot_as_file()的方法來截圖的,一般結合try/except捕獲異常時使用,進行錯誤截圖。

25、如何實現文件上傳?

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

26、自動化中有哪三類等待?他們有什麼特點?

1.線程等待(強制等待)如time.sleep(2):線程強制休眠2秒鐘,2秒過後,再執行後續的代碼。建議少用。

2.imlicitlyWait(隱式等待)會在指定的時間範圍內不斷的查找元素,直到找到元素或超時,特點是必須等待整個頁面加載完成。

3.WebDriverWait(顯式等待)通常是我們自定義的一個函數代碼,這段代碼用來等待某個元素加載完成,再繼續執行後續的代碼

27、你寫的測試腳本能在不同瀏覽器上運行嗎

當然可以,我寫的用例可以在在IE,火狐和谷歌這三種瀏覽器上運行。實現的思路是封裝一個方法,分別傳入一個瀏覽器的字符串,如果傳入IE就使用IE,如果傳入FireFox就使用FireFox,如果傳入Chrome就使用Chrome瀏覽器,並且使用什麼瀏覽器可以在總的ini配置文件中進行配置。需要注意的是每個瀏覽器使用的驅動不一樣。

28、什麼是PO模式,爲什麼要使用它

PO是Page Object 模式的簡稱,它是一種設計思想,意思是,把一個頁面,當做一個對象,頁面的元素和元素之間操作方法就是頁面對象的屬性和行爲,PO模式一般使用三層架構,分別爲:基礎封裝層BasePage,PO頁面對象層,TestCase測試用例層。

29、你們測試團隊如何提升自己的測試技能?

我們有自己的軟件測試技術羣:695458161:如果有任何軟件測試方面的疑問,關於軟件測試、接口測試、自動化測試、性能測試、面試經驗等都可以在羣裏解決,羣裏有同行大神一起交流技術。共同進步,一起成長!

如果大佬們覺得有哪些寫得不對,歡迎留言或私信,謝謝!

五、預祝面試成功,給您的OFFER,請收下!

最後預祝每一位求職者都能找到自己如意的工作!馬上實現升職加薪!

作者:諸葛
出處:https://blog.csdn.net/pengjiangchun
原創不易,歡迎轉載,但未經作者同意請保留此段聲明,並在文章頁面明顯位置給出原文鏈接。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章