UI自動化常見精華面試題整理


selenium的運行原理

 

 

1、基於Web端如何做自動化測試,談談你的思路和方向?

Web端的自動化測試,基本就是模擬手工測試人員來做功能測試。用機器的自動執行代替人的操作。web端呈現的產品有兩個方向可以做自動化測試:接口層和界面操作層,且接口層自動化的比例要高於界面操作層。主要對產品穩定的功能進行自動化測試,主要用於產品的核心功能冒煙測試、回歸測試。從系統最核心的功能開始做,再根據情況慢慢展開。

 2、UI自動化測試用例如何設計?

UI自動化測試用例是從手工測試用例中提取出來的,跟手工測試用例相比,自動化測試用例更加注重用例的嚴謹性,選擇用例的時候遵循以下原則:

優先選取覆蓋產品核心功能的用例;

從成本考量,不要選擇流程過於復雜的用例;

選取的用例可以是重復執行,繁瑣的部分,比如字段驗證、提示信息驗證;

優先實現正向的測試用例,反向用例一般情況復雜、數量多;

 

3、什么是PO模式?

PO模式,全稱為Page Object Model ,簡稱POM,是頁面對象模式。對頁面進行抽象或者說建模的過程,是把一個具體的頁面轉化為編程語言當中的一個對象,頁面特性轉化成對象屬性,頁面操作轉化為對象方法。把頁面的一個個的web元素設計為頁面對象的屬性,把頁面上的操作(如點擊、輸入等)設計為頁面對象的行為。在自動化測試當中,主要用來實現對頁面操作和測試邏輯的一個分離,這樣做的好處是業務和實現分開,使自動化測試腳本具備更高的可維護性。

 

4、你認為PO模式的封裝原則有哪些?

公共方法表示頁面提供的一個服務,比如我們可以把登錄封裝成一個 login 方法,把搜索方法封裝成一個設施方法,把注冊操作封裝成一個 register 的方法;

盡量不要暴露頁面的內部,比如一個HTML的頁面還有一個頁面的上下結構;

在 PO 當中一般不做斷言,會做到頁面邏輯和測試邏輯的分離;

PO 一般里面的方法返回 self 或者是其他的 Page Object ,也可以是一個元素屬性;

整個 PO 不需要封裝整個頁面的行為,用到什么邏輯就封裝什么;

對於統一操作,如果出現不同的結果,可以把用不同的方法來表示,比如說登錄成功有跳轉,登錄失敗有報錯,如果登錄還有一種會授權的狀況,那么可以封裝成三個單獨的方法:login success、login error、login invalid。

 

5、你怎么提高UI自動化腳本的穩定性?

盡量用相對路徑的xpath表達式;

查找元素優先用顯示等待;

用例與用例之間盡量避免產生依賴,用例可以獨立執行;

用例執行結束后對測試場景進行還原,避免影響其他用例的執行;

腳本執行失敗后加入重試機制,提升用例的穩定性;

盡量保證單獨的測試環境,避免其他的測試同步進行;

6、UI 自動化測試中,如何做集群?

  • Selenium Grid,分布式執行用例;

你對Selenium Grid有什么了解?它提供了什么功能?

A:  Selenium Grid是一款利用現有計算基礎架構大幅加速Web應用程序功能測試的工具。

允許測試者輕松地在多台機器上並行運行多個測試,並且可以在異構環境中運行。

基於優秀的Selenium Web測試工具,Selenium Grid允許測試者並行運行多個Selenium Remote Control實例。

更好的是,它集成顯示所有Selenium遠程控制,所以不必擔心實際的基礎設施。

Selenium Grid將運行Selenium測試套件所需的時間,縮短到Selenium實例的單個實例運行時間的一小點。

 

7、簡述你所知道的延時等待方式?

強制等待:也叫線程等待, 通過線程休眠的方式完成的等待,如等待5秒: Thread sleep(5000),一般情況下不太使用強制等待,主要應用的場景在於不同系統交互的地方。

隱式等待:通過implicitly Wait完成的延時等待,注意這種是針對全局設置的等待,如設置超時時間為10秒,使用了implicitlyWait后,如果第一次沒有找到元素,會在10秒之內不斷循環去找元素,如果超過10秒還沒有找到,則拋出異常,硬式等待比較智能,它可以通過全局配置,但是只能用於元素定位。

顯式等待:也稱為智能等待,針對指定元素定位指定等待時間,在指定時間范圍內進行元素查找,找到元素則直接返回,如果在超時還沒有找到元素,則拋出異常,顯示等待是 selenium 當中比較靈活的一種等待方式,他的實現原理其實是通過 while 循環不停的嘗試需要進行的操作。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM