❶ 關於iphone自動化測試的,需要寫一個腳本,存成js格式,因為是在蘋果機上做測試,怎麼創建js腳本
前一段時間搞過1個來月的自動化測試,用的QTP工具,基於VB腳本語言的
找一個iphone手機的PC同步操作工具,在QTP上選擇同步工具的應用程序文件(.exe)
開始錄制後,每一次在PC上對iphone手機的操作都會記錄成腳本代碼,建議你去看看
QTP的基本使用指南,很好上手的。祝你好運
❷ Android 手機自動化測試工具有哪幾種
Feb 23 2012更新: 還有Sikuli (http://sikuli.org),基於優秀的圖像對比庫opencv的測試工具,測試腳本使用Python編寫,非常強大。如果你的app沒有源碼,可以選擇它;或者你想做系統測試(跨app的測試),也可以選擇它。其它的還是用下面說的那些個吧。
我通過其核心包sikuli-script.jar實現了android的sikuli化,暫時不打算開源。其實原理挺簡單的,認真看過sikuli源碼的應該都能寫出來。
看lz的意思應該只是想問應用層的,我來說點應用層的
先說說開源的吧:
Robotium
Monkeyrunner
Robolectric
CTS
還有個新興的測試工具,以前在GitHub看到,現在找不到了,好像是BDD類型的語法;現在還不成熟。
另外基於web的測試也有基於Selenium Webdriver 的 Android WebDriver:
有兩種:
基於Remote Server的:官方提供了java介面的,但是Python版的官方裡面卻沒有。我非常喜歡Python,所以自己實現了並且開源到了GitHub:https://github.com/truebit/AndroidWebDriver4Python 有問題大家可以提到上面
基於Instrumentation的:已經在Android SDK r14裡面可以安裝了
不開源的就多了,不過我見過的一般是以下幾種思路:
1. 基於Android Java Instrumentation框架:
基於Robotium,比如bitbar的產品:http://bitbar.com/procts
基於Instrumentation,那就海了去了,很多公司自家寫的工具都基於這個;另外Robotium就是基於這個的
2. 基於Android lib層的各種命令,比如sendevent,getevent, monkey, service這些,然後用各種語言封裝
MonkeyRunner還是很有前景的,Google自己弄的。現在最新的dev版本已經有支持UI的id操作的EasyMonkey了。可以git clone git://http://android.kernel.org/platform/sdk.git看看
編輯於 2012-02-23 7 條評論 • 作者保留權利
贊同23反對,不會顯示你的姓名
乙醇,打雜的......
落小雪、蔣金龍、Reeta L 等人贊同
appium是最近我關注的一個不錯的移動端自動化測試工具,支持android和ios。
放上兩段視頻。第一段是講解appium的原理及quick start;第二段講解了appium的源碼結構和具體實現。有興趣可以看一下,相信應該有收獲。
1,appium 原理與quick start
乙醇的appium視頻教程之appium入門及原理剖析
http://v.youku.com/v_show/id_XNjQzMjI4NDcy.html?firsttime=2212
2,appium源碼解析
乙醇的appium源碼解讀
http://v.youku.com/v_show/id_XNjQzODIwMzA4.html?firsttime=0
發布於 2013-12-07 5 條評論 • 作者保留權利
贊同25反對,不會顯示你的姓名
知乎用戶,Coding/Reading/Hiking/Running
知乎用戶、曹媛媛、石存灃 等人贊同
1、Monkey是Android SDK自帶的測試工具,在測試過程中會向系統發送偽隨機的用戶事件流,如按鍵輸入、觸摸屏輸入、手勢輸入等),實現對正在開發的應用程序進行壓力測試,也有日誌輸出。實際上該工具只能做程序做一些壓力測試,由於測試事件和數據都是隨機的,不能自定義,所以有很大的局限性。
2、MonkeyRunner也是Android SDK提供的測試工具。嚴格意義上來說MonkeyRunner其實是一個Api工具包,比Monkey強大,可以編寫測試腳本來自定義數據、事件。缺點是腳本用Python來寫,對測試人員來說要求較高,有比較大的學習成本。
3、Instrumentation是早期Google提供的Android自動化測試工具類,雖然在那時候JUnit也可以對Android進行測試,但是Instrumentation允許你對應用程序做更為復雜的測試,甚至是框架層面的。通過Instrumentation你可以模擬按鍵按下、抬起、屏幕點擊、滾動等事件。Instrumentation是通過將主程序和測試程序運行在同一個進程來實現這些功能,你可以把Instrumentation看成一個類似Activity或者Service並且不帶界面的組件,在程序運行期間監控你的主程序。缺點是對測試人員來說編寫代碼能力要求較高,需要對Android相關知識有一定了解,還需要配置AndroidManifest.xml文件,不能跨多個App。
4、UiAutomator也是Android提供的自動化測試框架,基本上支持所有的Android事件操作,對比Instrumentation它不需要測試人員了解代碼實現細節(可以用UiAutomatorviewer抓去App頁面上的控制項屬性而不看源碼)。基於Java,測試代碼結構簡單、編寫容易、學習成本,一次編譯,所有設備或模擬器都能運行測試,能跨App(比如:很多App有選擇相冊、打開相機拍照,這就是跨App測試)。缺點是只支持SDK 16(Android 4.1)及以上,不支持Hybird App、WebApp。
5、Espresso是Google的開源自動化測試框架。相對於Robotium和UIAutomator,它的特點是規模更小、更簡潔,API更加精確,編寫測試代碼簡單,容易快速上手。因為是基於Instrumentation的,所以不能跨App。配合Android Studio來編寫測試的簡單例子
6、Selendroid:也是基於Instrumentation的測試框架,可以測試Native App、Hybird App、Web App,但是網上資料較少,社區活躍度也不大。
7、Robotium也是基於Instrumentation的測試框架,目前國內外用的比較多,資料比較多,社區也比較活躍。缺點是對測試人員來說要有一定的Java基礎,了解Android基本組件,不能跨App。
8、Athrun是淘寶出的一個移動測試框架/平台,同時支持iOS和Android。Android部分也是基於Instrumentation,在Android原有的類基礎上進行了擴展,提供一整套面向對象的API。這里有詳細介紹。
9、Appium是最近比較熱門的框架,社區也很活躍。這個框架應該是是功能最強大的,
它的優點:
它的哲理是:
它的設計理念:
相關限制:
總結:
在iOS部分是封裝了UIAutomation;Android 4.2以上是用UiAutomator,Android 2.3 ~ 4.1用的是 Instrumentation,也就說Appium同時封裝了UiAutomator和Instrumentation。所以Appium擁有了以上幾大框架的所有優點:跨App,支持Native App、Hybird App、Web App,還支持N種語言來編寫你的測試腳本。
如果你在Windows使用Appium,你沒法使用預編譯專用於OS X的.app文件,因為Appium依賴OS X專用的庫來支持iOS測試,所以在Windows平台你不能測試iOS Apps。這意味著你只能通過在Mac上來運行iOS測試。
Client/Server架構,運行的時候Server端會監聽Client端發過來的命令,翻譯這些命令發送給移動設備或模擬器,然後移動設備或模擬器做出響應的反應。正是因為這種架構,所以Client可以使用Appium client libraries多種語言的測試腳本,而且Server端完全可以部署在伺服器上,甚至雲伺服器。
Session,每個Client連接到Server以後都會有一個Session ID,而且Client發送命令到Server端都需要這個Session ID,因為這個seesion id代表了你所打開的瀏覽器或者是移動設備的模擬器。所以你甚至可以打開N個Session,同時測試不同的設備或模擬器。
Desired Capabilities,其實就是一個鍵值對,設置一些測試的相關信息來告訴Server端,我們需要測試iOS、還是Android,或者換是WebApp等信息。
Appium Server是Node.js寫的,所以可以直接用NPM來進行安裝。
Appium Clients,Mac OS和Win下提供GUI,不需要裝Node.js,方便測試人員操作。
用Appium自動化測試不需要重新編譯App;
支持很多語言來編寫測試腳本,Java、Javascript、PHP、Python、C#、Ruby等主流語言;
不需要為了自動化測試來重造輪子,因為擴展了WebDriver。(WebDriver是測試WebApps的一種簡單、快速的自動化測試框架,所以有Web自動化測試經驗的測試人員可以直接上手);
移動端自動化測試應該是開源的;
開源;
支持Native App、Hybird App、Web App;
支持Android、iOS、Firefox OS;
Server也是跨平台的,你可以使用Mac OS X、Windows或者Linux;
顯示全部
編輯於 2015-03-20 1 條評論 • 作者保留權利
贊同4反對,不會顯示你的姓名
知乎用戶,hello rabbit
郝思遠、man Nor、徐佳琦 等人贊同
當前有很大的趨勢是轉向移動應用平台,Android 是最廣泛使用的移動操作系統,2014 年大約占 80% 以上的市場。在開發 Android 應用的時候要進行測試,現在市場上有大量的測試工具。
本文提到的開源 Android 軟體測試工具包括:Android Test Kit, AndroidJUnit4, Appium, calabash-android, Monkey, MonkeyTalk, NativeDriver, Robolectric, RoboSpock, Robotium, UIAutomator, Selendroid。
Android Test Kit
Android Test Kit 是一組 Google 開源測試工具,用於 Android 平台,包含 Espresso API 可用於編寫簡潔可靠的 Android UI 測試。
OSChina URL: Android Test Kit首頁、文檔和下載
相關資源
* Android application testing with the Android test framework – Tutorial
* Espresso for Android is here!
AndroidJUnit4
AndroidJUnit4 是一個讓 JUnit 4 可以直接運行在 Android 設備上的開源命令行工具。
OSChina URL: AndroidJUnit4首頁、文檔和下載
Appium
Appium 是一個開源、跨平台的自動化測試工具,用於測試原生和輕量移動應用,支持 iOS, Android 和 FirefoxOS 平台。Appium 驅動蘋果的 UIAutomation 庫和 Android 的 UiAutomator 框架,使用 Selenium 的 WebDriver JSON 協議。
Appinm 的 iOS 支持是基於 Dan Cuellar's 的 iOS Auto. Appium 同時綁定了 Selendroid 用於老的 Android 平台測試。
OSChina URL: Appium首頁、文檔和下載
相關資源
* Appium Tutorial
* Android UI testing with Appium
Calabash-android
calabash-android 是一個基於 Cucumber 的 Android 的功能自動化測試框架。Calabash 允許你寫和執行,是開源的自動化移動應用測試工具,支持 Android 和 iOS 原生應用。Calabash 的庫允許原生和混合應用的交互測試,交互包括大量的終端用戶活動。Calabash 可以媲美 Selenium WebDriver。但是, 需要注意的是 web 應用和桌面環境的交互跟觸摸屏應用的交互是不同的。Calabash 專為觸摸屏設備的原生應用提供 APIs。
OSChina URL: calabash-android首頁、文檔和下載
相關資源
* A better way to test Android applications using Calabash
* Calabash Android: query language basics
Monkey
Monkey 是 Google 開發的 UI/應用測試工具,也是命令行工具,主要針對壓力測試。你可以在任意的模擬器示例或者設備上運行。Monkey 發送一個用戶事件的 pseudo-random 流給系統,作為你開發應用的壓力測試。
OSChina URL: UI/Application Exerciser Monkey
MonkeyTalk
MonkeyTalk 是世界上最強大的移動應用測試工具。MonkeyTalk 自動為 iOS 和 Android 應用進行真實的,功能性交互測試。MonkeyTalk 提供簡單的 "smoke tests",復雜數據驅動的測試套件。
MonkeyTalk 支持原生,移動和混合應用,真實設備或者模擬器。MonkeyTalk 使得場景捕獲非常容易,可以記錄高級別,可讀的測試腳本。同樣的命令可以用在 iOS 和 Android 應用上。你可以記錄一個平台的一個測試,並且可以在另外一個平台回放。MonkeyTalk 支持移動觸摸和基於手勢交互為主的移動體驗。點擊,拖拽,移動,甚至是手指繪制也可以被記錄和回放。
OSChina URL: MonkeyTalk首頁、文檔和下載
相關資源
* Using MonkeyTalk in AndroidStudio
NativeDriver
NativeDriver 是 WebDriver API 的實現,是原生應用 UI 驅動,而不是 web 應用。
OSChina URL: NativeDriver首頁、文檔和下載
Robolectric
Robolectric 是一款Android單元測試框架,使用 Android SDK jar,所以你可以使用測試驅動開發 Android 應用。測試只需幾秒就可以在工作站的 JVM 運行。Robolectric 處理視圖縮放,資源載入和大量 Android 設備原生的 C 代碼實現。
Robolectric 允許你做大部分真實設備上可以做的事情,可以在工作站中運行,也可以在常規的 JVM 持續集成環境運行,不需要通過模擬器。
OSChina URL: Robolectric首頁、文檔和下載
Additional resources
* Better Android Testing with Robolectric 2.0
Using Robolectric for Android testing – Tutorial
RoboSpock
RoboSpock 是一個開源的 Android 測試框架。提供簡單的編寫 BDD 行為驅動開發規范的方法,使用Groovy 語音,支持 Google Guice 庫。RoboSpock 合並了 Robolectric 和 Spock 的功能。
OSChina URL: RoboSpock首頁、文檔和下載
相關資源
* RoboSpock – Behavior Driven Development (BDD) for Android
Robotium
Robotium 是一款國外的Android自動化測試框架,主要針對Android平台的應用進行黑盒自動化測試,它提供了模擬各種手勢操作(點擊、長 按、滑動等)、查找和斷言機制的API,能夠對各種控制項進行操作。
Robotium結合Android官方提供的測試框架達到對應用程序進行自動化的測 試。另外,Robotium 4.0版本已經支持對WebView的操作。Robotium 對Activity,Dialog,Toast,Menu 都是支持的。
OSChina URL: Robotium首頁、文檔和下載
相關資源
* Robotium – Testing Android User Interface
* Android user interface testing with Robotium – Tutorial
UIAutomator
uiautomator 測試框架提高用戶界面(UI)的測試效率,通過自動創建功能 UI 測試示例,可以在一個或者多個設備上運行你的應用。
OSChina URL: uiautomator首頁、文檔和下載
相關資源
* Automatic Android Testing with UiAutomator
Selendroid
Selendroid 是一個 Android 原生應用的 UI 自動化測試框架。測試使用 Selenium 2 客戶端 API 編寫。Selendroid 可以在模擬器和實際設備上使用,也可以集成網格節點作為縮放和並行測試。
OSChina URL: Selendroid首頁、文檔和下載
相關資源
* Mobile Test Automation with Selendroid
* Road to setup Selendroid and create first test script of android application
* Up and running with: Selendroid
一些停止維護的 Android 測試工具
一些幾乎沒有繼續維護的開源 Android 測試工具項目(至少是最近幾個月都沒有更新的項目)。
Emmagee
Emmagee 是監控指定被測應用在使用過程中佔用機器的CPU、內存、流量資源的性能測試小工具。Emmagee 同時還提供非常酷的一些特性,比如定製間隔來收集數據,使用浮動窗口呈現實時進程狀態等。
OSChina URL: Emmagee首頁、文檔和下載
Sirocco
Scirocco(scirocco-webdriver) 是開源的應用自動化測試工具,可以從 Eclipse 訪問必要的測試設備。Scirocco 提供自動化的 Android 應用測試功能,代替手工測試。Scirocco 支持谷歌的 NativeDriver,把 AndroidDriver 作為主要的測試庫。Scirocco 包括三個部分:NativeDriver,AndroidDriver,scirocco 插件(一個 Eclipse 插件;可以自動執行 scenario 測試和製作測試報告截圖)。
OSChina URL: Scirocco首頁、文檔和下載
via softwaretestingmagazine
內容來源:開源中國社區顯示全部
發布於 2015-03-27 添加評論 • 作者保留權利
贊同11反對,不會顯示你的姓名
知乎用戶,擁抱移動互聯網
❸ Monkey自動化測試腳本以及電量記錄腳本
Monkey自動化測試過程中發現monkey進程重啟,因此加入檢測monkey進程重啟腳本。
#!/system/bin/sh while true do echo "checking monkey..." monkeyPID=$(pgrep com.android.commands.monkey) echo $monkeyPID if [ -z "$monkeyPID"] ; then echo "monkey is died, reboot monkey..." monkey --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --kill-process-after-error --pkg-whitelist-file /data/local/tmp/monkey-whitelist.dat --throttle 250 -v -v -v 99999999 > sdcard/monkey_log/monkey.log & else echo "monkey exist, continue..." fi sleep 30 done
另外加入monkey測試過程中記錄電量變化的腳本
#!/system/bin/shfile_date=$(date +'%Y%m%d-%H%M')chmod 777 /sdcardmkdir /sdcard/Atestlogmkdir /sdcard/Atestlog/bqmkdir /sdcard/Atestlog/logchmod 777 /sdcard/Atestlogchmod 777 /sdcard/Atestlog/bqchmod 777 /sdcard/Atestlog/logecho 'file qpnp-bms.c +p' > /sys/kernel/debug/dynamic_debug/controlcat /proc/kmsg > /sdcard/Atestlog/log/kmsg_$file_date.txt &logcat -v time > /sdcard/Atestlog/log/logcat_$file_date.txt 把當前的時間和電量值寫入文件record(){echo $(date +'%Y/%m/%d\t%H:%M:%S\t')$(cat /sys/class/power_supply/bq27542/voltage_now)'\t'$(cat /sys/class/power_supply/bq27542/current_now)'\t'$(cat /sys/class/power_supply/bq27542/temp)'\t'$(cat /sys/class/power_supply/bq27542/capacity)%'\t' "
" >> /sdcard/Atestlog/bq/bq_$file_date.txt}#無限循環執行寫電量值操作,每次循環間隔count=0while truedo record $count sleep 5 let count=$count+1done
❹ 初學Python,想做手機自動化測試腳本,想了解幾個問題
1、手機自動化測試Python能獨立完成嗎?可以。
2、想要學的話,看哪本教程會好些?首先學習自動化測試,然後學習python,然後結合實例學習。可以參考http://wenku..com/view/fd8b690b581b6bd97f19ea61.html
3、主要要學習的模塊內容或者方向是哪些?
Python的世界有一個開源框架Splinter,可以非常棒的模擬瀏覽器的行為(從某種意義上也可以說是人的訪問點擊行為)。Splinter提供了豐富的API,可以獲取頁面的信息,以判斷當前的行為所產生的結果
4、還有懂這行補充給我的,我另加分。。多項
多學習測試的各方面知識,python只是工具。測試的理論知識很重要。
❺ 手機APP自動化測試怎麼搞
1、IOS的話用instruments,這個工具是mac系統自帶的,語言為js腳本語言。
2、android目前做功能自動化的話主要是還是uiautomator,不過要求android版本17以上;
3、框架的話可以學習下淘寶的自動化測試框架;
4、建議先學習自動化測試的原理,然後弄明白為什麼要做自動化測試、它能做什麼、誰來使用它、目標是什麼以及它能帶來什麼價值;
5、關於android版本的問題,之前有講到需要17以上的版本,沒有什麼公司會一個版本一個app的,一般都是做兼容,樓主應該更多的關注抽取什麼樣的測試用例去實現自動化、框架如何設計以及如何解決軟體版本更新帶來的維護問題。
❻ 安卓手機自動化測試工具是什麼
一、首先說說手機自動化測試的原理
1、手機自動化測試的原理為PC上一個控制端(測試工具)與手機上的一個agent端,通過串口、USB或者無線方式將PC與手機終端相連,然後應用測試工具向手機發送請求或者命令,手機收到命令或者請求後,交給agent端解析,然後agent將這些解析的命令下發給手機的各個功能模塊所能識別的命令,調用那些功能模塊模擬操作。完成這些操作後,手機會返回一些信息,agent可以抓取這些信息,然後傳回給PC端,這樣就完成了一個完整的手機自動化測試。
2、關鍵點在於agent,有的公司是向自己的手機終端的軟體功能模塊中植入測試程序響應代碼,有的公司可以利用MMI_Command的方式來控制手機終端;原理就是給手機提供一個響應的介面。
3、而對於PC控制端,這個測試腳本用各種編程語言都可以,看如何定義
4、而又的自動化測試設計成錄制的機制,說通俗點,就是記錄手工操作的鍵盤信息或者LCD的操作信息(LCD需要用到智能識別機制)
5、自動化測試框架的搭建方法是通用的,你需要有一套自己的測試框架才能保證自動化測試的順利開展。
二、Android自動化測試方向:
1、CTS,CTS 測試基於Android instrumentation 測試, 其又基於JUnit 測試。說白了, CTS 就是一堆單元測試用例。這也是Java 語言的擅長部分。
2、 Monkey工具,Monkey是Android中的一個命令行工具,可以運行在模擬器里或實際設備中。它向系統發送偽隨機的用戶事件流(如按鍵輸入、觸摸屏輸入、手勢輸入等),實現對正在開發的應用程序進行壓力測試。Monkey測試是一種為了測試軟體的穩定性、健壯性的快速有效的方法。
3、ASE,ASE 意思為Android 腳本環境, 即我們可以通過腳本(比如Python)調用Android 的功能,從而定製一些測試。比如打電話,發簡訊,瀏覽網頁,等。我們可以擴充它的API(Java 部分), 並用python 腳本調用這些API, 從而實現豐富的測試功能。用於API 部分可以訪問到Android 全部API, python 又能靈活部署測試,所以ASE 的擴展性非常好。
4、Robotium,該工具用於黑盒的自動化測試。可以在有源碼或者只有APK 的情況下對目標應用
進行測試。Robotimu 提供了模仿用戶操作行為的API,比如在某個控制項上點擊,輸入Text
等等。(推舉你可以研究一下這個工具,開源的,我有資料)
5、可以自己開發一個手機方面的自動化測試工具,原理上一樣
❼ testcomplete可以做手機自動化測試嗎
testcomplete可以對手機進行自動化測試。TestComplete可以支持基於各種平台設備上的軟體自動化測試。
具體步驟:
一、點擊菜單"File" -> "New" -> "New Project...",或者使用快捷鍵"Shift + Ctrl + N"來創建一個自動化測試項目工程,彈出對話框中輸入工程名字和存放位置,點擊下一步。
❽ 安卓手機如何脫離 USB 執行 Bat 測試腳本
電腦上安裝安卓模擬器吧!
使用模擬器來測試您的bat腳本,不過腳本代碼要相應的做修改。
❾ 安卓應用如何實現自動化測試,如何不用上傳特定case或腳本進行測試
WeTest騰訊質量開放平台可以測試包括內存使用情況,CPU消耗,以及流量使用情況等實時的性能數據。可以試試用一下,操作簡單獲得的數據卻很專業。把App安裝在雲端手機上,邊操作,邊觀察性能數據的變化。測試結束後還可以查看報告和下載日誌。
可以看出,這個網站還能截圖、查看時間軸,了解CPU峰值位置的時間,當時的APP的場景截圖。這樣就可以知道CPU內存佔比,流量變化啥的,確實非常好用。
❿ 移動端手機 App 耗電量測試:Monkey 電量測試基本操作及 Android 性能優化
Monkey 測試簡介
存放路徑:Monkey程序是Android系統自帶的,由Java語言寫成,在Android文件系統中的存放路徑是: /system/framework/monkey.jar。
大致操作流程:通過名為「monkey」的Shell腳本去啟動Monkey.jar程序(shell腳本在Android文件系統中 的存放路徑是:/system/bin/monkey),在你指定的APP應用上模擬用戶點擊,滑動,輸入等操作以極快的速度來對設備程序進行壓力測試,檢測程序是否會發生異常,然後通過日誌進行排錯。
主要目的:測試app 是否會是否會Crash。
操作命令格式:adb shell monkey {+命令參數}
獲取Android包名方法:(注意:請開啟手機開發者模式,請開啟手機USB調試模式)
查看正在運行的程序的包名:adb shell mpsys activity activities | sed -En -e '/Running activities/,/Run #0/p' (例如:我清理手機後台之後,開啟了QQ,輸入命令之後,就會出現QQ的進程,框的地方就是qq的包名)
monkey常用操作命令簡介
-p 包名:指定應用程序。例如:adb shell monkey -p 包名 事件總數
-v:列印log級別,-v越多日誌信息越詳細,最多支持3個。例如:adb shell monkey -p 包名 -v -v -v 事件總數
-s:偽隨機數生成器的 seed 值,通俗的說就是個標記,後面跟數字,例如:執行adb shell monkey -s 1 -p 包名 事件總數,這個我標記了-s 1,命令操作完之後,我發現有日誌報錯,我想重新執行這個monkey操作,那你就可以繼續執行這個命令,排錯時常用。
-f:後接測試腳本名,例如:adb shell monkey -f 腳本名 事件總數
-throttle:翻譯減速的意思,後面接時間,單位為ms,,表示事件之間的固定延遲,如果不接該項,monkey將不會延遲,例如:adb shell monkey --throttle 500 -p 包名 事件總數
--pct-事件類別 11個事件百分比控制(有的是9種事件,沒有--pct-pinchzoom,--pct-rotation事件)由安卓SDK決定
11種事件,按順序羅列的
--pct-touch {+百分比}:0
翻譯觸摸,觸摸事件泛指發生在某一位置的一個down-up事件,點擊
--pct-motion {+百分比}:1
翻譯動作,動作事件泛指從某一位置接下(即down事件)後經過一系列偽隨機事件後彈出(即up事件)
--pct-pinchzoom {+百分比}:2
翻譯二指縮放,智能機上的放大縮小手勢操作事件
--pct-trackball {+百分比}: 3
翻譯軌跡,軌跡事件包括一系列的隨機移動,以及偶爾跟隨在移動後面的點擊事件
--pct-rotation {+百分比}:4
翻譯屏幕旋轉,橫屏豎屏事件
--pct-nav {+百分比}:5
翻譯基本導航,基本導航事件主要來自方向輸入設備的上、下、左、右事件
--pct-majornav {+百分比}:6
翻譯主要導航,主要導航事件通常指引發圖形界面的一些動作,如鍵盤中間按鍵、返回按鍵、菜單按鍵等
--pct-syskeys {+百分比}:7
翻譯系統按鍵,系統按鍵事件通常指僅供系統使用的保留按鍵,HOME鍵、BACK鍵、撥號鍵、掛斷鍵、音量鍵等
--pct-appswitch {+百分比}:8
翻譯應用啟動,應用啟動事件(activity launches)即打開應用,通過調用startActivity()方法最大限度地開啟該package下的所有應用
--pct-flip {+百分比}:9
翻譯翻轉,鍵盤輕彈百分比,如點擊輸入框,鍵盤彈起,點擊輸入框以外區域,鍵盤收回
--pct-anyevent {+百分比}:10
翻譯其他類型,其他類型事件指上文中未涉及的所有其他事件,keypress、不常用的button等
百分比控制以及使用
首先注意一點,這個Event percentages在不同版本的SDK版本中順序可能會不一樣。
如果在monkey參數中不指定事件參數,這些動作都是隨機分配的,11個動作其分配的百分比之和為100%,通過添加命令選項來控制每個事件的百分比。
添加事件百分比之後的情況,舉例添加--pct-touch事件百分比為100:
命令: adb shell monkey -v -p 包名 --pct-touch 100 100
結果:
說明:尷尬啊,我這個vent percentages竟然有12種,多了一種什麼我也不知道,但我敢肯定這跟SDK版本有關系,想知道的同學可以自己從安卓SDK中反編譯出monkey源碼,通過查看源碼中的MonkeySourceRandom.java文件獲知!查出來的同學可以告知我下。
說明:尷尬啊,我這個vent percentages竟然有12種,多了一種什麼我也不知道,但我敢肯定這跟SDK版本有關系,想知道的同學可以自己從安卓SDK中反編譯出monkey源碼,通過查看源碼中的MonkeySourceRandom.java文件獲知!查出來的同學可以告知我下,我想做伸手黨
-ignore-crashes:翻譯忽略崩潰,當應用程序崩潰或發生失控異常時,monkey將繼續運行直到計數完成。如果不設置此項,monkey遇到上述崩潰或異常將停止運行。
-ignore-timeouts:翻譯忽略超時,當應用程序發生任何超時錯誤(如ANR,即Application Not Responding)時,monkey將繼續運行直到計數完成。如果不設置此項,monkey 遇到此類超時將停止運行。
monkey測試中,如何終止運行:
方法一:
新建一個窗口
執行: adb shell ,
再執行ps | grep monkey,返回來的第一個數字,即是monkey的進程號
然後kill pid 進程號。如圖
對手機進行重啟
新建一個窗口
執行adb reboot
log日誌導出
保存到電腦上。
執行:adb shell monkey -p 包名 -v 1000 > /Users/weixiangyang/Desktop/monkey.txt
例如:保存到電腦上標准流與錯誤流分開保存,分別命名為info.txt,error.txt
info.txt:此文件在手機上的SDCARD中,主要記錄了MONKEY測試時發送的各種事件,如觸摸事件的位置等等。
error.txt:此文件在手機上的SDCARD中,主要記錄了MONKEY測試時產生的一些ANR、強制關閉等異常。 執行:adb shell monkey -p 包名 -v 1000 1>/Users/weixiangyang/Desktop/info.txt 2>/Users/weixiangyang/Desktop/error.txt
例如:保存到電腦上並命名為monkey.txt
保存到手機上。注意:手機要root
例如:保存到手機上並命名為monkey.txt
執行:
adb shell說明:進入adb shell後就相當於進入linux的root下面,但是沒有許可權在裡面創建文件,所以手機要root
monkey -p 包名 -v 1000 > /mnt/sdcard/monkey.txt
注意:我的 adb shell 跟monkey XXX是分開執行的,分兩行!!!
例如:保存到電腦上標准流與錯誤流分開保存,分別命名為info.txt,error.txt
執行:adb shell monkey -p 包名 -v 1000 1>/mnt/sdcard/info.txt 2>/mnt/sdcard/error.txt