web python 维护性_Lemon-Web阶段考核(三)
1、請列舉web自動化中常見的元素定位方式。
a、id 根據id來獲取元素,返回單個元素,id值一般是唯一的
b、name 根據元素的name屬性定位
c、tagName 根據元素的標簽定位
d、className 根據元素的樣式class值定位
e、linkText 根據超鏈接的文本值定位
f、partialLinkText 根據超鏈接的部分文本值定位
g、cssSelector css選擇器定位
h、xpath 通過元素的路徑來定位
2、如何定位屬性值動態變化的元素?
a、元素動態變化有特征:如id屬性 lemonxxxxx,xxxx是隨機變化的,那么可以根據xpath的contains函數來獲取 --> //*[contains(@id,'lemon')]
b、元素動態變化無特征:根據相對關系定位根據其附近的父節點、子節點、兄弟節點定位
3、xpath中絕對路徑和相對路徑有什么區別?
a、絕對定位: 元素的完整路徑如:/html/body/div/div/a
b、相對定位:從dom結構中的任意位置匹配 如://a
4、Selenium中如何等待元素可見?
顯示等待定制等待的條件 代碼如下:
wait = WebDriverWait(driver,20)
wait.until(expected_conditions.visibility_of_element_located(by));
5、列舉出web自動化中你常用的斷言(驗證)方式
根據頁面的URL
根據頁面的標題
根據頁面的提示信息
根據某些元素的顯示
6、請說出顯示等待和隱式等待的區別
a、隱式等待:通過driver對象給所有的元素設置的全局等待,在設置的時間范圍內一直不斷去找元素,如果超時則會拋出異常
b、顯示等待:針對元素設置的等待時間,并且只對該元素有效,用來等待某個條件滿足。默認會每間隔0.5秒去找元素,檢查元素是否滿足等待的條件,超時則會拋出異常
7、在selenium運行過程中如何去動態改變元素的屬性?
通過javaScript腳本去操作dom對象
8、UI自動化測試是否需要做數據庫校驗?
不需要,按照測試金字塔分層,最上層為UI層,中間層為API接口層,最底層為單元測試層。我們可以在API接口層去做數據庫校驗,在UI層我們只需要模擬用戶的操作即可。
9、UI自動化測試用例如何設計?
UI自動化測試用例是從手工測試用例中提取出來的,跟手工測試用例相比,自動化測試用例更加注重用例的嚴謹性,選擇用例的時候遵循以下原則:
a、優先選取覆蓋產品核心功能的用例
b、從成本考量,不要選擇流程過于復雜的用例
c、選取的用例可以是重復執行,繁瑣的部分,比如字段驗證、提示信息驗證
d、優先實現正向的測試用例,反向用例一般情況復雜,數量多
10、為了提高UI自動化腳本的穩定性,你有做了哪些工作?
a、盡量用相對路徑的xpath表達式
b、查找元素優先用顯示等待
c、用例與用例之間盡量避免產生依賴,用例可以獨立執行
d、用例執行結束后對測試場景進行還原,避免影響其他用例的執行
e、腳本執行失敗后加入重試機制,提升用例的穩定性
f、盡量保證單獨的測試環境,避免其他測試同步進行
11、為了提高UI自動化腳本的可維護性,你有做了哪些工作?
a、Page Object分層模式,業務和頁面元素分離
b、測試數據和用例分層,單獨維護測試數據
c、頁面和用例共性提取
d、可追溯日志
12、什么是PO(Page Object)模式?
頁面對象模式,對頁面進行抽象或者說建模的過程,需要把頁面當作一個對象。把頁面的一個個的web元素設計為頁面對象的屬性,把頁面上的操作(如點擊、輸入等)設計為頁面對象的行為。這樣做的好處是業務和實現分開,使自動化測試腳本具備更高的可維護性。
13、維護了多少條web自動化測試用例?穩定性怎么樣?
100+case(不要少于100,否則面試官會認為只是在做初級的自動化而已,應用這套框架,平均每次case的通過率在85%左右,還在持續優化中)
14、web自動化用例覆蓋率如何?
80%左右,其中包括主流程場景和核心業務
15、UI自動化實現你認為最困難的地方是什么?
a、需求經常變動、腳本維護成本高
b、特殊元素難以定位
c、腳本執行不穩定,經常性fail
16、對應登錄驗證碼如何處理?
a、測試環境中去除驗證碼
b、自動識別驗證碼技術
c、萬能驗證碼
d、設置cookie
17、失敗用例之后如何截圖?
用例的本質其實就是頁面的基礎操作。所以封裝了basepage。在basepage當中,對每一個基本操作(如點擊、輸入等)都進行異常捕獲,當操作失敗時,使用driver的save_screenshot函數進行截圖操作
18、selenium中如何實現文件上傳?
a、對于input類型的元素,可以直接通過sendkeys寫入文件的路徑即可。
b、對于不能寫入路徑的,可以使用第三方工具如:AutoLT
19、在web自動化中,你一般完成什么類型的測試?
冒煙測試+回歸性測試
回歸性測試的部分主要是選取一些業務核心,相對比較穩定,容易實現的場景。
20、請描述下你所設計的web自動化框架的特點?
a、通過pytest單元測試框架組織/管理測試用例
b、引入Page Object 思想對用例進行分層設計,業務和頁面元素分離設計:測試用例層+頁面對象層+元素定位層+測試數據層
c、頁面元素共性操作提取:basepage封裝,實現實時執行日志輸出、異常實時捕獲,用例失敗截圖。對外只提供元素操作,屏蔽掉元素等待和元素查找,簡化頁面操作邏輯代碼
d、測試用例中,數據驅動使用
e、logging日志引入,問題定位/追溯
f、Allure報表,用例失敗后截圖
g、用例失敗重試,提高用例穩定性
h、集成到Jenkins中,每天/每小時構建多次
總結
以上是生活随笔為你收集整理的web python 维护性_Lemon-Web阶段考核(三)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 戴尔笔记本怎么优盘启动bios设置 戴尔
- 下一篇: python selenium unit