自動化測試面試題


1、你覺得自動化測試的價值在哪里?你們公司為什么要做自動化測試?
引用自動化測試之后,能代替大量繁瑣的回歸測試工作,把業務測試人員解放出來,既而讓業務測試人員把精力集中在復雜的業務功能模塊上,
自動化測試一般是對穩定下來的功能進行自動化,保證不會因為產品的更新導致之前穩定下來的功能出現BUG
2、做自動化測試用的什么框架?可以說出以下自己擅長的一種:

    1.python+selenium+unittest+htmltestrunner

    2.python+selenium+pytest+allure

    3. robotframework+Selenium2Library

 3、在selenium自動化測試中,你一般完成什么類型的測試?自動化覆蓋率?

    主要是冒煙測試和回歸測試。回歸測試主要寫一些功能穩定的場景,通過自動化手段去實現,節約測試時間。因為自動化測試用例也是在不斷的更新和迭代,沒有刻意去統計,大概在30%-40%左右!

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

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

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

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

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

5、元素定位方法你熟悉的有哪些?

  id name classname link_text css xpath

6、遇到frame框架頁面怎么處理?

    先用driver.switch_to.frame()跳轉進去frame,

       然后再操作頁面元素,

       操作完后使用driver.swith_to.default_content()跳轉出來

7、遇到alert彈出窗如何處理?

  使用driver.switch_to.alert方法先跳轉到alert彈出窗口

  然后再通過accept點擊確定按鈕,通過dismiss點擊取消難,通過text()獲得彈出窗口的文本

8、如何處理多窗口?

  這個多窗口之間跳轉處理,我們在項目中也經常遇到。就是,當你點擊一個鏈接,這個鏈接會在一個新的tab打開,然后你接下來要在新tab打開的頁面查找元素,

     1.我們在點擊鏈接前使用driver.current_window_handle獲得當前窗口句柄。

    2.再點擊鏈接。點擊后通過driver.window_handles獲得所有窗口的句柄,

    3.然后再循環找到新窗口的句柄,然后再通過driver.switch_to.window()方法跳轉到新的窗口

9、怎么驗證元素是enable/disabled/checked狀態?

  定位元素后:分別通過isEnabled(),isSelected(),isDisplayed()三個方法進行判斷。

10、如何處理下拉菜單?

  在Selenium中有一個叫Select的類,這個類支持對下拉菜單進行操作。使用方法如下:

    1.定位元素

    2.把定位的元素轉化成Select對象。

      sel = Select(定位的元素對象)

    3.通過下標或者值或者文本選中下拉框。
      sel.select_by_index(index);
      sel.select_by_value(value);
      sel.select_by_visible_text(text);

11、在日歷這種web 表單你是如何處理的?

  首先要分析當前網頁試用日歷插件的前端代碼,看看能不能通過元素定位,點擊日期實現,如果不能,可能需要借助javascript。還有些日歷控件一個文本輸入框,可以直接sendKeys()方法來實現傳入一個時間的數據。

12、常見的selenium異常有哪些:

  NoSuchElementException:沒有該元素異常

   TimeoutException : 超時異常

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

13、關閉瀏覽器中quit和close的區別

  兩個都可以實現退出瀏覽器session功能,close是關閉你當前聚焦的tab頁面,而quit是關閉全部瀏覽器tab頁面,並退出瀏覽器session。

    quit一般用在結束測試之前的操作,close用在執行用例過程中關閉某一個頁面的操作。

14、在Selenium中如何實現截圖,如何實現用例執行失敗才截圖

    在Selenium中提供了一個get_screenshot_as_file()的方法來截圖的,一般結合try/except捕獲異常時使用,進行錯誤截圖。

15、如何實現文件上傳?

  定位元素后,直接使用send_keys()方法設置就行,參數為需要上傳的文件的路徑。

16、自動化中有哪三類等待?他們有什么特點?

  1.線程等待(強制等待)如time.sleep(2):線程強制休眠2秒鍾,2秒過后,再執行后續的代碼。建議少用。

  2.imlicitlyWait(隱式等待)會在指定的時間范圍內不斷的查找元素,直到找到元素或超時,特點是必須等待整個頁面加載完成。

  3.WebDriverWait(顯式等待)通常是我們自定義的一個函數代碼,這段代碼用來等待某個元素加載完成,再繼續執行后續的代碼

17、你寫的測試腳本能在不同瀏覽器上運行嗎

  當然可以,我寫的用例可以在在IE,火狐和谷歌這三種瀏覽器上運行。

  實現的思路是封裝一個方法,分別傳入一個瀏覽器的字符串,如果傳入IE就使用IE,如果傳入FireFox就使用FireFox,如果傳入Chrome就使用Chrome瀏覽器,並且使用什么瀏覽器可以在總的ini配置文件中進行配置。

  需要注意的是每個瀏覽器使用的驅動不一樣。

18、什么是PO模式,為什么要使用它

   PO是Page Object 模式的簡稱,它是一種設計思想,意思是,把一個頁面,當做一個對象,頁面的元素和元素之間操作方法就是頁面對象的屬性和行為,

  PO模式一般使用三層架構,分別為:基礎封裝層BasePage,PO頁面對象層,TestCase測試用例層。

  轉載:https://www.cnblogs.com/mrjade/p/12737889.html

 


免責聲明!

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



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