【編測編學】自動化測試面試必背(上)

bcbxhome發表於2021-01-22

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

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

自動化框架主要的核心框架就是分層 +PO 模式:分別為:基礎封裝層 BasePage PO 頁面物件層, TestCase 測試用例層。然後再加上日誌處理模組, ini 配置檔案讀取模組, unittest+ddt 資料驅動模組, jenkins 持續整合模式組成。

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

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

②搭建自動化測試框架,在專案中逐步開展自動化。

③把該專案的自動化流程、框架固化成文件

④推廣到公司的其它專案組應用

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

①編寫自動化測試計劃

②設計自動化測試用例

③編寫自動化測試框架和指令碼

④除錯並維護指令碼

⑤無人值守測試

⑥後期指令碼維護(新增用例、開發更新版本)

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

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

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

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

上一個專案中是定時執行的,設定的執行時間是晚上 12 點,執行完畢後會自動傳送郵件通知

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

不多,因為之前專案組是把已經測試透過的基本功能再進行自動化指令碼編寫和在後續版本執行自動化測試,它主要是保證已經測試透過的功能在新版本更新後沒有問題。

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

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

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

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

誤報原因一般是:

元素定位不穩定,需要儘量提高指令碼的穩定性;

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

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

①頻繁地變更頁面,經常要修改頁面物件類裡面的程式碼

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

自動化測試結果出現覆蓋的情況: Jenkins 根據時間建立資料夾

. 自動化測試程式碼維護比較麻煩

⑤自動化測試進行資料庫對比資料

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

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

python+selenium+unittest+htmltestrunner

python+selenium+pytest+allure

robotframework+Selenium2Library

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

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

12 、在執行指令碼過程,如何實現當前元素高亮顯示?

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

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

①頁面載入元素過慢,加等待時間

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

③可能該元素是動態元素,定位方式要最佳化,可以使用部分元素定位或透過父節點或兄弟節點定位。

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

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

id name class_name link_text css xpath

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

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

然後再操作頁面元素,

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

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

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

然後再透過 accept 點選確定按鈕,透過 dismiss 點選取消難,透過 text() 獲得彈出視窗的文字。

17 、如何處理多視窗?

這個多視窗之間跳轉處理,我們在專案中也經常遇到。就是,當你點選一個連結,這個連結會在一個新的 tab 開啟,然後你接下來要在新 tab 開啟的頁面查詢元素,

①我們在點選連結前使用 driver.current_window_handle 獲得當前視窗控制程式碼。

②再點選連結。點選後透過 driver.window_handles 獲得所有視窗的控制程式碼,

③然後再迴圈找到新視窗的控制程式碼,然後再透過 driver.switch_to.window() 方法跳轉到新的視窗。

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69985967/viewspace-2752183/,如需轉載,請註明出處,否則將追究法律責任。

相關文章