monkey基础 (7) - MonkeyRunner API

MonkeyRunner工具主要有三个类:

  1. MonkeyRunner

  2. MonkeyDevice

  3. MonkeyImage

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

1|0MonkeyRunner类

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

1|1常用方法

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') 有多个也可以指定多个

2|0MonkeyDevice类

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

2|1常用方法

  • 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。

1|0实践案例

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

1|0代码实现

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)

3|0MonkeyImage类

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

3|1常用方法

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

3|2用法示例

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

4|0综合实践

4|1测试场景

  • 连接设备,自动安装并启动考研帮app
  • 启动后登录账号(账号zxw1234 密码:zxw123456),然后截图并保存到指定文件位置。

4|2思路分析

  • 连接设备
  • 安装app
  • 启动app
  • 输入用户名密码点击登录按钮
  • 截图

4|3脚本实现

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

__EOF__

本文作者😎
本文链接https://www.cnblogs.com/dongye95/p/15311335.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   dongye95  阅读(88)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示