UI自動化面試題

1.你是如何搭建ui自動化框架的禽绪?

在搭建ui自動化框架淆院,使用的是po設計模式箫攀,也就是把每一個頁面所需要

操作的元素和步驟都封裝成一個頁面類中。然后使用selenium+unittest搭建

四層框架實現(xiàn)數據树叽、腳本、業(yè)務邏輯分離(關鍵字驅動)谦絮。其中四層框架包括

基礎層(BasePage)题诵、業(yè)務邏輯層(Pages)、數據層(Data)层皱、測試用例層(Testcase)

1.基礎層(BasePage)

設計一個基本的Page類性锭,所有頁面皆繼承該類。提供一個頁面需要實現(xiàn)的基本功能及公共方法叫胖。

2. 業(yè)務邏輯層(Pages)

按照PO設計模式草冈,將每個頁面抽象為一個類,放在Pages包里面瓮增,每個頁面繼承Basepage,可調用Data層數據怎棱,包括頁面所有的操作對象屬性和實現(xiàn)的功能

3.數據層(Data)

該層存放相關數據,例如:用戶數據和密碼绷跑。在測試用例可通過調用數層的數據來進行操作拳恋。

4. 測試用例層(Testcases)

每一個測試用例testcase都對應Pages里面的一個頁面,繼承unnitest.TestCase類

通過調用對應頁面類的方法你踩,數據層的數據诅岩、增加斷言(assert)來驗證功能的正確性。

此外通過Jenkins自動執(zhí)行測試带膜、代碼質量檢測和部署到測試服務器吩谦、部署到生產服務器上

2.UI自動化測試中定位方式有哪些,哪些是你常用的膝藕?

By ID

By Class Name

By Tag Name

By Name

By Link Text

By Partial Link Textzhi

By CSS Seletor

By XPath


3.UI自動化測試有哪些缺點式廷?如何改進?

不穩(wěn)定芭挽,頁面經常變滑废,不好定位蝗肪,不適合業(yè)務復雜和頻繁變動的項目

改進:在項目中盡量使用顯示等待


4.請你描述一下在UI自動化運用的等待機制區(qū)別?

sleep()強制等待蠕趁,設置固定休眠時間薛闪,執(zhí)行sleep()后線程休眠

而另外兩種線程不休眠

隱式等待,是設置的全局等待

顯示等待俺陋,是針對于某個特定的元素設置的等待時間


5.PO設計模式的原理豁延?哪些地方能夠改善?

原理:

PO模式腊状,全稱 Page object ,頁面對象模型诱咏。

將頁面的元素定位和元素行為封裝成一個 page 類。

實現(xiàn)頁面對象和測試用例分離缴挖。

改善:

其中對對象庫層袋狞、邏輯層、業(yè)務層進行了一系列封裝


6.Unittest框架有什么缺點映屋?

1 不夠靈活苟鸯,比如進行 ui 自動化設計時,會多次打開瀏覽器秧荆,增加腳本運行時間

2 測試報告不夠全面倔毙,沒有 pytest 的 allure 測試報告清晰美觀


7.Webdriver的原理

由于客戶端腳本(java, python, ruby)不能直接與瀏覽器通信,這時候可以把Webdriver 當做一個翻譯器乙濒,它可以把客戶端代碼翻譯成瀏覽器可以識別的代碼(比如js).客戶端(也就是測試腳本)創(chuàng)建 1 個 session陕赃,在該 session 中通過 http 請求向Webdriver 發(fā)送請求,Webdriver 翻譯成瀏覽器懂得腳本傳給瀏覽器颁股,瀏覽器把執(zhí)行的結果返回給 Webdriver,Webdriver 把返回的結果做了一些封裝(一般都是 json 格式)么库,然后返回給客戶端,根據返回值就能判斷對瀏覽器的操作是不是執(zhí)行成功。


8.selenium 中 hidden 或者是 display = none 的元素是否可以定位到?

不能


9.如何提高 selenium 腳本的執(zhí)行速度?

1減少操作步驟甘有,減少腳本用例不必要的步驟

2設置等待時間的時候诉儒,可以

sleep 固定的時間,也可以檢測某個元素出現(xiàn)后中斷等待也可

以提高速度

3實現(xiàn)多線程亏掀。在編寫測試用例的時候忱反,一定要實現(xiàn)松耦合,然后在服務器允許的情況下滤愕,

盡量設置多線程運行温算,提高執(zhí)行速度。


10.如何實現(xiàn)多線程间影?

先寫一個run的函數

保證for循環(huán)能跑的通

在run函數上加個裝飾器 @threads(n),n是線程數


11.說一下XPATH定位的原理注竿?

基于HTML的文檔目錄結構進行定位元素


12.selenium中如何判斷元素一定存在?

Presense_of_element_located


強制等待、隱性等待巩割、顯性等待

1.強制等待--固定等待一段時間裙顽,即使設置一定的等待時間,也不能確保一定能夠定位到元素宣谈,因為你無法知道頁面加載的時間愈犹,而且這種方法通常比較浪費腳本執(zhí)行時間,效率低

2.隱性等待--設置最長的等待時間蒲祈,在這個時間內甘萧,當元素被加載出現(xiàn)在dom樹中且頁面被完全加載完成之后,才執(zhí)行下一步操作梆掸,保證了腳本的穩(wěn)定性,但執(zhí)行效率相對較低牙言,因為往往我們只需要目標元素出現(xiàn)即可酸钦,并不需要掙個頁面加載完成,而隱性等待要等待掙個頁面加載完才能執(zhí)行下一步咱枉,浪費一定時間卑硫,那么為了解決這種弊端又引入了顯示等待。

3.顯示等待--顯示等待實現(xiàn)方式通過判斷某一個條件是否成立蚕断,如果成立就立即執(zhí)行下一步操作欢伏,不需要等待頁面加載完成,執(zhí)行效率高亿乳,腳本的穩(wěn)定性也相對較高



selenium原理

我們使用Selenium實現(xiàn)自動化測試硝拧,主要需要3個東西

1.測試腳本,可以是python葛假,java編寫的腳本程序(也可以叫做client端)

2.瀏覽器驅動障陶,這個驅動是根據不同的瀏覽器開發(fā)的,不同的瀏覽器使用不同的webdriver驅動程序且需要對應相應的瀏覽器版本

3.瀏覽器聊训,目前selenium支持市面上大多數瀏覽器抱究,不同的瀏覽器使用不同的webdriver驅動程序且需要對應的瀏覽器版本


selenium工作過程

1.selenium client(python等語言編寫的自動化測試腳本)初始化一個service服務,通過webdriver啟動瀏覽器驅動程序chromedriver.exe

2.通過RemoteWebDriver向瀏覽器驅動程序發(fā)送HTTP請求带斑,瀏覽器驅動程序解析請求鼓寺,打開瀏覽器,并獲得sessionid,如果再對瀏覽器操作需攜帶此id

3.打開瀏覽器后勋磕,所有的selenium的操作(訪問地址妈候,查找元素)均通過RemoteConection鏈接到remote server,

然后使用execute方法調用request方法通過urlib3向remote server請求

4.瀏覽器通過請求的內容執(zhí)行對應動作

5.瀏覽器再把執(zhí)行的動作結果通過瀏覽器驅動程序返回給測試腳本

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市朋凉,隨后出現(xiàn)的幾起案子州丹,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,561評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件墓毒,死亡現(xiàn)場離奇詭異吓揪,居然都是意外死亡,警方通過查閱死者的電腦和手機所计,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評論 3 385
  • 文/潘曉璐 我一進店門柠辞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人主胧,你說我怎么就攤上這事叭首。” “怎么了踪栋?”我有些...
    開封第一講書人閱讀 157,162評論 0 348
  • 文/不壞的土叔 我叫張陵焙格,是天一觀的道長。 經常有香客問我夷都,道長眷唉,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,470評論 1 283
  • 正文 為了忘掉前任囤官,我火速辦了婚禮冬阳,結果婚禮上,老公的妹妹穿的比我還像新娘党饮。我一直安慰自己肝陪,他們只是感情好,可當我...
    茶點故事閱讀 65,550評論 6 385
  • 文/花漫 我一把揭開白布刑顺。 她就那樣靜靜地躺著氯窍,像睡著了一般。 火紅的嫁衣襯著肌膚如雪捏检。 梳的紋絲不亂的頭發(fā)上荞驴,一...
    開封第一講書人閱讀 49,806評論 1 290
  • 那天,我揣著相機與錄音贯城,去河邊找鬼熊楼。 笑死,一個胖子當著我的面吹牛能犯,可吹牛的內容都是我干的鲫骗。 我是一名探鬼主播,決...
    沈念sama閱讀 38,951評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼踩晶,長吁一口氣:“原來是場噩夢啊……” “哼执泰!你這毒婦竟也來了?” 一聲冷哼從身側響起渡蜻,我...
    開封第一講書人閱讀 37,712評論 0 266
  • 序言:老撾萬榮一對情侶失蹤术吝,失蹤者是張志新(化名)和其女友劉穎计济,沒想到半個月后,有當地人在樹林里發(fā)現(xiàn)了一具尸體排苍,經...
    沈念sama閱讀 44,166評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡沦寂,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,510評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了淘衙。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片传藏。...
    茶點故事閱讀 38,643評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖彤守,靈堂內的尸體忽然破棺而出毯侦,到底是詐尸還是另有隱情,我是刑警寧澤具垫,帶...
    沈念sama閱讀 34,306評論 4 330
  • 正文 年R本政府宣布侈离,位于F島的核電站,受9級特大地震影響做修,放射性物質發(fā)生泄漏霍狰。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,930評論 3 313
  • 文/蒙蒙 一饰及、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧康震,春花似錦燎含、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至橘忱,卻和暖如春赴魁,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背钝诚。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評論 1 266
  • 我被黑心中介騙來泰國打工颖御, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人凝颇。 一個月前我還...
    沈念sama閱讀 46,351評論 2 360
  • 正文 我出身青樓潘拱,卻偏偏與公主長得像,于是被迫代替她去往敵國和親拧略。 傳聞我的和親對象是個殘疾皇子芦岂,可洞房花燭夜當晚...
    茶點故事閱讀 43,509評論 2 348

推薦閱讀更多精彩內容