• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 使用 MonkeyRunner 進行自動化測試

    發表于:2017-07-24來源:簡書作者: 白帽子耗子點擊數: 標簽:MonkeyRunner
    monkeyrunner 是 SDK.tools 下的一個 .bat 文件,是 Android 自帶的工具。配合 py 腳本可以模擬手機點擊、拖拽、功能鍵等的實現,然后可以觀察截圖自己比較。只要你事先寫好腳本,一系列動作

    這篇文章記錄一下 Monkeyrunner 的使用。因為本人也是剛接觸,如有錯漏,請指正。

    準備

    1. python 基礎。

      說是基礎,會點基本用法循環條件就差不多了。有語言基礎的話還是很快入門的。我當時是看菜鳥教程,配一下環境就行了。

    2. JDK、SDK 環境

    3. monkeyrunner

      monkeyrunner 是 SDK.tools 下的一個 .bat 文件,是 Android 自帶的工具。配合 py 腳本可以模擬手機點擊、拖拽、功能鍵等的實現,然后可以觀察截圖自己比較。只要你事先寫好腳本,一系列動作,他就能模擬運行,達到自動化測試的目的。

      如果目錄下沒有,可能你是AS下的SDK,那么應該在 tools.bin 目錄下。

    monkeyrunner 方法

    導入需要的模塊

    主要包括三個模塊

    1、MonkeyRunner:這個類提供了用于連接monkeyrunner和設備或模擬器的方法,它還提供了用于創建用戶界面顯示提供了方法。

    2、MonkeyDevice:代表一個設備或模擬器。這個類為安裝和卸載包、開啟Activity、發送按鍵和觸摸事件、運行測試包等提供了方法。

    3、MonkeyImage:這個類提供了捕捉屏幕的方法。這個類為截圖、將位圖轉換成各種格式、對比兩個MonkeyImage對象、將image保存到文件等提供了方法。

    #引入模塊
    from com.android.monkeyrunner import MonkeyRunner,MonkeyDevice,MonkeyImage
    #或者給模塊起別名,引用的時候就不用寫全稱。
    #但是引用了別名就不能使用原來的名字了,否則報錯
    import sys
    from com.android.monkeyrunner import MonkeyRunner as mr
    from com.android.monkeyrunner import MonkeyDevice as md
    from com.android.monkeyrunner import MonkeyImage as mi
    #比如連接設備或模擬器,起了以上別名后,命令應該如下:
    device=mr.waitForConnection()

    啟動活動

    啟動活動要先連接設備,就是上面 waitForConnection() 的代碼。然后就是要調用

    device.startActivity(component="<packageName>/<packageName>.<activityName>")
    #或者
    device.startActivity(component="<packageName>/.<activityName>")`

    自己開發的可以去查看 Manifest 文件,不是自己開發的軟件,我查了一下。用了同是 SDK.tools 下的 Android 自帶的工具:hierarchyviewer.bat 或者用重簽名工具,在這里不累述了,一查就知道。

    得到包名和活動名,你就可以進行自動化測試了。

    方法

    點擊

    #在指定位置發送觸摸事件 
    #device.touch(x,y,觸摸事件類型)
    #x,y的單位為像素
    #觸摸事件類型,請見下文中Findyou對device.press描述
    
    device.touch(520,520,'DOWN_AND_UP')

    發送到指定鍵的一個關鍵事件

    #device.press(參數1:鍵碼,參數2:觸摸事件類型)
    #參數1:見android.view.KeyEvent
    #參數2,如有TouchPressType()返回的類型-觸摸事件類型,有三種。
    #1、DOWN 發送一個DOWN事件。指定DOWN事件類型發送到設備,對應的按一個鍵或觸摸屏幕上。
    #2、UP 發送一個UP事件。指定UP事件類型發送到設備,對應釋放一個鍵或從屏幕上抬起。
    #3、DOWN_AND_UP 發送一個DOWN事件,然后一個UP事件。對應于輸入鍵或點擊屏幕。
    
     
    
    
    
               

    原文轉自:http://www.jianshu.com/p/93401c23451a

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>