在手工測試階段,針對項目輸出了測試用例,如果這些測試用例需要在版本疊代的過程中,需要進行回歸測試,通過手工重複地執行測試用例,将會耗費大量的人力。
為此應運而生就有了自動化測試,通過使用自動化工具,将按照測試用例進行點點操作,校驗的工作,交給代碼程式來執行,測試工作,就變得省心省力了。
- 重點:測試用例是自動化測試腳本的依據,一切不基于測試用例而寫的自動化腳本都是耍流氓。
關于 UI
自動化測試
UI
UI
自動化的本質:
- 定位元素
- 操作元素
- 模拟頁面動作
- 斷言結果
- 生成報告
基于以上5個本質,自動化測試的整體流程是這樣的,這裡百度登陸功能的測試用例為例:
- 對于這條測試用例,需要找到它的定位元素:使用者名輸入框,密碼輸入框,登陸按鈕
- 操作元素:對于這3個定位元素的操作有2種,分别是“輸入”與“點選”
- 模拟頁面動作,也就是測試用例的步驟:
- 輸入使用者名
- 輸入密碼
- 點選登陸按鈕
- 判斷結果:将用例中的預期結果與實際結果進行比對,如果一緻,代表成功,否則代表失敗。對于這條測試用例,登陸成功的标志是,頁面右上角出現了使用者的頭像與使用者名,那麼,可以通過擷取網頁中使用者名的文本資訊,與登入賬戶的使用者名對比,一緻的話,代表這條用例通過。
- 根據執行結果,自動生成報告,常用的第三方子產品:
,HtmlTestRunner
等Allure2
适合
UI
自動化測試的場景
當然,不是所有的測試場景都适合用自動化測試來實作。
對此,可以參考以下的标準輔助判斷:
- 項目的需求不會頻繁變動
- 頁面的
已經進入穩定階段UI
- 項目周期足夠長
- 大量回歸的測試任務
其中,有一些項目是明顯不适合使用
UI
自動化測試的,例如視訊播放器(暴風影音,騰訊視訊,愛奇藝等),音樂播放器(例如網易雲音樂,
QQ
音樂等)等交動性強,并發依賴強的軟體。
原因是,這一類軟體,判斷視訊内容對不對,判斷音樂聲音與歌詞對不對,難度極大。
另外,延伸一個話題:關于自動化測試的覆寫率,面試會問到的一個點。
國内大多數網際網路公司的項目疊代周期比較短,是以自動化覆寫率一般都不高。
具體還是要根據項目疊代周期進行描述,參考标準是:
- 疊代周期是半年或者一年以上的項目,每次需求變動很少,自動化測試的覆寫率一般是60%-70%,主要是覆寫之前的舊功能以及核心場景
- 疊代周期為一個月的項目, 覆寫率大概是25-30%,主要是覆寫
(極重要)級别的絕大多數用例,與P0
(重要)級别中的部分用例P1
- 1~2周一個疊代的項目,覆寫率大概是10%,主要是覆寫
(極重要)級别,可能會對使用者造成嚴重影響的核心場景P0
其次,
UI
自動化測試的時間切入點主要有2個:
- 冒煙測試階段
- 回歸測試階段
UI
自動化測試設計原則
- 一個測試用例完成一個功能點測試(常用):一個手工用例對應一個自動化測試用例
- 一個腳本是一個完整的場景
- 腳本之間獨立,不能有依賴(腳本間互相隔離):例如與登陸狀态相關的用例:個人中心、訂單詳情、下單購物等,如果腳本之間不獨立,互相依賴,在登陸的測試腳本失敗的情況下,會導緻個人中心、訂單詳情、下單購物的測試腳本全軍覆滅,後續修複與維護成本高
- 設定合适的檢查點:通過斷言判斷用例的成功與否
- 設計良好的架構:Python 常用的測試架構有
與unittest
,利用架構,及對共用的測試子產品進行封裝,減少自動化測試腳本維護的工作量pytest
總結
如果對軟體測試有興趣,想了解更多的測試知識,解決測試問題,以及入門指導,幫你解決測試中遇到的困惑,我們這裡有技術高手。如果你正在找工作或者剛剛學校出來,又或者已經工作但是經常覺得難點很多,覺得自己測試方面學的不夠精想要繼續學習的,想轉行怕學不會的, 公衆号(程式員阿沐)都可以加入我們810119819,群内可領取最新軟體測試大廠面試資料和Python自動化、接口、架構搭建學習資料!