qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請訪問 http://qaseven.github.io/

          Android Robotium跨應(yīng)用處理方法

            相信用過一段時間Robotium的同學(xué)一般都遇到過如下情況:界面跳轉(zhuǎn)到被測程序外以后,Robotium就毫無對策了,這也是Instrumentation框架最致命的一個缺點;然而領(lǐng)導(dǎo)是不會管你這些很“充分”的理由的…..
            Ok,既然我們有這樣的需求,還是想辦法解決吧。調(diào)研了幾天最終還是實現(xiàn)了一個曲線救國的方法:
            實現(xiàn)原理:編寫一個程序A,用于接收CASE中發(fā)送的指定廣播,當(dāng)程序A接收到指定的廣播后就會響應(yīng)你注入的動作事件。
            準(zhǔn)備工作
            熟悉Service 、BoradCastReceiver、input keyevent, 有不清楚的同學(xué)可以先百度下以上知識模塊。
            具體實現(xiàn):
            1、首先為了方便我們使用,我們可以設(shè)置為程序A為開機啟動一個Service,該Service中注冊一個BoardCastReceiver用于接收一個特定action的廣播,設(shè)置一個IntentFilter:IntentFilter mIntentFilter=new IntentFilter(); mIntentFilter.addAction(“android.zered.action”);然后在BoardCastReceiver的OnReceive方法中使用Runtime.getRuntime.exec(cmdB)執(zhí)行我們Case中發(fā)送過來的指令(input keyevent xx 當(dāng)然也可以是其他的一些shell命令)。注意:關(guān)于設(shè)置程序開機啟動,3.1以后Android系統(tǒng)對廣播接收做了安全處理——未啟動過的程序是不能接收廣播的,當(dāng)然我們還是有方法解決:即把該程序設(shè)置為系統(tǒng)級應(yīng)用即可,然后把該程序push到system/app下重啟手機;
            2、步驟1的完成已經(jīng)為我們完成了一個命令執(zhí)行端(可以理解為CS的server端),現(xiàn)在我們需要做的就是發(fā)送這個廣播,發(fā)送廣播的方法為context.sendbroadcast,所以我們在Case中就可以使用solo.getCurrentActivity.sendbroadcast發(fā)送廣播;
            剩下的就是我們要把這個命令行cmdB封裝到廣播中,Intent intent=new Intent();intent.setAction(“android.zered.action”);intent.putExtra(TAG,cmdB);solo.getCurrentActivity.sendbroadcast(intent);
            Ok,這樣以來一個帶有命令行的廣播就算是發(fā)送出去了。
            3、以上步驟完成以后,步驟1啟動的程序A中的Service接收到步驟2發(fā)送的廣播以后,就會執(zhí)行我們發(fā)送的命令行指令cmdB了:Runtime.getRuntime.exec(intent.getStringExtra(TAG))
            以上就是Robotium跨應(yīng)用的一種處理方法,歡迎大家拍磚。

          posted on 2014-08-15 09:53 順其自然EVO 閱讀(271) 評論(0)  編輯  收藏 所屬分類: android

          <2014年8月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          導(dǎo)航

          統(tǒng)計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 民和| 洛浦县| 定兴县| 崇义县| 墨玉县| 孟连| 宜章县| 冀州市| 宣恩县| 瑞丽市| 昌图县| 曲沃县| 玉田县| 赤城县| 泽库县| 西畴县| 东方市| 扬州市| 成安县| 贵州省| 镇坪县| 汕尾市| 金湖县| 广南县| 潜江市| 长海县| 江口县| 洪湖市| 丰台区| 乐业县| 太原市| 靖边县| 冀州市| 滁州市| 龙山县| 麦盖提县| 辽宁省| 甘谷县| 平遥县| 太谷县| 长兴县|