關於Web端-UI自動化測試

在手工測試階段,針對項目輸出了測試用例,若是這些測試用例須要在版本迭代的過程當中,須要進行迴歸測試,經過手工重複地執行測試用例,將會耗費大量的人力。面試

爲此應運而生就有了自動化測試,經過使用自動化工具,將按照測試用例進行點點操做,校驗的工做,交給代碼程序來執行,測試工做,就變得省心省力了。併發

  • 重點:測試用例是自動化測試腳本的依據,一切不基於測試用例而寫的自動化腳本都是耍流氓。

關於UI自動化測試

UI 自動化的本質

  • 定位元素
  • 操做元素
  • 模擬頁面動做
  • 斷言結果
  • 生成報告

基於以上5個本質,自動化測試的總體流程是這樣的,這裏百度登錄功能的測試用例爲例:框架


  1. 對於這條測試用例,須要找到它的定位元素:用戶名輸入框,密碼輸入框,登錄按鈕
  2. 操做元素:對於這3個定位元素的操做有2種,分別是「輸入」與「點擊」
  3. 模擬頁面動做,也就是測試用例的步驟:工具

    1. 輸入用戶名
    2. 輸入密碼
    3. 點擊登錄按鈕
  4. 判斷結果:將用例中的預期結果與實際結果進行比對,若是一致,表明成功,不然表明失敗。對於這條測試用例,登錄成功的標誌是,頁面右上角出現了用戶的頭像與用戶名,那麼,能夠經過獲取網頁中用戶名的文本信息,與登陸帳戶的用戶名對比,一致的話,表明這條用例經過。
  5. 根據執行結果,自動生成報告,經常使用的第三方模塊:HtmlTestRunnerAllure2

適合UI自動化測試的場景

固然,不是全部的測試場景都適合用自動化測試來實現。測試

對此,能夠參考如下的標準輔助判斷:spa

  1. 項目的需求不會頻繁變更
  2. 頁面的 UI 已經進入穩定階段
  3. 項目週期足夠長
  4. 大量回歸的測試任務

其中,有一些項目是明顯不適合使用 UI 自動化測試的,例如視頻播放器(暴風影音,騰訊視頻,愛奇藝等),音樂播放器(例如網易雲音樂,QQ 音樂等)等交動性強,併發依賴強的軟件。設計

緣由是,這一類軟件,判斷視頻內容對不對,判斷音樂聲音與歌詞對不對,難度極大。3d

另外,延伸一個話題:關於自動化測試的覆蓋率,面試會問到的一個點。code

國內大多數互聯網公司的項目迭代週期比較短,所以自動化覆蓋率通常都不高。視頻

具體仍是要根據項目迭代週期進行描述,參考標準是:

  • 迭代週期是半年或者一年以上的項目,每次需求變更不多,自動化測試的覆蓋率通常是60%-70%,主要是覆蓋以前的舊功能以及核心場景
  • 迭代週期爲一個月的項目, 覆蓋率大概是25-30%,主要是覆蓋 P0(極重要)級別的絕大多數用例,與 P1(重要)級別中的部分用例
  • 1~2週一個迭代的項目,覆蓋率大概是10%,主要是覆蓋 P0(極重要)級別,可能會對用戶形成嚴重影響的核心場景

其次,UI 自動化測試的時間切入點主要有2個:

  1. 冒煙測試階段
  2. 迴歸測試階段

UI 自動化測試設計原則

  1. 一個測試用例完成一個功能點測試(經常使用):一個手工用例對應一個自動化測試用例
  2. 一個腳本是一個完整的場景
  3. 腳本之間獨立,不能有依賴(腳本間相互隔離):例如與登錄狀態相關的用例:我的中心、訂單詳情、下單購物等,若是腳本之間不獨立,相互依賴,在登錄的測試腳本失敗的狀況下,會致使我的中心、訂單詳情、下單購物的測試腳本全軍覆滅,後續修復與維護成本高
  4. 設置合適的檢查點:經過斷言判斷用例的成功與否
  5. 設計良好的框架:Python 經常使用的測試框架有 unittestpytest,利用框架,及對共用的測試模塊進行封裝,減小自動化測試腳本維護的工做量

總結

相關文章
相關標籤/搜索