ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

monkey基础 (7) - MonkeyRunner API

2021-09-19 13:05:54  阅读:174  来源: 互联网

标签:monkey touch MonkeyRunner print API monkeyrunner mr device com


MonkeyRunner工具主要有三个类:

  1. MonkeyRunner

  2. MonkeyDevice

  3. MonkeyImage

官方API文档 :http://www.android-doc.com/tools/help/monkeyrunner_concepts.html#

MonkeyRunner类

MonkeyRunner提供连接真机和模拟器、输入、暂停、警告框等方法。

常用方法

waitForConnection(float timeout,string deviceid)

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

 

device=mr.waitForConnection()
# device=mr.waitForConnection(5,'127.0.0.1:62001')  有多个也可以指定多个

MonkeyDevice类

MonkeyDevice类提供了安装和卸载程序包、开启Activity、发送按键和点击事件、运行测试包等方法。

常用方法

  • installPackage (string path)
  • removePackage (string package)
  • startActivity (string uri, string action, string data, string mimetype, iterable categories dictionary extras, component component, flags)
  • touch (integer x, integer y, integer type)
  • drag (tuple start, tuple end, float duration, integer steps)

touch参数说明

integer x,x坐标值。
integer y,y坐标值。
integer type,key event类型(如DOWN、UP、DOWN_AND_UP)。

DOWN为按下事件 UP为弹起事件 DOWN_AND_UP为按下弹起事件。

drag参数详细说明

tuple start,拖拽起始位置,为tuple类型的(x,y)坐标点。
tuple end,拖拽终点位置,为tuple类型的(x,y)坐标点。
float duration,拖拽手势持续时间,默认为1.0s。
-integer steps,插值点的步数,默认值为10。

实践案例

连接设备,安装考研帮App并启动

代码实现

kyb_start.py

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)

MonkeyImage类

MonkeyImage类在测试过程中用来保存各种格式的测试截图,并可以进行图像对比。

常用方法

  • takeSnapshot() 进行屏幕截图
  • writeToFile() 保存图像文件到指定的文件路径

用法示例

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
  • 输入用户名密码点击登录按钮
  • 截图

脚本实现

kyb_login.py

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')


标签:monkey,touch,MonkeyRunner,print,API,monkeyrunner,mr,device,com
来源: https://www.cnblogs.com/dongye95/p/15311335.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有