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