1. 程式人生 > 其它 >cad.net 封裝jig

cad.net 封裝jig

隨著移動網際網路的發展,App 的功能變得越來越多,功能也越來越複雜。App 的迴歸測試、穩定性與健壯性也變得更加重要。更好的使用者體驗能讓 App
在激烈的競爭市場中脫穎而出,從而為公司帶來巨大的收益。因此針對 App
的自動化迴歸測試、非功能測試等相關的測試技術正成為軟體工程和智慧化測試的熱門研究方向。

行業裡比較流行的測試手段主要包括手工測試與自動化測試。在App的複雜性前提下,手工測試善於解決新feature的測試,但是很難及時有效的完成迴歸測試、相容性測試等工作。自動化測試雖然可以做到及時反饋,但是要覆蓋充分的功能,又會面臨維護成本問題。那麼有沒有一種方法是可以很好的針對性的解決上述問題的呢?這就是我們今天給大家介紹的智慧遍歷測試技術。

遍歷技術可以通過智慧分析app
ui模型與業務路徑,實現自動化測試。它相對於手工測試,可以更快更全的覆蓋功能點,相對於自動化測試又可以大大降低維護成本,所以智慧遍歷/自動遍歷測試技術就成了最近幾年各家名企都在大力去投資的一項測試技術。

接下來我們就帶大家瞭解下行業裡非常熱門的幾款智慧遍歷測試工具。

** 4款常見自動遍歷工具對比**

Monkey app壓力測試工具

首先來看業界用的較早也是經常聽過的一款工具—— Monkey。這是 Android 官方提供的一個工具。谷歌原本設計這款工具是為了對 App
進行壓力測試的。谷歌早期在設計 Android 的時候,Android 需要響應滑動、輸入、音量、電話等事件,早期 activity
設計不完善的時候,谷歌希望測試 activity 的效能,把所有的資料批量化的輸出給 activity,看 activity
一秒鐘可以處理多少資料。所以早期 Monkey 是用來做 Android 的一個壓力測試的工具。

由於 Monkey 在測試過程中的“隨機”性,恰巧可以被用來做自動遍歷測試,但是 monkey
的缺點很明顯,不支援業務行為定製,無法靈活的控制,經常會點到外部的 App 無法迴歸原測試 App;或者點選到登出和退出,造成無法繼續後面的測試;因此
monkey 在經過調研瞭解後沒有成為我們做自動遍歷測試的首選。

Monkey 官方連結:

https://developer.android.com/studio/test/monkey

Maxim 自動遍歷工具

Maxim 也是一款自動遍歷工具,由國內的 zhangzhao 同學開發,官方給出的定義是:

An efficient Android Monkey Tester, available for emulators and real devices
基於遍歷規則的高效能 Android Monkey,適用於真機/模擬器的 APP UI 壓力測試。

我們來看看這款工具的優缺點:

優點:

  • 基於Monkey二次開發,執行速度非常快

  • 提供了多種遍歷演算法以提高覆蓋度

  • 提供了定製化功能,可以實現流程控制

缺點:

  • 因為是基於 Monkey,所以不具備跨平臺性,只能測試 Android,不能測試 iOS,Web 等;

這是一款很優秀的工具,可在一定程度上進行定製,如果只測試 Android 系統的話,可以考慮選用 Maxim 做自動遍歷。

官方 GitHub 地址:

https://github.com/zhangzhao4444/Maxim

位元組跳動Fastbot 健壯性測試工具

Fastbot是位元組跳動的Quality Lab團隊開發的一款融合了機器學習與強化學習的基於模型測試的工具。

中文介紹

基於model-based testing 結合機器學習、強化學習的APP 穩定性測試工具

英文介紹

Fastbot is a model-based testing tool for modeling GUI transitions to
discover app stability problems. It combines machine learning and
reinforcement learning techniques to assist discovery in a more intelligent
way.

Fastbot可以理解為MaxIM的升級版,為了增強覆蓋,融合了多種機器學習、強化學習等相關的演算法。他的執行速度很快,並顯著提升了測試覆蓋度。應用的效果也是非常不錯的。

這是來自於作者團隊的效果介紹

目前,Fastbot 已廣泛應用於位元組客戶端類產品的穩定性測試與相容性測試。每日啟動任務數超過 300 次,每日平均發現 5000
個以上的崩潰,並有超過 100 個新捕獲的崩潰。藉助 Fastbot 的能力,我們在發版前就可以修復大部分的
crash,確保線上使用者的使用體驗。同時,Fastbot 在整個 DevOps
流程扮演重要的基礎服務角色。我們相信,越來越多的智慧化測試工具,將極大的改善國內傳統測試行業。

官方 GitHub 地址:

https://github.com/bytedance/Fastbot_Android

AppCrawler 優缺點

AppCrawler 是由霍格沃茲測試開發學社第一任校長思寒開源的一個專案,官方 GitHub 上對這款工具的解釋是:

一個基於自動遍歷的 App 爬蟲工具。支援 Android 和 iOS,支援真機和模擬器。最大的特點是靈活性,可通過配置來設定遍歷的規則。

這裡順便提一下的是谷歌也釋出了一款自動遍歷的工具,名字幾乎一樣,叫做 App Crawler
(差了一個空格),設計的思想也一致。思寒開源的的工具比谷歌早了兩年時間。

下面來看看 AppCrawler 的作用和價值。看看它為何滿足我們的測試需求,它的優缺點又在哪裡。

優點

  • 跨平臺性:AppCrawler 是基於 Appium 開發的,所以支援 Android、iOS、Web以及GUI

  • 靈活定製:對遍歷的頁面、控制元件、事件、深度等都可自由控制

缺點

  • 執行速度較慢:AppCrawler 是基於 Appium 開發具備了跨平臺的優點,但是也因為這層封裝造成了執行速度相對較慢,再加上執行過程中加入了截圖(可以在配置中取消,但是取消後不利於結果的檢視),執行起來自然就慢了;

  • 使用門檻高:正因為使用靈活性的問題,也造成了使用門檻的提高,主要基於 YAML 檔案中使用 Appium 的相關技術知識進行配置,這就對使用者有了一定的技術要求;

** 作者親授帶你玩轉自動化遍歷**

給大家介紹了常見的幾款遍歷工具,相信大家已經對自動遍歷已經有所瞭解。那麼如何把這套有趣又有用的技術落地到自己的工作中以保證好迴歸測試、健壯性測試效果哪?

9月28日appcrawler的作者思寒將來到直播間,與大家分享並交流智慧遍歷的相關技術,並教大家在工作中如何應用。

** ** ** ** 點一下在看,就少一個 Bug!********

閱讀原文