最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

android monkey自動(dòng)化測試改為java調(diào)用monkeyrunner Api

 更新時(shí)間:2012年11月23日 17:03:15   作者:  
一般情況下我們使用android中的monkeyrunner進(jìn)行自動(dòng)化測試時(shí),使用的是python語言來寫測試腳本。不過,最近發(fā)現(xiàn)可以用java調(diào)用monkeyrunner Api,于是,就簡單研究了一下。這里做一些總結(jié)。希望有對在研究的午飯可以有所用處
眾所周知,一般情況下我們使用android中的monkeyrunner進(jìn)行自動(dòng)化測試時(shí),使用的是python語言來寫測試腳本。不過,最近發(fā)現(xiàn)可以用java調(diào)用monkeyrunner Api,用java語言寫測試腳本。
 
于是,就簡單研究了一下。這里做一些總結(jié)。希望有對在研究的午飯可以有所用處。
開始時(shí),搜素到一些零碎的教程,說使用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)包就是通過:右鍵工程》propertiesJava Build PathLibrariesadd External JARsOK。如下圖:

導(dǎo)入之后,我簡單創(chuàng)建了一個(gè)測試類,然后添加一個(gè)MonkeyDevice對象,然后引入需要的包,結(jié)果發(fā)現(xiàn)報(bào)了錯(cuò)誤,引用的資源找不到,根據(jù)看到的例子的提示說,需要手動(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問題解決了,但是,下一個(gè)問題出現(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è)無底洞了,總是找不到最終一個(gè)文件的父類:如圖:

折騰了一番,我就感覺不應(yīng)該是這樣的,不過搜索了很多零碎的資料,差不多都是跟這個(gè)方法一個(gè)意思。最后,我在一個(gè)論壇找到了一個(gè)勉強(qiáng)稱之為解決方法的答案。他重新給了我四個(gè)包,說是我導(dǎo)入的這四個(gè)包版本太新了(我的更新到android4.1)。我添加進(jìn)去之后,果然能用。
這里簡單貼一下我的代碼,說一下調(diào)用問題:
復(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)要測試的主界面,主要是配置自己的包和啟動(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);

}
}
這些代碼還是比較簡單,主要注意的是兩點(diǎn):1).adb.waitForConnection(a,b);這個(gè)方法里添加的是等待啟動(dòng)的時(shí)間和自己的設(shè)備名字。2).startActivity()這個(gè)方法的倒數(shù)第二個(gè)參數(shù)是配置你的要測試的apk的包名和主界面,
 
運(yùn)行java application就可以連上你的測試設(shè)備。其他的一些需要用到的測試方法,比如monkeyrunner中的touch,drag,type,等等,都是monkeyrunner中的方法,你也可以簡單的封裝一下就可以使用。跟使用python時(shí),沒多少區(qū)別。
 
說到為什么要使用java語言調(diào)用monkeyrunner來寫腳本,我因?yàn)榱?xí)慣了用python寫,暫時(shí)沒體會(huì)到有啥太大的優(yōu)勢,也許是工程量大時(shí),用java更直接和便于管理,也許就是個(gè)人愛好了。這個(gè)有待以后體驗(yàn)。

相關(guān)文章

  • Android4.4下MediaProvider無法向外置SD卡中文件寫數(shù)據(jù)的解決方法

    Android4.4下MediaProvider無法向外置SD卡中文件寫數(shù)據(jù)的解決方法

    這篇文章主要介紹了Android4.4下MediaProvider無法向外置SD卡中文件寫數(shù)據(jù)的解決方法,實(shí)例分析了Android4.4下針對讀寫限制的修改技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-10-10
  • Android開發(fā)之DiffUtil的使用詳解

    Android開發(fā)之DiffUtil的使用詳解

    這篇文章文給大家介紹了DiffUtil的使用,相信大家每位Android開發(fā)者們都知道谷歌最近更新了Support Library 24.2.0,而DiffUtil就是在這個(gè)版本添加的一個(gè)工具類。下面就跟著小編一起來看看,有需要的可以參考借鑒。
    2016-09-09
  • Android的文本和輸入之創(chuàng)建輸入法教程

    Android的文本和輸入之創(chuàng)建輸入法教程

    輸入法編輯器(IME)是讓用戶輸入文本的控件,Android提供了一個(gè)可擴(kuò)展的的輸入法的框架,它允許應(yīng)用程序給用戶提供另外的輸入法,如軟鍵盤或語音輸入,需要的朋友可以了解下
    2012-12-12
  • Flutter狀態(tài)管理Provider示例解析

    Flutter狀態(tài)管理Provider示例解析

    這篇文章主要為大家介紹了Flutter狀態(tài)管理Provider示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • Android Studio手動(dòng)配置Gradle的方法

    Android Studio手動(dòng)配置Gradle的方法

    Gradle:Gradle是一個(gè)基于Apache Ant和Apache Maven概念的項(xiàng)目自動(dòng)化建構(gòu)工具。它使用一種基于Groovy的特定領(lǐng)域語言(DSL)來聲明項(xiàng)目設(shè)置,拋棄了基于XML的各種繁瑣配置,本文給大家介紹Android Studio手動(dòng)配置Gradle的方法,一起看看吧
    2017-11-11
  • Android 用戶Session管理的設(shè)計(jì)方案

    Android 用戶Session管理的設(shè)計(jì)方案

    這篇文章主要介紹了Android 用戶Session管理的設(shè)計(jì)方案,需要的朋友可以參考下
    2017-12-12
  • Android搶紅包助手開發(fā)全攻略

    Android搶紅包助手開發(fā)全攻略

    這篇文章主要為大家詳細(xì)介紹了Android搶紅包助手開發(fā)全攻略,感興趣的小伙伴們可以參考一下
    2016-07-07
  • OpenGL Shader實(shí)例分析(7)雪花飄落效果

    OpenGL Shader實(shí)例分析(7)雪花飄落效果

    這篇文章主要為大家詳細(xì)介紹了OpenGL Shader實(shí)例分析第7篇,實(shí)現(xiàn)雪花飄落效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • android 6.0 寫入SD卡的權(quán)限申請實(shí)例講解

    android 6.0 寫入SD卡的權(quán)限申請實(shí)例講解

    今天小編就為大家分享一篇android 6.0 寫入SD卡的權(quán)限申請實(shí)例講解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • Android 仿微信底部漸變Tab效果

    Android 仿微信底部漸變Tab效果

    這篇文章主要介紹了Android 仿微信底部漸變Tab效果,需要的朋友可以參考下
    2017-12-12

最新評論

安达市| 潜江市| 阿合奇县| 贵定县| 嵊泗县| 旅游| 新野县| 玛曲县| 衡南县| 平安县| 金塔县| 兴隆县| 嵊州市| 嘉鱼县| 措美县| 巨鹿县| 义乌市| 长岭县| 平邑县| 青阳县| 渑池县| 海南省| 资中县| 民乐县| 崇仁县| 于田县| 芷江| 武城县| 拉孜县| 鸡西市| 唐山市| 湟中县| 五台县| 新竹县| 延津县| 北辰区| 高州市| 乌海市| 宜宾县| 铅山县| 东明县|