日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

几款Android 应用自动化测试工具

發布時間:2023/12/10 Android 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 几款Android 应用自动化测试工具 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡述:

本文介紹幾款流行的 Android應用自動化測試工具。

Monkey測試:隨機測試,壓力測試,運行在模擬器或實際設備中。

MonkeyRunner測試:操作簡單,可錄制測試腳本,可視化操作,主要生成坐標的自動化操作,移植性不強

Robotium?測試

Ronaorex?測試

Appium 測試

UI Automator 測試

TestBird測試



1、Monkey 測試


Monkey 即猴子,Monkey 測試,就像一只猴子,在電腦面前,亂敲鍵盤在測試。

Monkey 測試主要用于Android 應用程序壓力測試的小工具,主要目的就是為了測試app是否會Crash。

Monkey 測試原理:Monkey 是 Android 中的一個命令行工具,可以運行在模擬器里或實際設備中。它向系統發送偽隨機的用戶事件流(如按鍵輸入、觸摸屏輸入、手勢輸入等),實現對正在開發的應用程序進行壓力測試。通常也稱隨機測試或者穩定性測試。Monkey 測試是一種為了測試軟件的穩定性、健壯性的快速有效的方法。


1 > Monkey 特征

A. 測試的對象僅為應用程序包,有一定的局限性。

B. Monky 測試使用的事件流數據流是隨機的,不能進行自定義。

C. 可對 MonkeyTest的對象,事件數量,類型,頻率等進行設置。

D.Monkey 雖可根據一個指定的命令腳本發送按鍵消息,但其不支持條件判斷,也不支持讀取待測界面的信息來執行驗證操作。

E.Monkey 運行在設備或模擬器上面,可以脫離PC運行,驗證待測應用在這些隨機性輸入面前是否會閃退或者崩潰。


2 > Monkey 程序介紹

① Monkey 程序由 Android 系統自帶,使用Java語言寫成,在Android文件系統中的存放路徑是: /system/framework/monkey.jar;? ?
② Monkey.jar 程序是由一個名為“ monkey ”的Shell腳本來啟動執行,shell腳本在Android文件系統中 的存放路徑是:/system/bin/monkey; ?
③ Monkey 命令啟動方式:???

a. 可以通過 PC 機 CMD 窗口中執行: ?adb shell monkey {+命令參數}來進行Monkey測試 ? ? ? ? ?

b. 在PC上 adb shell進入Android系統,通過執行monkey {+命令參數}來進行Monkey 測試 ? ? ? ? ?

c. 在Android機或者模擬器上直接執行monkey命令,可以在Android機上安裝Android終端模擬器 ?

④ 對特定APP包進行測試的命令為 adb shell monkey -p <pakage.name>


3 > 實例

① 測試前提條件

a. 將手機恢復出廠設置

b. 恢復出廠設置后,進入設置-->關于手機-->高級設置-->勾選‘保持喚醒狀態

c. 在設置->安全中設置解鎖圖案以及PIN碼

d. 連接 adb tool

e. 手機開啟后臺log(*#*#3646633#*#*),開啟main log,, mobile log和net log

② 測試步驟

a. 使用USB線連接手機和電腦

b. 在電腦中輸入Monkey命令:

adb shell monkey -p <package.name> --throttle 380 -v -s 3500 300000 >C:\monkey_log.txt

c. 在Monkey結束以后查看它停留的界面并且做一些簡單的測試,如撥打電話,發送信息等


③ 測試結果

Monkey的測試結果可以通過monkey_log.txt?查看,如果測試結果正常,在log最后一行會有monkey finished顯示并且手機運行正常。如果應用程序產生了應用程序不響應ANR(application notresponding)的錯誤,Monkey將會停止并報錯,如果應用程序崩潰Crash或接收到任何失控異常,Monkey也會停止并報錯。

a. 在運行Monkey命令時,遇到Crash或者ANR,就會自動終止。程序無響應的問題:在日志中搜索 “ANR”

b.崩潰問題:在日志中搜索“Exception”?? (如果出現空指針,NullPointerException)??肯定是有bug
例如在log最后一行顯示crashed at event ####of 300000 using seed 3500 。

c.最后搜索“error

一般我們執行Monkey時,在3萬次以內發生Crash的話就認為Monkey是有問題的,要提交PR。


④ 提交 Monkey 的PR

在執行Monkey命令時發生Crash或者ANR時需要提交PR,具體提交MonkeyPR的規則如下:

a. 標題:在PR標題中加上[Monkey] 內容:主要要包含自己執行的命令以及在多少次發生crash

b. 內容:主要要包含自己執行的命令以及在多少次發生crash

c .其它:在PR上要附上相關的Monkey log還有手機后臺開啟的log,如果有相關的強制關閉的圖片也可以貼上。


4 > Monkey 參數

Monkey命令:adb shell monkey? -p <package.name>?--throttle 380 -v -s 3500300000 > C:\monkey_log.txt,這個monkey命令,當monkey test過程中遇到Crash或者ANR,就會自動終止。

C:\monkey_log.txt指將Monkey 的log存在PC端的C盤根目錄下。




常規類參數

1、 -help

作用:列出簡單的用法

例:adb shell monkey -help ? 也可不寫help

2、-v

作用:命令行上的每一個-v都將增加反饋信息的詳細級別。
Level0(默認),除了啟動、測試完成和最終結果外只提供較少的信息。

adb shell monkey -p com.shjt.map -v 100

Level1,提供了較為詳細的測試信息,如逐個發送到 Activity 的事件信息。

adb shell monkey -p com.shjt.map -v -v 100

Level2,提供了更多的設置信息,如測試中選中或未選中的 Activity 信息。

adb shell monkey -p com.shjt.map -v -v -v 100

比較常用的是-v -v -v,即最多詳細信息,一般會保存到指定文件中供開發人員查找bug原因時使用。

例:adb shell monkey -v 10

?

事件類參數

1、-s <seed>

作用:偽隨機數生成器的seed值。如果用相同的seed值再次運行monkey,將生成相同的事件序列。

例:adb shell monkey -s?1483082208904 -v 10

?

2、--throttle <milliseconds>

作用:在事件之間插入固定的時間(毫秒)延遲,你可以使用這個設置來減緩Monkey的運行速度,如果你不指定這個參數,則事件之間將沒有延遲,事件將以最快的速度生成。

注:常用參數,一般設置為300毫秒,原因是實際用戶操作的最快300毫秒左右一個動作事件,所以此處一般設置為300毫秒。

例:adb shell monkey --throttle 300 -v 10

?

3、--pct-touch <percent>

作用:調整觸摸事件的百分比。(觸摸事件是指在屏幕中的一個down-up事件,即在屏幕某處按下并抬起的操作)

注:常用參數,此參數設置要適應當前被測應用程序的操作,比如一個應用80%的操作都是觸摸,那就可以將此參數的百分比設置成相應較高的百分比。

例:adb shell monkey --pct-touch 100 -v 10

?

4、--pct-motion <percent>

作用:調整motion事件百分比。(motion事件是由屏幕上某處一個down事件、一系列偽隨機的移動事件和一個up事件組成)
注:常用參數,需注意的是移動事件是直線滑動
例:adb shell monkey --pct-motion 100 -v 10

?

5、--pct-trackball<percent>
作用:調整滾動球事件百分比。(滾動球事件由一個或多個隨機的移動事件組成,有時會伴隨著點擊事件)
注:不常使用參數,現在手機幾乎沒有滾動球,但滾動球事件中包含曲線滑動事件,在被測程序需要曲線滑動時可以選用此參數。
例:adb shell monkey --pct-trackball 100 -v 10

6、--pct-nav<percent>
作用:調整基本的導航事件百分比。(導航事件由方向輸入設備的上下左右按鍵所觸發的事件組成)
注:不常用操作。
例:adb shell monkey --pct-nav 100 -v 10

7、--pct-majornav<percent>
作用:調整主要導航事件的百分比。(這些導航事件通常會導致UI界面中的動作事件,如5-way鍵盤的中間鍵,回退按鍵、菜單按鍵)
注:不常用操作。
例:adb shell monkey --pct-majornav 100 -v 10

8、--pct-syskeys<percent>
作用:調整系統事件百分比。(這些按鍵通常由系統保留使用,如Home、Back、Start Call、EndCall、音量調節)
注:不常用。
例:adb shell monkey --pct-syskeys 100 -v 10

9、--pct-appswitch<percent>
作用:調整Activity啟動的百分比。(在隨機的時間間隔中,Monkey將執行一個startActivity()調用,作為最大程度覆蓋被測包中全部Activity的一種方法)
注:不常用。
例:adb shell monkey --pct-appswitch 100 -v 5

10、--pct-anyevent
作用:調整其他事件的百分比。(這包含所有其他事件,如按鍵、其他在設備上不常用的按鈕等)
注:不常用。
例:adb shell monkey --pct-anyevent 100 -v 5


約束類參數

1、-p<allowed-package-name>
作用:如果你指定一個或多個包,Monkey將只允許訪問這些包中的Activity。如果你的應用程序需要訪問這些包(如選擇聯系人)以外的Activity,你需要指定這些包。如果你不指定任何包,Monkey將允許系統啟動所有包的Activity。指定多個包,使用多個-p,一個-p后面接一個包名
注:常用參數。
例:adb shell monkey -p com.Android.browser -v 10

2、-c<main-category>
作用:如果你指定一個或多個類別,Monkey將只允許系統啟動這些指定類別中列出的Activity。如果你不指定任何類別,Monkey將選擇謝列類別中列出的Activity,Intent.CATEGORY_LAUNCHER和Intent.CATEGORY_MONKEY。指定多個類別使用多個-c,每個-c指定一個類別。
注:不常用。

3、--dbg-no-events
作用:設置此選項,Monkey將執行初始啟動,進入一個測試Activity,并不會在進一步生成事件。為了得到最佳結果,結合參數-v,一個或多個包的約束,以及一個保持Monkey運行30秒或更長時間的非零值,從而提供了一個可以監視應用程序所調用的包之間轉換的環境。
注:不常用。

4、--hprof
作用:設置此選項,將在Monkey生成事件序列前后生成profilling報告。在data/misc路徑下生成大文件(~5Mb),所以要小心使用。
注:不常用。

5、--ignore-crashes
作用:通常,應用發生崩潰或異常時Monkey會停止運行。如果設置此項,Monkey將繼續發送事件給系統,直到事件計數完成。
注:常用。

6、--ignore-timeouts
作用:通常,應用程序發生任何超時錯誤(如“Application Not responding”對話框)Monkey將停止運行,設置此項,Monkey將繼續發送事件給系統,直到事件計數完成。
注:常用。

7、--ignore-security-exception?
作用:通常,當程序發生許可錯誤(例如啟動一些需要許可的Activity)導致的異常時,Monkey將停止運行。設置此項,Monkey將繼續發送事件給系統,直到事件計數完成。
注:常用。

8、--kill-process-after-error
作用:通常,當Monkey由于一個錯誤而停止時,出錯的應用程序將繼續處于運行狀態。設置此項,將會通知系統停止發生錯誤的進程。注意,正常(成功)的結束,并沒有停止啟動的進程,設備只是在結束事件之后簡單的保持在最后的狀態。

9、--monitor-native-crashes

作用:監視并報告Andorid系統中本地代碼的崩潰事件。如果設置--kill-process-after-error,系統將停止運行。

10、--wait-dbg

作用:停止執行中的Monkey,直到有調試器和它相連接。


樣例:

adb shell monkey -p com.android.settings --throttle 380 -v -v -v -s 3500 300000 > E:\Test\monkey_log.txt


測試結果:

測試完成后均正確時會顯示Monkey finished

Events injected: 300 :Sending rotation degree=0, persist=false :Dropped: keys=0 pointers=2 trackballs=0 flips=0 rotations=0 ## Network stats: elapsed time=42700ms (0ms mobile, 0ms wifi, 42700ms not connected) // Monkey finished
有bug時,會出現error

** Monkey aborted due to error. Events injected: 8530 :Sending rotation degree=0, persist=false :Dropped: keys=5 pointers=8 trackballs=0 flips=0 rotations=0 ## Network stats: elapsed time=1016690ms (0ms mobile, 0ms wifi, 1016690ms not connected)


2、 MonkeyRunner 測試


MonkeyRunner工具是使用?Jython (使用Java編程語言實現的Python)寫出來的,它提供了多個API,通過MonkeyRunner API 可以寫一個Python的程序來模擬操作控制Android設備app,測試其穩定性并通過截屏可以方便地記錄出現的問題。

MonkeyRunnerMonkey沒有直接的關系。Monkey是在設備/模擬器直接運行adb shell命令生成用戶或系統偽隨機事件流來進行測試的。


MonkeyRunner則運行在PC上,需要通過服務器/客戶端的的模式向設備或者模擬器上的android應用發送指令來執行測試。它支持自己編寫插件,控制事件,隨時截圖,簡而言之,任何你在模擬器/設備中能干的事情,MonkeyRunner都能干,而且還可以記錄和回放。


1 > MonkeyRunner 特征

1MonkeyRunner工具在工作站上通過API定義的特定命令和事件控制設備或模擬器(可控)

2)精確控制事件之間的事件

3)可以進行:點觸屏、拖拽、長按、鍵盤事件

4)可以智能截圖對比和判斷

5)回溯出詳細具體的BUG路徑


2 ?> MonkeyRunner 優缺點

1) 能完全模擬人工所有操作

2) 有詳細的API文檔參考

3) 可以寫出智能圖像對比腳本

4) 支持?java?和?Python?兩種語言腳本

5) 腳本移植性差


3 > MonkeyRunner測試類型

1多設備控制

MonkeyRunnerAPI可以跨多個設備或模擬器實施測試套件。您可以在同一時間接上所有的設備或一次啟動全部模擬器(或統統一起),依據程序依次連接到每一個,然后運行一個或多個測試。您也可以用程序啟動一個配置好的模擬器,運行一個或多個測試,然后關閉模擬器。

2功能測試

MonkeyRunner可以為一個應用自動貫徹一次功能測試。您提供按鍵或觸摸事件的輸入數值,然后觀察輸出結果的截屏。

3回歸測試

MonkeyRunner可以運行某個應用,并將其結果截屏與既定已知正確的結果截屏相比較,以此測試應用的穩定性。

4可擴展的自動化

由于MonkeyRunner是一個API工具包,您可以基于Python模塊和程序開發一整套系統,以此來控制Android設備。除了使用MonkeyRunner API之外,您還可以使用標準的Python ossubprocess模塊來調用Android Debug Bridge這樣的Android工具。


4 >?MonkeyRunner 工具

MonkeyRunner API 主要包括三個模塊

1MonkeyRunner:

此類提供連接真機和模擬器方法waitForConnection(float timeout,stringdeviceid),還提供了創建用戶界面顯示信息的alert()方法。

2MonkeyDevice

代表一個設備或模擬器。此類提供了安裝和卸載程序包、開啟Activity、發送按鍵和點擊事件、運行測試包等方法

拖拉控件drag(tuple start,tuple end,floatduration,integer steps)? //duration手勢持續時間

按鍵press(string keycode,dictionary type) //keycode:KEYCODE_HOME,..?? type:DOWN ,UP,DOWN_AND_UP...

安裝應用 installPackage(pc端存放apk路徑)

啟動應用starActivity(package+'/'+activity)//一個參數

點擊touch(integer x,integer y, integer type)//type:DOWN,UP,DOWN_AND_UP...

輸入type(string message)

截屏takeSnapshot()

3MonkeyImage

這個類提供了捕捉屏幕的方法。

在測試過程中用來保存測試截圖,將位圖保存為各種格式,并可以比較兩個MonkeyImage對象,將image保存到文件等。

圖像對比sameAs(MonkeyImage other,float percent)//對比的相似度,結果boolean類型

圖像保存writetoFile(string path,string format)


5 > MonkeyRunner 環境搭建

Monkeyrunner的環境搭建,需要安裝以下工具:jdk、android sdkpython編譯器。

MonkeyRunner 環境搭建

Eclipse中MonkeyRunner環境搭建


6 >?MonkeyRunner 運行

運行有兩種方式

① 在CMD命令窗口直接運行monkeyrunner

②?使用Python編寫測試代碼文件,在CMD中執行monkeyrunner xxx.py運行

不論使用哪種方式,您都需要調用SDK目錄的tools子目錄下的monkeyrunner命令。


1模擬器啟動

在運行monkeyrunner之前必須先運行相應的模擬器或連接真機,否則monkeyrunner無法連接到設備

運行模擬器有兩種方法:1、通過eclipse中執行模擬器 2、在CMD中通過命令調用模擬器

這里介紹通過命令,在CMD中執行模擬器的方法

emulator -avd AVD_test

上面命令中 AVD_test 是指模擬器的名稱。


2交互對話環境

cmd 運行 monkeyrunner 交互命令“monkeyrunner” 或:

monkeyrunner -plugin


3)cmd 終端導入monkeyrunner所要使用的模塊

from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice, MonkeyImage


然后便可以開始利用monkeyrunner進行測試了。

3?模擬器連接

device=MonkeyRunner.waitForConnection(6,’emulator-5554′)


參數1:超時時間,單位秒,浮點數,默認是無限期地等待。
參數2:指定的設備名稱device_id,默認為當前設備(手機優先,其次為模擬器)


4?app 安裝

模擬器啟動成功后,安裝apk

?

device.installPackage('F:\\QQyinle_439.apk')

其中,參數為apk的相對路徑。成功返回true,且模擬器的IDLE界面可看到安裝apk 圖標

5app 啟動

device.startActivity(component="package名/.activity")


如何獲取一個app的package名和activity?

使用

#apk路徑中一定不能有空格 aapt dump badging F:\QQyinle_439.apk


aapt dump badging F:\QQyinle_439.apk > F:\log.txt
所以

device.startActivity(component=" com.tencent.qqmusic/.activity.AppStarterActivity ")
命令執行后,模擬器上的app被啟動。啟動成功后,便可以向模擬器發送如按鍵、滾動、截圖、存儲等操作了


6

問題:CMD運行提示monkeyrunner不是內部或外部命令,也不是可運行的程序或批處理文件。

解決:電腦環境變量未配置,將monkeyrunner所在目錄配在環境變量里。

變量名:Path

變量值:D:\android\android-sdk-windows\tools;D:\android\android-sdk-windows\platform-tools


7 > 樣例(Monkeyrunner運行python腳本)?

test.py

#-*-UTF-8-*- #如果導入的模塊起了別名,后面就必須使用別名 from com.android.monkeyrunner import MonkeyRunner as mr from com.android.monkeyrunner import MonkeyDevice as md from com.android.monkeyrunner import MonkeyImage as mi #連接設備或虛擬器。 #參數1,超時時間,單位秒,默認無限期等待;參數2,設備名稱,默認當前設備 device=mr.waitForConnection(2,'192.168.56.101:5555') #向設備或模擬器安裝apk,以下兩種方式都是對的 device.installPackage('D:\\baiduliulanqi_186.apk') #device.installPackage('D:/baiduliulanqi_186.apk')#啟動APP device.startActivity('cmp=com.baidu.browser.apps/com.baidu.browser.framework.BdBrowserActivity') mr.sleep(3) #點擊搜索框 #指定位置發送觸摸事件 device.touch(100,100,'DOWN_AND_UP') mr.sleep(1) #輸入查詢詞 device.type('test') mr.sleep(1) #點擊回車鍵 #發送指定類型鍵碼的事件 device.press('KEYCODE_ENTER','DOWN_AND_UP') mr.sleep(2) #截圖 result=device.takeSnapshot() #保存到文件 result.writeToFile('./test.png','png') #清除搜索框 device.touch(100,100,'DOWN_AND_UP') mr.sleep(1) device.press('KEYCODE_DEL','DOWN_AND_UP') mr.sleep(2) #字符串發送到鍵盤 #device.type('字符串') device.type('Findyou')#喚醒設備屏幕 #鎖屏后,屏幕關閉,可以用下命令喚醒 device.wake()#重起手機 device.reboot()#模擬滑動 #device.drag(X,Y,D,S) #X 開始坐標 #Y 結束坐標 #D 拖動持續時間(以秒為單位),默認1.0秒 #S 插值點時要采取的步驟。默認值是10 device.drag((100,1053),(520,1053),0.1,10)

運行測試腳本test.py:monkeyrunner test.py
monkeyrunner 錄制和回放
錄制:monkey_recorder.py

from com.android.monkeyrunner import MonkeyRunner as mr from com.android.monkeyrunner.recorder import MonkeyRecorder as recorder device=mr.waitForConnection() recorder.start(device)

?cmd?命令行運行?monkeyrunner??monkey_record.py,會彈出一個MonkeyRecord窗口界面該窗口的功能:




A. 可以自動顯示手機當前的界面

B. 自動刷新手機的最新狀態

C. 點擊手機界面即可對手機進行操作,同時會反應到真機,而且會在右側插入操作腳本

D.?

wait: 用來插入下一次操作的時間間隔,點擊后即可設置時間,單位是秒

Press a Button:用來確定需要點擊的按鈕,包括menu、home、search,以及對按鈕的press、down、up屬性Type Something:用來輸入內容到輸入框

Fling:用來進行拖動操作,可以向上、下、左、右,以及操作的范圍

Export Actions:用來導出腳本,不需要后綴名,也可以添加后綴名.mr

Refresh Display:用來刷新手機界面,估計只有在斷開手機后,重新連接時才會用到

用錄制函數導出操作的腳本,通過monkey_playback.py函數回放之前的操作

回放:monkey_playback.py,

import sys from com.android.monkeyrunner import MonkeyRunner as mr CMD_MAP = { 'TOUCH':lambda dev,arg:dev.touch(**arg), 'DRAG': lambda dev,arg:dev.drag(**arg), 'TYPE': lambda dev,arg:dev.type(**arg), 'PRESS': lambda dev,arg:dev.press(**arg), 'WAIT': lambda dev,arg:mr.sleep(**arg) } def process_file(f,device): for line in f: (cmd,rest)=line.split('|') try: rest = eval(rest) except: print 'unable to parse options' continue if cmd not in CMD_MAP: print 'unknown command: ' + cmd continue CMD_MAP[cmd](device, rest) def main(): file = sys.argv[1] f = open(file,'r') device = mr.waitForConnection() process_file(f,device) f.close() if __name__ = '__main__' main()


8 > 其他

#卸載設備或模擬器中的APK ,參數為APK包名 device.removePackage('cn.richinfo.thinkdrive') print ('Uninstall Success!')


#發送指定類型指定鍵碼的事件 #device.press(參數1:鍵碼,參數2:觸摸事件類型) #參數1:見android.view.KeyEvent #參數2,如有TouchPressType()返回的類型-觸摸事件類型,有三種。 #1、DOWN 發送一個DOWN事件。指定DOWN事件類型發送到設備,對應的按一個鍵或觸摸屏幕上。 #2、UP 發送一個UP事件。指定UP事件類型發送到設備,對應釋放一個鍵或從屏幕上抬起。 #3、DOWN_AND_UP 發送一個DOWN事件,然后一個UP事件。對應于輸入鍵或點擊屏幕。 以上三種事件做為press()參數或touch()參數

#按下HOME鍵 device.press('KEYCODE_HOME',MonkeyDevice.DOWN_AND_UP) #按下BACK鍵 device.press('KEYCODE_BACK',MonkeyDevice.DOWN_AND_UP) #按下下導航鍵 device.press('KEYCODE_DPAD_DOWN',MonkeyDevice.DOWN_AND_UP) #按下上導航鍵 device.press('KEYCODE_DPAD_UP',MonkeyDevice.DOWN_AND_UP) #按下OK鍵 device.press('KEYCODE_DPAD_CENTER',MonkeyDevice.DOWN_AND_UP)
KeyCode:

home鍵 KEYCODE_HOME back鍵 KEYCODE_BACK send鍵 KEYCODE_CALL end鍵 KEYCODE_ENDCALL 上導航鍵 KEYCODE_DPAD_UP 下導航鍵 KEYCODE_DPAD_DOWN 左導航 KEYCODE_DPAD_LEFT 右導航鍵 KEYCODE_DPAD_RIGHT ok鍵 KEYCODE_DPAD_CENTER 上音量鍵 KEYCODE_VOLUME_UP 下音量鍵 KEYCODE_VOLUME_DOWN power鍵 KEYCODE_POWER camera鍵 KEYCODE_CAMERA menu鍵 KEYCODE_MENU

3、Robotium測試


Robotium?是一款常用的免費的 Android?自動化測試工具軟件,適用于為不同的安卓版本和子版本黑盒測試自動化。Robotium 測試是用java寫的。提供了模擬各種手勢操作(點擊、長按、滑動等)、查找和斷言機制的API,能夠對各種控件進行操作。Robotium?對 Activity,Dialog,Toast,Menu?都是支持的。軟件開發人員經常把它描述為Android Selenium。事實上,Robotium是一個單元測試庫。

為了自動化測試需要修改程序源代碼。該工具也不適合與系統軟件的交互,它不能鎖定和解鎖智能手機或平板電腦。Robotium 也沒有錄制回放功能,也不提供截圖。

詳情請參考:

Robotium自動化測試框架使用教程


4、Ronaorex測試


Ranrex 是一款不僅可以支持最新Android版本,也支持從Android2.2開始的早期版本和分支版本。

Ranorex的優勢是它有詳細的截屏報告。它能通過Wifi連接智能手機和平板電腦。?
一個自動化測試工程師通過這個Android工具可以不用XML數據格式來詳細編寫數據驅動的測試。Ranorex工作室使自動化測試工程師只要點擊鼠標就可容易地創建測試。它允許詳細聲明額外的程序模塊,來用于在后期開發周期中測試更復雜的場景。?

它是一個商業的移動應用工具,其許可價格為1990歐元。不過Ranorex搜索功能相當慢;它需要30秒來完成這樣的操作。我們必須為Ranorex配備apk文件設備,否則無法通過這個工具實現自動化測試,因為它只能在APK文件設備上工作。


5、Appium測試


這是一個可以為iOS和Android做自動化測試的框架。它是一個開源工具。它支持從2.3及以后的安卓版本。Appium利用WebDriver接口運行測試。它支持多種編程語言,如java,C #,Ruby和其他在WebDriver庫中的語言。

它可以控制移動設備上的Safari和Chrome。這樣測試移動網站可使用Appium和這些瀏覽器。?
但一些自動化測試工程師抱怨說,它沒有詳細的報告。其弱點還有減少了在移動設備上XPath支持。
?


Appium環境搭建(Windows版)



6、UI Automator?測試


這款工具是谷歌發布的。它支持從4.1開始的安卓版本。UI Automator能夠與各種Android軟件產品交互,包括系統中的應用。這使UI Automator可以鎖定和解鎖智能手機或平板電腦。

通過這個工具創建的腳本可以在許多不同的安卓平臺上執行。它可以重現復雜的用戶操作動作。?
UI Automator也可以利用一個設備的外部按鍵,如回放鍵、音量調節鍵、開關鍵來控制。?
它可以集成測試框架TestNG。在這種情況下,UI Automator可以生成豐富和詳細的報告,類似于Ranorex生成報告。另外,這個工具搜索功能非常快。?

軟件測試專家發現UI Automator是一款適用于許多Android平臺的移動應用測試。它是一款最適合安卓應用測試的工具之一,因為它是由谷歌專門為這個操作系統發布的。?

通常約有80%的新軟件bug能在所有支持的平臺上重現。因此,一個可執行在廣泛使用的平臺上的移動測試工具是可以發現高達80%的缺陷。其余20%將會在其他平臺上被發現。這意味著,在大多數情況下,在更少的測試平臺上完整地做測試比在眾多平臺上匆忙測試更好。?


uiautomatorviewer :一個圖形界面工具來掃描和分析應用的UI控件。

uiautomator :一個測試的Java庫,包含了創建UI測試的各種API和執行自動化測試的引擎



參考:

http://blog.csdn.net/u010961631/article/details/9616581

https://www.jianshu.com/p/c900efe8c982

https://segmentfault.com/a/1190000004619487



7、TestBird 測試


TestBird自動回歸測試平臺為手游/APP開發者提供APP自動化回歸測試,簡單點擊自動生成圖片用例;多臺手機同時執行用例回歸;基線對比,找出問題;調整基線,維護測試用例;一鍵生成報告,全面提升測試效率和質量。

TestBird最初是從手游測試開始起步,在手游圈積累起很高的知名度,目前也在逐步向APP測試領域進軍,同時TestBird也加入了智能硬件的測試領域?;谌蚴讋摰膶ο笞R別技術,TestBird可以深入到移動App&游戲內部所有功能的深度解析能力。TestBird建立了云手機、云測試和云分析三大測試平臺,通過自助App功能測試、遠程真機調試、真機兼容性測試、真人體驗測試、 真人壓力測試和崩潰分析等,為移動應用提供從研發到上線再到運營的一站式質量管理服務。





總結

以上是生活随笔為你收集整理的几款Android 应用自动化测试工具的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。