android monkey自動(dòng)化測(cè)試改為java調(diào)用monkeyrunner Api
更新時(shí)間:2012年11月23日 17:03:15 作者:
一般情況下我們使用android中的monkeyrunner進(jìn)行自動(dòng)化測(cè)試時(shí),使用的是python語(yǔ)言來(lái)寫測(cè)試腳本。不過(guò),最近發(fā)現(xiàn)可以用java調(diào)用monkeyrunner Api,于是,就簡(jiǎn)單研究了一下。這里做一些總結(jié)。希望有對(duì)在研究的午飯可以有所用處
眾所周知,一般情況下我們使用android中的monkeyrunner進(jìn)行自動(dòng)化測(cè)試時(shí),使用的是python語(yǔ)言來(lái)寫測(cè)試腳本。不過(guò),最近發(fā)現(xiàn)可以用java調(diào)用monkeyrunner Api,用java語(yǔ)言寫測(cè)試腳本。
于是,就簡(jiǎn)單研究了一下。這里做一些總結(jié)。希望有對(duì)在研究的午飯可以有所用處。
開始時(shí),搜素到一些零碎的教程,說(shuō)使用java調(diào)用monkeyrunner時(shí),需要導(dǎo)入android sdk tools路徑下的lib里面的4個(gè)包:ddmlib.jar,guavalib.jar,monkeyrunner.jar,sdklib.jar.當(dāng)然,這里建的是java工程,往工程里面導(dǎo)包就是通過(guò):右鍵工程》properties》Java Build Path》Libraries》add External JARs》OK。如下圖:
導(dǎo)入之后,我簡(jiǎn)單創(chuàng)建了一個(gè)測(cè)試類,然后添加一個(gè)MonkeyDevice對(duì)象,然后引入需要的包,結(jié)果發(fā)現(xiàn)報(bào)了錯(cuò)誤,引用的資源找不到,根據(jù)看到的例子的提示說(shuō),需要手動(dòng)添加AdbBackend.java文件到自己的工程中去。于是,我就在搜了一下,在官網(wǎng)上下到了這個(gè)類(官網(wǎng)地址:http://www.java2s.com/Open-Source/Android/android-core/platform-sdk/com/android/monkeyrunner/adb/Catalogadb.htm)添加進(jìn)去,之后,MonkeyDevice問(wèn)題解決了,但是,下一個(gè)問(wèn)題出現(xiàn)了,AdbBackend的父類文件找不到,就是MonkeyRunnerBackend.java,然后我只好去搜這個(gè)文件,然后手動(dòng)添加到自己的工程中(地址是:http://www.java2s.com/Open-Source/Android/android-core/platform-sdk/com/android/monkeyrunner/MonkeyRunnerBackend.java.htm)。結(jié)果這就像一個(gè)無(wú)底洞了,總是找不到最終一個(gè)文件的父類:如圖:
折騰了一番,我就感覺不應(yīng)該是這樣的,不過(guò)搜索了很多零碎的資料,差不多都是跟這個(gè)方法一個(gè)意思。最后,我在一個(gè)論壇找到了一個(gè)勉強(qiáng)稱之為解決方法的答案。他重新給了我四個(gè)包,說(shuō)是我導(dǎo)入的這四個(gè)包版本太新了(我的更新到android4.1)。我添加進(jìn)去之后,果然能用。
這里簡(jiǎn)單貼一下我的代碼,說(shuō)一下調(diào)用問(wèn)題:
復(fù)制代碼 代碼如下:
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import com.android.monkeyrunner.adb.AdbBackend;
import com.android.monkeyrunner.core.IMonkeyDevice;
import com.android.monkeyrunner.core.TouchPressType;
public class MyTest2 {
private static IMonkeyDevice device;
private static AdbBackend adb;
public static void main(String[] args) {
// TODO Auto-generated method stub
if (adb==null){
adb = new AdbBackend();
// 參數(shù)分別為自己定義的等待連接時(shí)間和設(shè)備id
device = adb.waitForConnection(8000,"MSM8225QRD5");
}
//添加啟動(dòng)權(quán)限
String action = "android.intent.action.MAIN";
Collection<String> categories = new ArrayList<String>();
categories.add("android.intent.category.LAUNCHER");
// 啟動(dòng)要測(cè)試的主界面,主要是配置自己的包和啟動(dòng)類
device.startActivity(null, action, null, null, categories,
new HashMap<String, Object>(),"cn.com.fetion/.android.ui.activities.StartActivity", 0);
// 點(diǎn)擊某一個(gè)坐標(biāo)
device.touch(202,258,TouchPressType.DOWN_AND_UP);
}
}
運(yùn)行java application就可以連上你的測(cè)試設(shè)備。其他的一些需要用到的測(cè)試方法,比如monkeyrunner中的touch,drag,type,等等,都是monkeyrunner中的方法,你也可以簡(jiǎn)單的封裝一下就可以使用。跟使用python時(shí),沒(méi)多少區(qū)別。
說(shuō)到為什么要使用java語(yǔ)言調(diào)用monkeyrunner來(lái)寫腳本,我因?yàn)榱?xí)慣了用python寫,暫時(shí)沒(méi)體會(huì)到有啥太大的優(yōu)勢(shì),也許是工程量大時(shí),用java更直接和便于管理,也許就是個(gè)人愛好了。這個(gè)有待以后體驗(yàn)。
您可能感興趣的文章:
- Android App開發(fā)的自動(dòng)化測(cè)試框架UI Automator使用教程
- 實(shí)現(xiàn)android自動(dòng)化測(cè)試部署與運(yùn)行Shell腳本分享
- 實(shí)現(xiàn)android應(yīng)用程序自動(dòng)化測(cè)試的批處理腳本
- Android 自動(dòng)化測(cè)試經(jīng)驗(yàn)分享 深入U(xiǎn)iScrollable
- Android實(shí)現(xiàn)彈窗進(jìn)度條效果
- Android開發(fā)實(shí)現(xiàn)仿京東商品搜索選項(xiàng)卡彈窗功能
- Android自動(dòng)化測(cè)試處理各種彈窗的操作方法
相關(guān)文章
Android使用socket進(jìn)行二進(jìn)制流數(shù)據(jù)傳輸
這篇文章主要介紹了Android使用socket進(jìn)行二進(jìn)制流數(shù)據(jù)傳輸,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2023-04-04Retrofit2.0 實(shí)現(xiàn)圖文(參數(shù)+圖片)上傳方法總結(jié)
本篇文章主要介紹了Retrofit2.0 實(shí)現(xiàn)圖文(參數(shù)+圖片)上傳方法總結(jié),具有一定的參考價(jià)值,有興趣的可以了解一下2017-08-08Android 啟動(dòng)模式FLAG_ACTIVITY_CLEAR_TOP案例詳解
這篇文章主要介紹了Android 啟動(dòng)模式FLAG_ACTIVITY_CLEAR_TOP案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08Android字符串和十六進(jìn)制相互轉(zhuǎn)化出現(xiàn)的中文亂碼問(wèn)題
這篇文章主要介紹了Android字符串和十六進(jìn)制相互轉(zhuǎn)化出現(xiàn)的中文亂碼問(wèn)題的相關(guān)資料,需要的朋友可以參考下2016-02-02Android ImageView 不顯示JPEG圖片的問(wèn)題解決
本篇文章主要介紹了Android ImageView 不顯示JPEG圖片及Android Studio中如何引用圖片資源的相關(guān)知識(shí),具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧2017-05-05Kotlin使用協(xié)程實(shí)現(xiàn)高效并發(fā)程序流程詳解
這篇文章主要介紹了Kotlin使用協(xié)程實(shí)現(xiàn)高效并發(fā)程序流程,協(xié)程屬于Kotlin中非常有特色的一項(xiàng)技術(shù),因?yàn)榇蟛糠志幊陶Z(yǔ)言中是沒(méi)有協(xié)程這個(gè)概念的。那么什么是協(xié)程呢?它其實(shí)和線程有點(diǎn)相似,可以簡(jiǎn)單地將它理解成一種輕量級(jí)的線程2023-01-01