乾貨丨實現UI自動化測試,這5個常見問題你應該知道!
UI自動化測試一直都是如此的令人糾結,自動化測試初學者總是拿它入門,但有些經驗豐富者對其又是譭譽參半,抑或丟擲分層自動化測試那個經典的“金字塔”,來說明UI自動化測試還是少做為好。
我在從事7年產品研發之後,臨危受命轉向測試領域,至今又7年有餘。期間最關注的一直是UI端/使用者端的自動化技術:從Web應用到移動App、從測試到RPA(機器人流程自動化)、從框架研發到應用推廣。
下面我就分享下為什麼要做UI自動化測試、UI自動化測試要點以及其他的心得體會,希望能給各位同行帶來思想上的碰撞。
1、首先,講講UI自動化測試的誤區吧
誤區一: UI自動化沒用
造成這個誤區的原因也很簡單。技術和業務拆解能力不足就直接去搞自動化了。所以自然就沒什麼好效果,然後總結出了一個結論--UI自動化沒有什麼用。
誤區二: UI自動化實現很簡單
之所以有這麼一個誤區原因也很簡單。UI自動化不論是selenium、rf還是TestWriter。平常用的API確實沒多少,很好學。稍微有程式碼基礎的人就能很快上手,TestWriter更是0編碼都可以上手,所以覺得這真的很簡單。但其實,如果想要更長遠的發展,需要學習的東西還有很多。
2、自動化測試分層
測試金字塔:
單元自動化測試(資料處理層) :指對軟體中最小的可測試單元進行檢查和驗證,一般需要藉助單元測試框架,如java的Junit、TestNG,python的unittest,常見的手段是code review等;
介面自動化測試(業務邏輯層) :主要檢查驗證模組間的呼叫返回以及不同系統、服務間的資料交換,常見的介面測試工具有postman、jmeter、loadrunner等;
UI自動化測試(GUI介面層) :UI層是使用者使用產品的入口,所有功能透過這一層提供給使用者,測試工作大多集中在這一層,常見的測試工具有UFT、Robot Framework、Selenium、Appium等;
價效比:按照測試金字塔模型以及投入/產出比,越向下,回報率越高;
Google的自動化分層投入佔比:
小測試(Unit):佔比70%;
中測試(Service):佔比20%;
大測試(UI):佔比10%;
自動化測試面臨的挑戰:面臨的最大挑戰就是變化,因為變化會導致測試用例執行失敗,所以需要對自動化指令碼不斷debug,如何控制成本、降低成本是對自動化測試工具以及人員能力的挑戰。
3、什麼樣的專案適合自動化測試
如上圖所示,真正工作中無法全部滿足以上條件,所以需要作出權衡,一般來說,只需要滿足以下幾點,就可以對專案開展自動化測試(圖中紅色框標註的選項):
①需求穩定,不會頻繁變更
自動化測試最大的挑戰就是需求的變化,而自動化指令碼本身就需要修改、擴充套件、debug,去適應新的功能,如果投入產出比太低,那麼自動化測試也失去了其價值和意義;
折中的做法是選擇相對穩定的模組和功能進行自動化測試,變動較大、需求變更較頻繁的部分用手工測試;
②多平臺執行,組合遍歷型、大量的重複任務
測試資料、測試用例、自動化指令碼的重用性和移植性較強,降低成本,提高效率和價值;
③軟體維護週期長,有生命力
自動化測試的需求穩定性要求、自動化框架的設計、指令碼開發與除錯均需要時間,這其實也是一個軟體開發過程,如果專案週期較短,沒有足夠的時間去支援這一過程,那自動化測試也就不需要了;
④被測系統開發較為規範,可測試性強
主要出於這幾點考慮:被測試系統的架構差異、測試技術和工具的適應性、測試人員的能力能否設計開發出適應差異的自動化測試框架;
4、常見的自動化測試工具簡介
UFT
即原來的QTP與ST合併而來,由HP公司開發,是一個企業級的商業自動化測試工具,提供了強大易用的錄製回放功能,
同時相容物件識別模式與影像識別模式,支援B/S和C/S兩種架構的軟體測試;
Robot Framework
一款基於python語言編寫的自動化測試框架工具,具備良好的擴充套件性,支援關鍵字驅動,支援多種型別的客戶端和介面,可進行分散式測試;
Selenium
應用於web的自動化測試工具,支援多平臺、多瀏覽器、多語言來實現自動化,優點如下:
①開源、免費;
②多瀏覽器支援:chrome、Firefox、IE、Edge等;
③多平臺支援:Linux、Windows、MAC;
④多語言支援:java、python、Ruby、C#、JavaScript、C++;
⑤對web介面有良好的支援;
⑥簡單(API簡單)、靈活(開發語言驅動);
⑦支援分散式測試用例執行;
5、做UI自動化測試,需要什麼技能
①前端相關技術
HTML、XML、JavaScript、TCP/IP協議等
②一門程式語言
就像前面說的,selenium支援多種語言,根據個人情況以及專案的開發語言酌情選擇;
③合適的工具選型
比如selenium,比如UTF等;
④需求分析
專案型別,特質,生命週期,是否適合開展自動化測試等;
總結:
如果一個組織真正重視軟體質量,UI自動化測試是有必要做的。有如下幾點理由:
任何自動化工具都是在簡單、機械、重複的任務場景下最能發揮作用,UI測試非常符合這個特點。
對於很多組織來說,UI測試是當前耗費測試團隊人力最多的環節,大部分專職測試人員日常工作就是UI測試。“工欲善其事必先利其器”,測試人員也需要自動化工具來提升其日常工作效率。
無論後臺多複雜、多重要,使用者接觸的終究還是前端介面。現在的軟體除了後臺邏輯之外,還有很多前端指令碼邏輯和樣式,單純靠後臺介面/單元測試,無法證明使用者端的可用性。
歡迎加入 51軟體測試大家庭,在這裡你將獲得【最新行業資訊】,【免費測試工具安裝包】,【軟體測試技術乾貨】,【面試求職技巧】... 51與你共同學習,一起成長!期待你的加入: QQ 群: 755431660
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31407649/viewspace-2222322/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 純鹼,這些乾貨你應該知道QLX
- 自動化測試基礎之Python常見問題Python
- 乾貨分享丨一種DevOps模式下UI自動化測試左移思路的探究dev模式UI
- android 5個自動化測試Ui框架AndroidUI框架
- Postman實現UI自動化測試PostmanUI
- 【分享】Postman介面測試實戰分享,這5個問題你必須得知道!Postman
- Linux常見面試題,這些你知道多少?Linux面試題
- 自動化測試常見問題總結!(適合新手團隊)
- 自動化測試應該如何實現多執行緒?執行緒
- 請問自動化測試應該測試非法資料嗎
- UI自動化測試實戰UI
- 自動化測試系列 —— UI自動化測試UI
- 10道Linux常見面試題,你知道幾個?Linux面試題
- 【自動化測試框架】pytest和unitttest你知道多少?區別在哪?該用哪個?框架
- 解放雙手 - Android 開發應該嘗試的 UI 自動化測試AndroidUI
- UI自動化測試工程實踐UI
- 乾貨丨Python介面測試自動化實戰及程式碼示例:含get、post等方法Python
- 乾貨丨RPA郵件自動化技巧
- 持續測試跟自動化測試的這些區別你知道嗎?
- 你應該知道的 Laravel 面試問題,要搞懂Laravel面試
- 【學員乾貨】App常見效能測試點APP
- 你應該學會的Postman用法(2)-自動化測試Postman
- 華為鴻蒙OS釋出會解析,這些乾貨你應該知道鴻蒙
- 常見的自動化測試框架有哪些?框架
- JMeter 介面測試實戰分享,這7個問題你一定要知道!JMeter
- 關於 SAP UI5 應用的自動化測試方法UI
- 每個 Kubernetes 應聘者應該知道的 5 個面試題面試題
- 軟體測試技術乾貨丨舉個例子告訴你,未開發完成的介面該如何測試
- Vue 常見面試問題,你可能都知道,但能答好嗎?Vue面試
- 一個 UI 自動化問題諮詢UI
- 關於 ui 自動化測試 driver 疑問?UI
- 滲透測試常見的9大漏洞,你知道幾個?
- 自動化測試系列(三)|UI測試UI
- 【乾貨】常見的5個python資料視覺化庫介紹!Python視覺化
- 關於理財你最應該知道幾個問題
- Hadoop測試常見問題和測試方法Hadoop
- 【經驗分享】Python實現UI自動化難點問題PythonUI
- 自動化測試可替代手動測試?軟體測試這個誤區你有嗎?