自動化測試面試題3(附答案)


Q1.如果一個元素無法定位,你一般會考慮哪些方面的原因?

1.頁面加載元素過慢,加等待時間

2.頁面有frame框架頁,需要先跳轉入frame框架再定位

3.可能該元素是動態元素,定位方式要優化,可以使用部分元素定位或通過父節點或兄弟節點定位。

4.可能識別了元素,但是不能操作,比如元素不可用,不可寫等。需要使用js先把前置的操作完成,

 

Q2:舉例說明使用selenium框架所遇到的異常

NoSuchElementException:沒有該元素異常

TimeoutException : 超時異常

ElementNotVisibleException :元素不可見異常
NoSuchAttributeException :沒有這樣屬性異常
NoSuchFrameException :沒有該frame異常

 

Q3:關閉瀏覽器中quit和close的區別

簡單來說,兩個都可以實現退出瀏覽器session功能,close是關閉你當前聚焦的tab頁面,而quit是關閉全部瀏覽器tab頁面,並退出瀏覽器session。知道這兩個區別,我們就知道quit一般用在結束測試之前的操作,close用在執行用例過程中關閉某一個頁面的操作。

 

Q4:什么是PO模式,為什么要使用它

PO是Page Object 模式的簡稱,它是一種設計思想,意思是,把一個頁面,當做一個對象,頁面的元素和元素之間操作方法就是頁面對象的屬性和行為,PO模式一般使用三層架構,分別為:基礎封裝層BasePage,PO頁面對象層,TestCase測試用例層。

好處:

PO模式是一種自動化測試設計模式,將業務邏輯和測試邏輯分開,也就是把對象的定位和測試腳本分開,從而提高可維護性。(換個項目只要改寫業務邏輯不用改動測試邏輯)

使業務更清晰

代碼更利於維護

可以復用

Q5: python中_ _ init _ _ 和 _ _ new _ _ 區別是什么?

在python的面向對象中,利用new方法創建對象,然后把這個創建的對象傳遞到init函數中,以第一個參數進

 

Q6:高質量的自動化腳本應該具備哪些特性?

不需要深入的工作或計划。

可以加快開始自動化。

對實際執行操作可以審計跟蹤。

用戶不必是編程人員。

提供良好的(軟件或工具)的演示。

 

Q7:selenium工作原理

我們使用Selenium實現自動化測試,主要需要3個東西

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

2.瀏覽器驅動, 這個驅動是根據不同的瀏覽器開發的,不同的瀏覽器使用不同的webdriver驅動程序且需要對應相應的瀏覽器版本,比如:geckodriver.exe(chrome)

3.瀏覽器,目前selenium支持市面上大多數瀏覽器,如:火狐,谷歌,IE等

驅動過程分析

  1. 對於每一條Selenium腳本,一個http請求會被創建並且發送給瀏覽器的驅動
  2. 瀏覽器驅動中包含了一個HTTP Server,用來接收這些http請求
  3. HTTP Server接收到請求后根據請求來具體操控對應的瀏覽器
  4. 瀏覽器執行具體的測試步驟
  5. 瀏覽器將步驟執行結果返回給HTTP Server
  6. HTTP Server又將結果返回給Selenium的腳本,如果是錯誤的http代碼我們就會在控制台看到對應的報錯信息。


免責聲明!

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



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