Monkey
Monkey1是Android SDK自帶的測驗工具,是一個命令列工具,可以運行在模擬器里或實際設備中,可以運行在模擬器中或者實際設備中,它向系統發送偽隨機的用戶事件流(如按鍵輸入,觸摸屏輸入,手勢輸入等),實作對正在開發的應用程式進行壓力測驗,由于測驗事件和資料都是隨機的,不能自定義,所以有很大的局限性,
撰寫語言:命令列
運行環境:使用adb連接PC運行
測驗物件:Android平臺自動化測驗的一種手段,通過Monkey程式模擬用戶觸摸螢屏、滑動Trackball、按鍵等操作來對設備上的程式進行壓力測驗,檢測程式多久的時間會發生例外,主要測驗客戶端應用的穩定性,健壯性
測驗限制:主要是做隨機模擬用戶操作移動端的操作
例子:
adb shell monkey -p com.android.calendar -v 500
這樣就開始亂點日歷應用了,
加入我們,642830685,群,領取最新軟體測驗大廠面試資料和Python自動化、介面、框架搭建學習資料!技術大牛解惑
MonkeyRunner
MonkeyRunner2是Android SDK提供的測驗工具,嚴格意義上來說MonkeyRunner其實是一個Api工具包,比Monkey強大,可以撰寫測驗腳本來自定義資料、事件,缺點是腳本(jython(java語言))用Python(Python(C語言))來寫,對測驗人員來說要求較高,有比較大的學習成本;使用By id/name/text方法操控(hierarchyviewer),執行速度太慢,典型應用:安裝,卸載,啟動Activity,點擊X,Y坐標,發送按鍵事件,drag,截屏等,
這個相對于Monkey 來說 就是真正意義上的 自動化測驗工具了,只需要撰寫腳本即可完成 我們平時所需要的 大部分 冒煙用例等等,
尤其是在4.x以下的機型里,由于無法使用uiautomator, MonkeyRunner幾乎就是唯一的自動化測驗撰寫辦法,
撰寫語言:py
運行環境:py環境,使用adb連接PC運行
測驗物件:UI測驗,功能測驗,回歸測驗,并且可以自己定義測驗擴展,靈活性較大,
測驗限制:主要使用坐標,邏輯判斷較差
UiAutomator
UiAutomator3是Android提供的自動化測驗框架,基本上支持所有的Android事件操作,是用來做UI測驗的,也就是普通的手工測驗,點擊每個控制元件元素看看輸出的結果是否符合預期,對比Instrumentation它不需要測驗人員了解代碼實作細節(可以用UiAutomatorviewer抓去App頁面上的控制元件屬性而不看原始碼),能跨App(比如:很多App有選擇相冊、打開相機拍照,這就是跨App測驗),缺點是只支持SDK 16(Android 4.1)及以上,不支持Hybird App、WebApp,
撰寫語言:java
運行環境:使用adb連接PC運行,啟動測驗
測驗物件:主要用于UI功能自動化和UI測驗,快速、運行簡單
測驗限制:是通過以控制元件的方式來定位,當然也是支持坐標軸的方式來定位,權限控制不足,無法像Instrumentation那樣使用,
Robotium
Robotium是基于Instrumentation的測驗框架,主要針對android平臺的應用進行黑盒自動化測驗,它提供了模擬各種手勢操作(點擊,長按,滑動等)、查找和斷言機制的API,能夠對各種控制元件進行操作,Robotium結合android官方提供的測驗框架達到對應用程式進行自動化測驗,另外,Robotium 4.0版本已經支持對WebView的操作,Robotium對Activity,Dialog,Toast,Menu都是支持的,支持Native app、Hybird App,缺點不能跨App,
錄制工具Radar(不穩定)、Testin(不提供原始碼)、官網工具(收費)
開發環境:腳本語言java;Eclipse中引入:robotium-solo-**.jar
撰寫語言:java基于Instrumentation封裝
運行環境:使用adb連接PC運行,啟動測驗
測驗物件:主要用于白盒測驗和UI測驗
測驗限制:單個Activity測驗,需要與測驗相同應該的簽名各種框架撰寫代碼風格
Appium
Appium是開源的移動端自動化測驗框架;支持Native App、Hybird App、Web App;支持Android、iOS、Firefox OS;是跨平臺的可以在mac,windows以及linux系統上,用Appium自動化測驗不需要重新編譯App;腳本語言:Java、python、ruby、C#、Objective C、PHP等主流語言,
相關限制:如果你在Windows使用Appium,你沒法使用預編譯專用于OS X的.app檔案,因為Appium依賴OS X專用的庫來支持iOS測驗,所以在Windows平臺你不能測驗iOS Apps,這意味著你只能通過在Mac上來運行iOS測驗,
總結:在iOS部分是封裝了UIAutomation;Android 4.2以上是用UiAutomator,Android 2.3 ~ 4.1用的是Instrumentation,也就說Appium同時封裝了UiAutomator和Instrumentation,所以Appium擁有了以上幾大框架的所有優點:跨App,支持Native App、Hybird App、Web App,還支持N種語言來撰寫你的測驗腳本,
appium內核基于UiAutomator來識別元素,如果只有Android app產品,推薦選擇robotium,提供的API比appium好用;既有IOS和Android,則使用appium
Instrumentation
Instrumentation是早期Google提供的Android自動化測驗工具類,雖然在那時候JUnit也可以對Android進行測驗,但是Instrumentation允許你對應用程式做更為復雜的測驗,甚至是框架層面的,通過Instrumentation你可以模擬按鍵按下、抬起、螢屏點擊、滾動等事件,Instrumentation是通過將主程式和測驗程式運行在同一個行程來實作這些功能,你可以把Instrumentation看成一個類似Activity或者Service并且不帶界面的組件,在程式運行期間監控你的主程式,缺點是對測驗人員來說撰寫代碼能力要求較高,需要對Android相關知識有一定了解,還需要配置AndroidManifest.xml檔案,不能跨多個App,
撰寫語言:java
運行環境:使用adb連接PC運行,啟動測驗
測驗物件:主要用于白盒測驗和UI測驗
測驗限制:單個Activity測驗,需要與測驗相同應該的簽名
Espresso
Espresso是Google的開源自動化測驗框架,相對于Robotium和UIAutomator,它的特點是規模更小、更簡潔,API更加精確,撰寫測驗代碼簡單,容易快速上手,因為是基于Instrumentation的,所以不能跨App,
Selendroid
Selendroid是基于Instrumentation的測驗框架,可以測驗Native App、Hybird App、Web App,但是網上資料較少,社區活躍度也不大,
uiautomator2
uiautomator2 4是一個可以使用Python對Android設備進行UI自動化的庫,其底層基于Google uiautomator,Google提供的uiautomator庫可以獲取螢屏上任意一個APP的任意一個控制元件屬性,并對其進行任意操作,但有兩個缺點:1. 測驗腳本只能使用Java語言 2. 測驗腳本必須每次被上傳到設備上運行, 我們希望測驗能夠用一個更腳本化的語言,例如Python撰寫,同時可以每次所見即所得地修改測驗、運行測驗,


轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/571.html
標籤:其他
上一篇:Yii2原始碼分析(一):入口
下一篇:day12 面向物件(下)
