除自身以外陣列的乘積
首先來看業界用的較早也是經常聽過的一款工具—— 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 也是一款自動遍歷工具,由國內的 zhangzhao 同學開發,官方給出的定義是:
我們來看看這款工具的優缺點:
優點:
- 基於Monkey二次開發,執行速度非常快
- 提供了多種遍歷演算法以提高覆蓋度
- 提供了定製化功能,可以實現流程控制
缺點: - 因為是基於 Monkey,所以不具備跨平臺性,只能測試 Android,不能測試 iOS,Web 等;
這是一款很優秀的工具,可在一定程度上進行定製,如果只測試 Android 系統的話,可以考慮選用 Maxim 做自動遍歷。
官方 GitHub 地址:
GitHub - zhangzhao4444/Maxim: 高速uiautomator控制元件解析演算法的Android Monkey,...
高速uiautomator控制元件解析演算法的Android Monkey, 每秒10-15個Action Event。實現快速DFS演算法的Android Monkey , 每秒 5個Action Event。 - GitHub - zhangzhao4444/Maxim: 高速uiautomator控制元件解析演算法的Android Monkey, 每秒10-15個Action Event。實現快速D...
Fastbot是位元組跳動的Quality Lab團隊開發的一款融合了機器學習與強化學習的基於模型測試的工具。
中文介紹
英文介紹
Fastbot可以理解為MaxIM的升級版,為了增強覆蓋,融合了多種機器學習、強化學習等相關的演算法。他的執行速度很快,並顯著提升了測試覆蓋度。應用的效果也是非常不錯的。
這是來自於作者團隊的效果介紹
官方 GitHub 地址:
https://github.com/bytedance/Fastbot_Android 1
AppCrawler 是由霍格沃茲測試開發學社第一任校長思寒開源的一個專案,官方 GitHub 上對這款工具的解釋是:
這裡順便提一下的是谷歌也釋出了一款自動遍歷的工具,名字幾乎一樣,叫做 App Crawler (差了一個空格),設計的思想也一致。思寒開源的的工具比谷歌早了兩年時間。
下面來看看 AppCrawler 的作用和價值。看看它為何滿足我們的測試需求,它的優缺點又在哪裡。
優點:
- 跨平臺性:AppCrawler 是基於 Appium 開發的,所以支援 Android、iOS、Web以及GUI
- 靈活定製:對遍歷的頁面、控制元件、事件、深度等都可自由控制
缺點:
- 執行速度較慢:AppCrawler 是基於 Appium 開發具備了跨平臺的優點,但是也因為這層封裝造成了執行速度相對較慢,再加上執行過程中加入了截圖(可以在配置中取消,但是取消後不利於結果的檢視),執行起來自然就慢了;
- 使用門檻高:正因為使用靈活性的問題,也造成了使用門檻的提高,主要基於 YAML 檔案中使用 Appium 的相關技術知識進行配置,這就對使用者有了一定的技術要求;