web自动化测试常见面试题
一、找不到元素可能出現的原因:
1、元素表達式錯誤
2、不在指定的frame
3、等待時間短,頁面加載速度慢
4、執行腳本打開了新的頁面,不在指定的窗口中
二、優化web自動化測試效率
避免使用強制等待,會浪費等待的時間
三、PO模式的理解
1、PO模式實現代碼的復用性
2、提高了代碼的可維護性、可讀性
- 將業務邏輯和測試邏輯相分離
- 當頁面發生變化的時候,測試邏輯不需要發生改變,只需要改動業務邏輯
- 當測試邏輯發生變化的時候,業務邏輯不需要變化,只需要改動測試邏輯
3、頁面方法一般是返回的是self或者其他頁面
4、assert 斷言不要寫在頁面當中
5、如果可能有多種情況的返回值,封裝多個方法(行為)
四、穩定性和效率的問題
1、優先考慮穩定性
2、如果提升效率會造成穩定性影響,先不考慮提升效率
五、驗證碼的問題
1、開發關掉
2、開發設置萬能驗證碼
六、什么樣的項目適合做自動化測試
1、需求比較穩定、不會頻繁變更的
2、項目周期比較長(優惠活動,中秋、端午,功能是一次性,花半個月寫了一次代碼)
3、代碼復用性高,可以跨平臺、跨系統
4、流程設計比較規范
5、經常需要的回歸測試
七、pytest和unittest的區別
1、pytest有自動收集用例的的功能
2、pytest有上千種插件,自己的插件系統
3、pytest有失敗重新運行的功能
4、pytest有非常靈活的測試夾具、fixture、setUp、tearDown
5、pytest和unittest是完全兼容的
八、影響web自動化的穩定性的因素有那些?
1、后端服務,加載一些靜態頁面,有時渲染的比較慢
九、自動化測試用例的流程(寫代碼的過程)
1、進行手工測試,熟悉流程、元素定位表達式準備好
2、形成測試步驟
3、轉化為代碼版的步驟
4、寫代碼
十、測試框架大概結構
1、common,公共方法層:封裝一些常用的方法、日志配置文件、
2、config,配置層:日志級別、mysql數據庫信息、賬號信息
3、data,數據層:測試用例
4、img,圖片層:頁面報錯截圖
5、logs,日志文件層:腳本運行日志
6、output,測試報告層
7、pages,業務邏輯層
8、testcases,測試邏輯層
9、main文件:腳本入口
十一、 請列舉出web自動化中你常用的斷言(驗證)方式
1、根據頁面的url斷言(驗證跳轉后的頁面是否正確)
2、根據頁面的標題(驗證跳轉后的標題是否一致)
3、根據頁面的提示信息(充值成功后,跳轉充值成功的文字)
4、根據某些元素的顯示(跳轉后的用戶名)
十二、UI自動化測試用例如何設計?
UI自動化測試用例是從手工測試用例中提取出來的,跟手工測試相比,自動化測試用例更加注重用例的嚴謹性
1、優先選取覆蓋產品核心功能的用例
2、從成本考慮,不要選擇流程過于復雜的用例
3、選取的用例可以是重復執行,繁瑣的部分,比如字段的驗證、提示信息的驗證
4、優先實現正向的測試用例,反向情況一般情況復雜,數量多,耗費時間
十三、為了提高UI自動化腳本的穩定性,你有做了哪些工作?
1、元素定位表達式,盡量選擇相對路徑的xpath表達式
2、查找元素優先使用顯性等待
3、用例與用例之間盡量避免產生依賴
4、盡量保證單獨的測試環境,避免其他同學同步運行
5、腳本運行失敗后加入重運行機制,提高用例的穩定性
十四、利用PO模式
將業務邏輯和測試邏輯相分離,當頁面發生變化的時候,不需要改變測試代碼,改變頁面代碼即可;當測試邏輯發生變化的時候,不需要改動頁面代碼,改變測試代碼即可
測試數據和用例分離,單獨維護測試數據
十五、ui自動化實現你認為最困難的地方是什么
1、穩定性有時候不高
2、往往在提升效率的時候,會影響穩定性,穩定性排在第一位
3、需求經常變動,維護成本高
4、特殊元素難以定位
5、腳本不穩定
十六、請描述下你所設計的Web自動化框架的特點?
1、通過pytest單元測試框架組織管理測試用例
2、引入page object思想對用例進行分層設計,業務代碼和測試代碼相分離
3、頁面元素共性操作提取:basepage封裝,實現實時執行日志輸出,異常實時捕獲,用例失敗截圖
4、測試用例中,使用數據驅動
5、logging日志引入,問題定位
6、allure報表,用例失敗后截圖
7、用例失敗重試,提高用例穩定性
8、集成到jenkins中,每天\小時構建多次
十七、如何做 UI 自動化?
1、在編寫腳本前,我們會對需求進行評估,確認這個需求可不可以實現 UI 自動化,
2、如果可以的話,從手工用例中就篩選出能實現自動化測試的用例,一般作用于主流程測試、回歸測試。
3、我們是用 selenium 工具來實現自動化,采用 python 腳本語言,pytest測試框架和PO模式搭建的UI自動化測試框架。
4、比如,充值這個功能的腳本,我們是這樣做的:首先,根據搭建好的測試框架,測試框架包含 testcase,主要用來存放測試用例代碼,report 用來存放測試報告,
5、其次我們會把用例中公共的部分封裝到 common 中,
6、最后用 run.py文件運行項目自動化用例,
7、腳本調試完后,我們會用 jenkins 持續集成工具,設置腳本每天晚上 10 點跑一遍腳本,跑完后生成 html 格式的自動化測試報告并自動發送郵件
十八、web測試框架有什么可以優化的地方嗎?
常用的方法,或者代碼量比較多的方法,可以封裝成一個公共方法,減少代碼的書寫、增強代碼的可讀性和可維護性
十九、框架中實現了那些分層?
頁面邏輯和測試邏輯分層
測試數據和測試代碼分層
元素定位locator和方法分層
basepage公共方法的分層
二十、你的自動化用例的執行策略是什么?
1、自動化測試用例是用來監控的,再次目的下,我們就把自動化測試用例設置成定時執行的,每30分鐘執行一次,在jenkins上創建一個定時任務即可
2、必須回歸的用例。有些測試用例,在產品任何變動上線之前都需要回歸測試
3、不需要經常執行的測試用例,我們沒有必要一直回歸執行,畢竟是有時間消耗的,有些時候非必要的業務不需要經常回歸
4、不需要經常執行的測試用例就需要人工執行,在jenkins創建一個任務,需要執行的時候人工構建
總結
以上是生活随笔為你收集整理的web自动化测试常见面试题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 自动化测试之键盘操作和select操作
- 下一篇: python通过requirements