谷歌安卓UI自動化測試策略

2021-09-17 08:32:44 字數 1223 閱讀 4610

為了使大家確信「應做單元測試,就一定能做單元測試」,谷歌測試工程師mona el mahdy專門寫了一篇部落格,提出了幾種執行安卓應用使用者介面單元測試的方法。mahdy推薦使用 robolectric和android studio gradle

外掛程式做常規的單元測試,用 espresso 或 ui automator 建立和執行單元測試。

\\端到端的測試。mahdy提出的第一種ui測試方法是e2e。這樣的測試應該可以啟動安卓應用及其所有與之相關的後端系統,使之可以在真實的場景中完成ui測試。重複執行這些的測試是很困難的,因為「存在很多的影響因素,比如網路頻寬、實際伺服器的認證、系統規模等」,所以就很難做到「e2e測試的除錯排查和穩定化處理」。為簡化這些點,mahdy也提出了一些其他的測試策略。

\\用隔離的伺服器測試。隔離的伺服器

是指與外界隔離的伺服器,是在本地執行的一台單獨的伺服器,不連線網路。在執行的時間通過依賴注入(可能需要繫結到這台伺服器的靜態檔案)的方式提供與其他伺服器的連線,如果需要的話,還可以在本地檔案或記憶體儲存中偽造一些響應資料。另乙個選擇是,為隔離的伺服器提供一系列記錄好的響應,以模擬真實終端伺服器的返回值。

\\ 針對測試目的,隔離的伺服器作為被測系統在同一臺機器上本地執行,其上執行安卓模擬器。雖然這種方式提高了測試的執行速度,有時也會消除一些網路連線的碎片,但是它需要單獨的整合測試以確保客戶端應用與後端是同步的。出於這個目的,google+團隊用了一組「**的」需求/響應檔案,大家都知道它們包含了客戶端應用到終端伺服器的正確的傳輸序列。用**的需求檔案根據這台伺服器的所有響應生成乙個檔案,然後再用這個檔案與**的響應檔案進行比較。

\\ mahdy提出,使用隔離的伺服器比e2e測試可以更好地完成測試,但是除錯卻仍舊是個難題,而且這台隔離的伺服器可能會導致一些通訊碎片。所以,她提出了另乙個改進方案。

\\使用依賴注入(di多重類庫。如果安卓應用比較大,mahdy建議把它分割成更多小的元件,每個和它自己的模組和檢視把包到乙個單獨的類庫中。然後,你們就可以使用單獨的di、模擬模組和測試進行每個元件的開發和測試了。為確保整個應用的運轉,需要整合的測試。這一方式更是進一步提公升了測試的速度。

\\ 最後,mahdy總結道:「元件化的ui測試要比e2e測試快得多,並具備99%的穩定性。快速而穩定的測試從根本上提公升了開發人員的生產效率。」

\\檢視英文原文:google strategies for automated android ui testing

UI 介面自動化測試策略

今天跟大家介紹ui測試 介面測試 單元測試主要內容,以及每種測試花費時間討論。ui測試 selenium ui測試是最接近軟體真實使用者使用行為的測試型別。通常是模擬真實使用者使用軟體的行為,即模擬使用者在軟體介面上的各種操作,並驗證這些操作對應的結果是否正確。介面測試 api測試 api測試,主要...

UI自動化測試 介面測試等自動化測試策略

今天跟大家介紹ui測試 介面測試 單元測試主要內容,以及每種測試花費時間討論。ui測試 selenium ui測試是最接近軟體真實使用者使用行為的測試型別。通常是模擬真實使用者使用軟體的行為,即模擬使用者在軟體介面上的各種操作,並驗證這些操作對應的結果是否正確。介面測試 api測試 api測試,主要...

Monkey工具 安卓自動化測試

有時候我們需要對乙個軟體進行壓力測試,檢查該軟體的效能。如果是人工進行測試的話,效率會低很多,而且會比較枯燥。這時,android 中的乙個命令列工具 monkey 就可以為我們減輕很多重複而又繁瑣的工作。一 monkey 簡介至於monkey 的名字是有何而來的呢?這個沒有去怎麼考究,monkey...