【干貨】20道經(jīng)典自動化測試面試題
概述
覺得自動化測試很難?
是的,它確實不簡單。但是學(xué)會它,工資高?。?/p>
擔(dān)心面試的時候被問到自動化測試?
嗯,你擔(dān)心的沒錯!確實會被經(jīng)常問到!
現(xiàn)在應(yīng)聘軟件測試工程師的崗位,幾乎所有的公司都要求會自動化測試!那么,在面試的時候哪些問題會被面試官經(jīng)常問到?哪些問題是面試官真正關(guān)心的?
下面通過20道經(jīng)典自動化測試面試題。讓你能夠在面試的時候輕松應(yīng)對,也讓你在學(xué)習(xí)自動化測試的時候明白應(yīng)該關(guān)注哪些內(nèi)容,而不僅僅只是會調(diào)用接口模擬輸入和點擊操作!

基礎(chǔ)題
1、web自動化時,定位元素的方式有哪些?
答:web自動化有8種元素定位方式。與name有關(guān)的有3種:name、class_name、tag_name與link相關(guān)的有兩種:link_text、partitial_link_text。還有一種是用id來定位。剩下兩種是xpath和css定位,它們用元素路徑來定位的。
如果元素存在id屬性,我一定使用id,因為簡單方便,定位最快。其次是Xpath和css,因為很多情況下html標(biāo)簽沒有id屬性。
2、如何去定位屬性動態(tài)變化的元素?
答:先去找該元素不變的屬性,要是都變,那就找不變的父元素,用層級定位(以不變應(yīng)萬變)
3、啟動瀏覽器的時候用到的是哪個webdriver協(xié)議?
答:http協(xié)議
4、XPath中使用單斜杠和雙斜杠有什么區(qū)別?
答:單斜杠表示用絕對路徑定位,雙斜杠表示用相對路徑定位。絕對路徑就是從html根目錄開始表示的元素路徑。相對路徑就是選擇一個元素作為參考點,相對這個參考點元素開始表示的元素路徑。
5、Selenium中有哪些驗證點?
答:Selenium主要有3種驗證點
① 檢查頁面標(biāo)題
② 檢查某些文字
③ 檢查某些元素(文本框,下拉菜單,表等)
6、如何清除中文本框的內(nèi)容?
答:使用clear()方法
driver.find_element().clear()
7、如何模擬瀏覽器的前后移動?
答:
driver.back() # 后退
driver.forward() # 前進(jìn)
8、find_element()和find_elements()方法有什么區(qū)別
答:兩個都是查找元素的方式
findelement()查找一個頁面元素,只會返回WebElement對象
findelements()查找頁面是所有符合匹配的元素,返回元素集合
9、如何判斷case是否通過?
答:使用斷言,與預(yù)期結(jié)果比較
10、等待元素加載的方式有幾種?
答:有3種,強(qiáng)制等待、隱式等待、顯式等待

進(jìn)階題
1、定位不到元素怎么辦?
答:?
① 檢查日志,確認(rèn)當(dāng)前頁面有沒有這個元素
② 如果有,檢查定位方式有沒有寫錯
③ 如果還沒解決,檢查元素是否在內(nèi)聯(lián)框里 如果在內(nèi)聯(lián)框里,需要先切換到內(nèi)聯(lián)框里再定位元素。操作完元素記得退出內(nèi)聯(lián)框
2、如果遇到驗證碼,需要這么處理?
答:① 讓開發(fā)取消測試環(huán)境的驗證碼
② 讓開發(fā)設(shè)置萬能驗證碼(使用復(fù)雜的其他人無法猜到的驗證碼)
③ 如果是圖像驗證碼,可以使用圖像識別技術(shù)(難度大,準(zhǔn)確率不高)
④ 先手動輸入登錄系統(tǒng),保留登錄成功的cookie。通過cookie繞過驗證碼
⑤ 讓開發(fā)給驗證碼的數(shù)據(jù)庫權(quán)限,從數(shù)據(jù)庫中獲取
3、遇到彈窗無法導(dǎo)致無法繼續(xù)下一步操作怎么辦?
答:
① 如果是JavaScript彈框,先通過switch_to.alert定位到JS彈框,再調(diào)用accept、dismiss等方法處理JS彈框
② 如果是系統(tǒng)某個操作步驟的提示框,可以點擊關(guān)閉按鈕,或者按提示操作即可
4、怎么切換瀏覽器窗口?
答:可以通過window_handles方法獲取所有窗口的句柄。然后遍歷句柄,使用switch_to.window()方法切換窗口,通過窗口title判斷是否是目標(biāo)窗口
例如,
handels?=?driver.window_handles
for?handle?in?handles:
????driver.switch_to.window(handle)
if?driver.title=="千鋒教育":
#?如果是目標(biāo)窗口,退出循環(huán)
????????break
5、怎么實現(xiàn)拖拽元素的操作?
答:ActionChains類提供了模擬鼠標(biāo)操作,如雙擊,右擊,拖拽,懸停等操作
#?先導(dǎo)入?ActionChains類,并創(chuàng)建對象
from?selenium.webdriver.common.action_chains?import?ActionChains
actions?=?ActionChains(driver)
#?具體操作,將動作加入任務(wù)列表
source?=?driver.find_element()
target?=?driver.find_element()
action.drag_and_drop(source,target)?#?拖拽
#?處理任務(wù)列表
action.perform()?#?依次執(zhí)行任務(wù)列表中的所有操作

設(shè)計思路
1、什么是page object設(shè)計模式??
答:
① 通俗來講,把每個頁面當(dāng)成一個頁面對象,頁面層寫定位元素方法和頁面操作方法
② 用例層從頁面層調(diào)用操作方法,寫成用例
③ 可以做到定位元素與腳本的分離
2、page object設(shè)置模式中,是否需要在page里定位的方法中加上斷言?
答:不需要,page頁只做元素抓取和操作方法
3、你的自動化用例的執(zhí)行策略是什么?
答:
① 自動化測試用例是用來監(jiān)控的。集成到j(luò)enkins,創(chuàng)建定時任務(wù)定時執(zhí)行;
② 有些用例在產(chǎn)品上線前必須回歸。jenkins上將任務(wù)綁定到開發(fā)的build任務(wù)上,觸發(fā)執(zhí)行;
③ 有些用例不需要經(jīng)常執(zhí)行。jenkins創(chuàng)建一個任務(wù),需要執(zhí)行的時候人工構(gòu)建即可。
4、什么是數(shù)據(jù)驅(qū)動框架?它與關(guān)鍵字驅(qū)動框架有什么不同?
答:數(shù)據(jù)驅(qū)動框架中,測試用例邏輯駐留在測試腳本中。測試數(shù)據(jù)被分離并保存在測試腳本之外。測試數(shù)據(jù)是從外部文件(如Excel)中讀取的,并被加載到測試腳本中的變量中。變量用于輸入值和驗證值。
關(guān)鍵字驅(qū)動需要開發(fā)數(shù)據(jù)表和關(guān)鍵字。它們獨立于執(zhí)行它們的測試自動化工具。可以使用或不使用應(yīng)用程序來設(shè)計測試。在關(guān)鍵字驅(qū)動的測試中,被測試的應(yīng)用程序的功能記錄在一個表格中,以及每個測試的分步說明。
5、你覺得自動化測試最大的缺陷是什么?
答:
① 不穩(wěn)定
② 可靠性不強(qiáng)
③ 不易維護(hù)
④ ?成本與收益
提升課程
松勤–軟件測試之python自動化測試57期|2022年|無秘

企業(yè)級項目自動化測試方案,軟件測試之python自動化測試57期
掌握pytest與allure自動化框架
熟練使用基類多層封裝思想設(shè)計代碼框架
熟悉自動化測試devops流程
多種類型項目實戰(zhàn),提升自動化測試綜合能力

感興趣的小伙伴留言或者私信了解詳情?。?!