monkeyrunner基本使用

一、簡介

通過monkeyrunner api可以用python模擬操作控制android設備app,測試穩定性並通過截屏方便的記錄出現的問題。

二、路徑

Android SDK\tools

三、功能

1、控制多個android設備

2、功能測試,爲應用自動執行一次功能測試,然後觀察輸出結果的截屏

3、可拓展自動化;monkeyrunner是一個API工具包,可以開發基於python模塊的整個系統來控制android設備

四、MonkeyRunner和monkey區別

monkey是在設備直接運行在adb shell命令生成的隨機事件來進行測試。MonkeyRunner通過api發送特定指令和事件來控制設備。

五、環境搭建

1、jdk

2、android sdk

3、python安裝

4、monkeyrunner配置  {PATH}\Android_SDK\tools

六、安裝結果監測

直接運行monkeyrunner

七、MonkeyRunner常用三個類

1、MonkeyRunner 提供真機連接和模擬器、輸入、暫停、警告框等方法。

alert() 警告框

choice()選項列表框

help()api幫助文檔

input()輸入

sleep()暫停

waitForConnection()等待連接設備

常用方法:waitForConnection(timeout,deviceid)

from com.android.monkeyrunner import MonkeyRunner as mr
print("connect devices...")

device=mr.waitForConnection()
# device=mr.waitForConnection(5,'127.0.0.1:62001')

2、MonkeyDevice類

提供安裝和卸載程序包、開啓activity、發送按鍵和點擊事件、運行測試包等方法。

broadcastintent()發送廣播

drag()拖拽

getProperty() 獲取設備當前屬性

getSystemProperty() 獲取當前設備屬性

installPackage() 安裝包

instrument() 執行測試用例

press() 按鍵

reboot() 重啓

removePackage()刪除指定包

shell() 執行命令

startActivity()啓動應用

touch()點擊

 

from com.android.monkeyrunner import MonkeyRunner as mr
from com.android.monkeyrunner import MonkeyDevice as md


print("connect devices...")
device=mr.waitForConnection()

print("install app...")
device.installPackage(r'C:\Users\Shuqing\Desktop\kaoyan3.1.0.apk')

package = 'com.tal.kaoyan'
activity = 'com.tal.kaoyan.ui.activity.SplashActivity'
runComponent = package + '/' + activity

print("launch App...")
device.startActivity(component=runComponent)

# 代碼執行方式
# monkeyrunner scripfile

# C:\Users\Shuqing>monkeyrunner E:\monkeyrunner_script\kyb.py

3、MonkeyImage類

測試過程中測試截圖,可進行圖像對比

convertToBytes() 轉換圖像格式

getRawPixel() 獲取當前座標像素元祖

getRawPixeLint() 獲取當前座標像素值

sameAs()圖像對比

writeToFile()保存圖像文件

getSubImage()獲取子圖像

from com.android.monkeyrunner import MonkeyImage as mi  
print("takeSnapshot")
screenshot=device.takeSnapshot()  
screenshot.writeToFile(r'E:\monkeyrunner_script\test.png','png')  

 

八、綜合實踐

測試場景

  • 連接設備,自動安裝並啓動考研幫app
  • 啓動後登錄賬號(賬號zxw1234 密碼:zxw123456),然後截圖並保存到指定文件位置。

思路分析

  • 連接設備
  • 安裝app
  • 啓動app
  • 輸入用戶名密碼點擊登錄按鈕
  • 截圖
    from com.android.monkeyrunner import MonkeyRunner as mr
    from com.android.monkeyrunner import MonkeyDevice as md
    from com.android.monkeyrunner import MonkeyImage as mi
    
    print("connect devices...")
    
    device=mr.waitForConnection()
    
    print(" install app")
    device.installPackage(r'C:\Users\Shuqing\Desktop\kaoyan3.1.0.apk')
    
    print("launch app...")
    package='com.tal.kaoyan'
    activity='com.tal.kaoyan.ui.activity.SplashActivity'
    runComponent=package+'/'+activity
    
    device.startActivity(component=runComponent)
    mr.sleep(3)
    
    
    print("touch cancel button")
    device.touch(618,895,'DOWN_AND_UP')
    mr.sleep(1)
    
    
    print("touch skip button")
    device.touch(804,67,'DOWN_AND_UP')
    mr.sleep(1)
    
    print("input username and password")
    device.touch(57,373,'DOWN_AND_UP')
    mr.sleep(2)
    device.type('zxw1234')
    
    device.touch(152,480,'DOWN_AND_UP')
    mr.sleep(2)
    
    device.type('zxw123456')
    mr.sleep(2)
    
    print("touch login button")
    device.touch(331,634,'DOWN_AND_UP')
    
    
    print("takeSnapshot")
    screenshot=device.takeSnapshot()
    screenshot.writeToFile(r'D:\monkeyrunner\kyb.png','png')
    
    

九、注意事項

需要在代碼頂部補充 # -- coding: utf-8 -- 或者去掉代碼中的中文字符

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章