目錄
- Python自動化測試面試題-經驗篇
- Python自動化測試面試題-用例設計篇
- Python自動化測試面試題-Linux篇
- Python自動化測試面試題-MySQL篇
- Python自動化測試面試題-Redis篇
- Python自動化測試面試題-Python基礎篇
- Python自動化測試面試題-算法篇
- Python自動化測試面試題-接口篇
- Python自動化測試面試題-Selenium篇
- Python自動化測試面試題-性能篇
基礎
Selenium中有幾種等待
- 隱形等待/智能等待 dr.implicitly_wait()
- 顯性等待 WebDriverWait
- 強制等待 time.sleep()
Selenium中有哪些定位方式
8種
- tag
- 三大基本屬性 id/name/class_name
- 鏈接 link text/partial link text
- 高級 css selector/xpath
彈框怎么處理
4種彈框
- div彈框、dom彈框,遮罩框 直接定位
- alert框 dr.swich_to.alert().dismiss()
- 彈出新窗口 不用處理/也可以切換到新窗口,然后關閉
- BasicAuth授權框 dr.get(http://用戶名:密碼@www..)
框架頁面怎么處理 切換框架
上傳下載怎么測試
- 上傳 <input type="file" style=“display: none"> send_keys()
- 下載 點擊
- flash/ 非標控件 桌面自動腳本生成exe
不確定時間的控件變化如何測試
webdriver wait
怎么對一個元素進行截圖
elm.save_snapshot()
定位不到元素如何處理
- sleep
- 觀察頁面 頁面有有沒有跳轉,元素有沒有出現,有沒有彈出alert
- 元素是否在框架里
- 元素是否在新頁面里
如何應對頁面元素變動問題
使用PageObject
Selenium的遇到flash怎么解決
使用pywinauto或其他GUI自動化工具生成exe,配合Selenium執行。
如何去定位頁面上動態加載的元素?
- 通過正常的業務流程觸發元素加載,稍微等待后操作
- 直接執行JavaScript腳本使元素加載,進行操作
如何去定位屬性動態變化的元素
使用其他不變的屬性定位。
Webdriver可以用來做接口測試嗎
不能
Selenium是否支持C/S模式
Selenium是一套瀏覽器自動化測試框架,支持B/S模式的應用,C/S模式僅支持部分已瀏覽器為核心的應用,一般情況下不支持C/S模式。
如何處理驗證碼
- 繞過
- 臨時關閉
- 萬能碼
- 從數據庫或日志中取
- 發接口登錄繞過
- 半自動手動輸入
- 圖像識別
- AI深度學習
- 花錢打碼
框架封裝
UI框架如何分層
你的框架是如何設計的
- 執行控制
- 測試套件
- 用例
- 業務流 頁面對象組合,常用的業務流程
- PageObject 頁面對象、頁面基礎類
- 實用方法 數據讀取 數據庫操作 日志 發郵件 自己封裝的定位方法
框架是怎么選擇組合搭建的
- 基礎引擎 unittest、pytest、robot、httprunner、自己寫
- 數據選擇 json/yaml、csv/excel、數據庫、conf
- 配置文件 conf/ini py xml
登出了怎么處理?
- 增加登錄的頻次
- 執行用例前,驗證狀態
- 失敗重試,加上登錄
測試用例之間具有依賴處理
- 不建議有依賴
- 確保執行順序
- 並發時以用例類suite為單位運行
webdriver異常怎么處理,怎么恢復場景和記錄結果
- 記錄日志,和當時的環境信息
- 實時截圖及保留屏幕錄像(如使用docker+zalenium)
- 用例失敗后自動重跑(如使用pytest-rerunfailures)
- 使用subprocess運行,並記錄子進程退出code
- 緩存上次執行結果
垃圾數據怎么處理
- 測試環境 執行sql
- 生產環境 請求接口或執行UI步驟
