![monkeyrunner一個(gè)簡(jiǎn)單的教程.docx_第1頁(yè)](http://file.renrendoc.com/FileRoot1/2020-2/21/1e0551b7-8b90-4df2-9c20-38925f0e5f80/1e0551b7-8b90-4df2-9c20-38925f0e5f801.gif)
![monkeyrunner一個(gè)簡(jiǎn)單的教程.docx_第2頁(yè)](http://file.renrendoc.com/FileRoot1/2020-2/21/1e0551b7-8b90-4df2-9c20-38925f0e5f80/1e0551b7-8b90-4df2-9c20-38925f0e5f802.gif)
![monkeyrunner一個(gè)簡(jiǎn)單的教程.docx_第3頁(yè)](http://file.renrendoc.com/FileRoot1/2020-2/21/1e0551b7-8b90-4df2-9c20-38925f0e5f80/1e0551b7-8b90-4df2-9c20-38925f0e5f803.gif)
![monkeyrunner一個(gè)簡(jiǎn)單的教程.docx_第4頁(yè)](http://file.renrendoc.com/FileRoot1/2020-2/21/1e0551b7-8b90-4df2-9c20-38925f0e5f80/1e0551b7-8b90-4df2-9c20-38925f0e5f804.gif)
![monkeyrunner一個(gè)簡(jiǎn)單的教程.docx_第5頁(yè)](http://file.renrendoc.com/FileRoot1/2020-2/21/1e0551b7-8b90-4df2-9c20-38925f0e5f80/1e0551b7-8b90-4df2-9c20-38925f0e5f805.gif)
已閱讀5頁(yè),還剩3頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Android自動(dòng)測(cè)試之monkeyrunner工具 monkeyrunner工具前言:最近開始研究Android自動(dòng)化測(cè)試方法,對(duì)其中的一些工具、方法和框架做了一些簡(jiǎn)單的整理,其中包括android測(cè)試框架、CTS、Monkey、Monkeyrunner、benchmark、其它test tool等等。因接觸時(shí)間很短,很多地方有不足之處,希望能和大家多多交流。一、什么是monkeyrunnermonkeyrunner工具提供了一個(gè)API,使用此API寫出的程序可以在Android代碼之外控制Android設(shè)備和模擬器。通過(guò)monkeyrunner,您可以寫出一個(gè)Python程序去安裝一個(gè)Android應(yīng)用程序或測(cè)試包,運(yùn)行它,向它發(fā)送模擬擊鍵,截取它的用戶界面圖片,并將截圖存儲(chǔ)于工作站上。monkeyrunner工具的主要設(shè)計(jì)目的是用于測(cè)試功能/框架水平上的應(yīng)用程序和設(shè)備,或用于運(yùn)行單元測(cè)試套件,但您當(dāng)然也可以將其用于其它目的。二、monkeyrunner工具同Monkey工具的差別Monkey:Monkey工具直接運(yùn)行在設(shè)備或模擬器的adbshell中,生成用戶或系統(tǒng)的偽隨機(jī)事件流。monkeyrunner:monkeyrunner工具則是在工作站上通過(guò)API定義的特定命令和事件控制設(shè)備或模擬器。三、monkeyrunner的測(cè)試類型1、多設(shè)備控制:monkeyrunner API可以跨多個(gè)設(shè)備或模擬器實(shí)施測(cè)試套件。您可以在同一時(shí)間接上所有的設(shè)備或一次啟動(dòng)全部模擬器(或統(tǒng)統(tǒng)一起),依據(jù)程序依次連接到每一個(gè),然后運(yùn)行一個(gè)或多個(gè)測(cè)試。您也可以用程序啟動(dòng)一個(gè)配置好的模擬器,運(yùn)行一個(gè)或多個(gè)測(cè)試,然后關(guān)閉模擬器。2、 功能測(cè)試: monkeyrunner可以為一個(gè)應(yīng)用自動(dòng)貫徹一次功能測(cè)試。您提供按鍵或觸摸事件的輸入數(shù)值,然后觀察輸出結(jié)果的截屏。3、 回歸測(cè)試:monkeyrunner可以運(yùn)行某個(gè)應(yīng)用,并將其結(jié)果截屏與既定已知正確的結(jié)果截屏相比較,以此測(cè)試應(yīng)用的穩(wěn)定性。 4、 可擴(kuò)展的自動(dòng)化:由于monkeyrunner是一個(gè)API工具包,您可以基于Python模塊和程序開發(fā)一整套系統(tǒng),以此來(lái)控制Android設(shè)備。除了使用monkeyrunner API之外,您還可以使用標(biāo)準(zhǔn)的Python os和subprocess模塊來(lái)調(diào)用Android Debug Bridge這樣的Android工具。四、運(yùn)行monkeyrunner您可以直接使用一個(gè)代碼文件運(yùn)行monkeyrunner,抑或在交互式對(duì)話中輸入monkeyrunner語(yǔ)句。不論使用哪種方式,您都需要調(diào)用SDK目錄的tools子目錄下的monkeyrunner命令。如果您提供一個(gè)文件名作為運(yùn)行參數(shù),則monkeyrunner將視文件內(nèi)容為Python程序,并加以運(yùn)行;否則,它將提供一個(gè)交互對(duì)話環(huán)境。monkeyrunner的命令語(yǔ)法為:monkeyrunner -plugin 五、實(shí)例以sample中的ApiDemos為例,先將其生成ApiDemos.apk。前提:已有device連接1、 將ApiDemos.apk放在$Android_Roottools下。2、 在$Android_Roottools下新建一個(gè)monkeyrunnerprogram.py文件,里面內(nèi)容為: 1 # Imports the monkeyrunner modules used by this program 2 3 from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice, MonkeyImage 4 5 # Connects to the current device, returning a MonkeyDevice object 6 7 device = MonkeyRunner.waitForConnection() 8 9 # Installs the Android package. Notice that this method returns a boolean, so you can test10 11 # to see if the installation worked.12 13 device.installPackage(./ApiDemos.apk)14 15 16 # Runs the component17 18 device.startActivity(component=com.example.android.apis/.ApiDemos)19 20 21 # Presses the Menu button22 23 device.press(KEYCODE_MENU,DOWN_AND_UP)24 25 26 # Takes a screenshot27 28 result = device.takeSnapshot()29 30 31 # Writes the screenshot to a file32 33 result.writeToFile(./shot1.png,png)注意:SDK上的例子有些錯(cuò)誤,不可直接復(fù)制,否則執(zhí)行命令時(shí)會(huì)發(fā)生錯(cuò)誤。具體可與我的上面這段代碼對(duì)照。3、 打開命令行轉(zhuǎn)到Android_Roottools目錄下運(yùn)行一下命令:monkeyrunner monkeyrunnerprogram.py110307 15:33:19.625:I main com.android.monkeyrunner.MonkeyManager Monkey Command: wake.110307 15:33:20.625:I main com.android.monkeyrunner.MonkeyManager Monkey Command: wake.110307 15:33:21.625:I main com.android.monkeyrunner.MonkeyManager Monkey Command: wake.110307 15:33:22.718:S pool-1-thread-1 com.android.monkeyrunner.adb.AdbMonkeyDevice Error starting command: monkey -port 12345110307 15:33:22.718:S pool-1-thread-1 com.android.monkeyrunner.adb.AdbMonkeyDevicecom.android.ddmlib.ShellCommandUnresponsiveException110307 15:33:22.718:S pool-1-thread-1 com.android.monkeyrunner.adb.AdbMonkeyDevice at com.android.ddmlib.AdbHelper.executeRemoteCommand(AdbHelper.java:408)110307 15:33:22.718:S pool-1-thread-1 com.android.monkeyrunner.adb.AdbMonkeyDevice at com.android.ddmlib.Device.executeShellCommand(Device.java:276)110307 15:33:22.718:S pool-1-thread-1 com.android.monkeyrunner.adb.AdbMonkeyDevice at com.android.monkeyrunner.adb.AdbMonkeyDevice$1.run(AdbMonkeyDevice.java:89)110307 15:33:22.718:S pool-1-thread-1 com.android.monkeyrunner.adb.AdbMonkeyDevice at java.util.concurrent.Executors$RunnableAdapter.call(UnknownSource)110307 15:33:22.718:S pool-1-thread-1 com.android.monkeyrunner.adb.AdbMonkeyDevice at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)110307 15:33:22.718:S pool-1-thread-1 com.android.monkeyrunner.adb.AdbMonkeyDevice at java.util.concurrent.FutureTask.run(Unknown Source)110307 15:33:22.718:S pool-1-thread-1 com.android.monkeyrunner.adb.AdbMonkeyDevice at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)110307 15:33:22.718:S pool-1-thread-1 com.android.monkeyrunner.adb.AdbMonkeyDevice at java.util.concurrent.ThreadPoolExecutor$Worker.run(UnknownSource)110307 15:33:22.718:S pool-1-thread-1 com.android.monkeyrunner.adb.AdbMonkeyDevice at java.lang.Thread.run(UnknownSource)110307 15:33:57.437:I main com.android.monkeyrunner.MonkeyManager Monkey Command: press KEYCODE_MENU.110307 15:33:59.171:I main com.android.monkeyrunner.MonkeyManager Monkey Command: quit.注:里面exception的提示我們可以忽略,因?yàn)槲覀兛梢钥匆?jiàn)Monkey Command: press KEYCODE_MENU已經(jīng)執(zhí)行成功。4、 可以Android_Roottools下查看生成的shot1.png的截圖。六、實(shí)例擴(kuò)展因?yàn)锳piDemos首頁(yè)上按下MENU鍵沒(méi)有菜單出現(xiàn),為了更加形象化,在實(shí)例五的基礎(chǔ)上繼續(xù)試驗(yàn):1、 在$Android_Roottools下新建一個(gè)monkeyrunnerprogram1.py文件,里面內(nèi)容為: 1 # Imports the monkeyrunner modules used by this program 2 3 from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice, MonkeyImage 4 5 # Connects to the current device, returning a MonkeyDevice object 6 7 device = MonkeyRunner.waitForConnection() 8 9 # Takes a screenshot10 11 result = device.takeSnapshot()12 13 # Writes the screenshot to a file14 15 result.writeToFile(./shotbegin.png,png)16 17 # Presses the Down button18 19 device.press(KEYCODE_DPAD_DOWN,DOWN_AND_UP)20 21 device.press(KEYCODE_DPAD_DOWN,DOWN_AND_UP)22 23 device.press(KEYCODE_DPAD_DOWN,DOWN_AND_UP)24 25 device.press(KEYCODE_DPAD_DOWN,DOWN_AND_UP)26 27 device.press(KEYCODE_DPAD_DOWN,DOWN_AND_UP)28 29 # Takes a screenshot30 31 result = device.takeSnapshot()32 33 # Writes the screenshot to a file34 35 result.writeToFile(./sho
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 心電圖室獎(jiǎng)懲制度的制定意見(jiàn)
- 2025年度汽車維修廠汽車尾氣排放檢測(cè)與治理合同
- 金華浙江金華永康市古山鎮(zhèn)人民政府工作人員招聘筆試歷年參考題庫(kù)附帶答案詳解
- 金華2025年浙江金華浦江縣縣屬醫(yī)療衛(wèi)生單位招聘護(hù)理等專業(yè)人員16人筆試歷年參考題庫(kù)附帶答案詳解
- 浙江浙江省疾病預(yù)防控制中心招聘勞務(wù)派遣員工筆試歷年參考題庫(kù)附帶答案詳解
- 杭州2025年浙江杭州市教育局所屬事業(yè)單位招聘166人筆試歷年參考題庫(kù)附帶答案詳解
- 2025年中國(guó)雙層床架市場(chǎng)調(diào)查研究報(bào)告
- 2025年中國(guó)一次性使用PE手套市場(chǎng)調(diào)查研究報(bào)告
- 2025年規(guī)則導(dǎo)線剝皮機(jī)項(xiàng)目可行性研究報(bào)告
- 2025年罐頭盒蠟燭項(xiàng)目可行性研究報(bào)告
- 2024年西寧城市職業(yè)技術(shù)學(xué)院高職單招(英語(yǔ)/數(shù)學(xué)/語(yǔ)文)筆試歷年參考題庫(kù)含答案解析
- 2024年臨沂市高三一模(學(xué)業(yè)水平等級(jí)考試模擬試題)物理試卷
- 廣州獵德大橋三維曲面塔清水混凝土施工技術(shù)
- 我國(guó)糖尿病視網(wǎng)膜病變臨床診療指南2022解讀
- Python數(shù)據(jù)挖掘?qū)崙?zhàn)全套教學(xué)課件
- 高級(jí)茶藝師技能鑒定(協(xié)會(huì)版)備考題庫(kù)-下(多選、判斷題匯總)
- 特種設(shè)備作業(yè)人員體檢表(叉車)
- c30混凝土路面施工方案
- 加強(qiáng)師德師風(fēng)建設(shè)學(xué)校師德師風(fēng)警示教育講座培訓(xùn)課件
- 豬飼料購(gòu)銷合同書
- 電商運(yùn)營(yíng)銷售計(jì)劃Excel模版
評(píng)論
0/150
提交評(píng)論