MonkeyRunner API

MonkeyRunner工具主要有三个类:

1.    MonkeyRunner

2.    MonkeyDevice

3.    MonkeyImage

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

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

2.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)

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 end, float duration, integer steps)

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 mdprint("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 + '/' + activityprint("launch App...")
device.startActivity(component=runComponent)

代码执行方式

monkeyrunner scripfileC:\Users\Shuqing>monkeyrunner E:\monkeyrunner_script\kyb.py

3.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 miprint("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+'/'+activitydevice.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')

注意事项
方法调用错误

AttributeError: type object 'com.android.monkeyrunner.XXXXX' has no attribute XXXXXX

检查调用的方法名是否写错,特别是注意区分大小写。
字符编码错误

SyntaxError: Non-ASCII character in file 'E:\monkeyrunner_script\kyb.py', but no encoding declared;

需要在代码顶部补充 # -- coding: utf-8 -- 或者去掉代码中的中文字符

Appium学习12:monkeyrunner API相关推荐

  1. Appium学习之---MonkeyRunner环境搭建

    MonkeyRunner简介 MonkeyRunner工具是使用Jython(使用Java编程语言实现的Python)写出来的,它提供了多个API,通过monkeyrunner API 可以写一个Py ...

  2. 用于Java开发机器学习和深度学习的Vector API(翻译)

    本文介绍了用于Java开发机器学习和深度学习的Vector API 英语原文链接 https://software.intel.com/en-us/articles/vector-api-develo ...

  3. appium学习笔记

    appium学习笔记 第1节.2节课appium介绍和安装 开源.跨平台.多语言支持的移动应用自动化工具 测试对象 原生APP 混合APP 移动APP APP运行环境 真实设备 虚拟设备 测试程序语言 ...

  4. es入门学习7-java-es自身API

    es入门学习7-java-es自身API 使用起前面的集群环境进行学习 一. 公共的东西 1.1.项目位置 1.2.导入依赖 <dependency><groupId>org. ...

  5. 初学api测试_面向初学者的API-在此免费视频课程中学习如何使用API

    初学api测试 What exactly is an API? How do you use an API? We've just published a full beginner's course ...

  6. appium学习【二】:用try捕获异常后,用例的执行结果为pass

    appium学习[二]:用try捕获异常后,用例的执行结果为pass 参考文章: (1)appium学习[二]:用try捕获异常后,用例的执行结果为pass (2)https://www.cnblog ...

  7. ThinkPhp学习12

    原文:ThinkPhp学习12 二.输出模板内容      (重点) a.display 1.display中没有参数    $this->display(); 2.可以带参数    $this ...

  8. 跟着 Github 学习 Restful HTTP API 的优雅设计

    近几年提供 HTTP API 服务的公司越来越多,许多公司都把 API 作为产品重要的一部分,作为服务提供出去.而微服务的兴起,也让企业内部开始重视和频繁使用 HTTP API .好的 HTTP AP ...

  9. TF学习——TF之API:TensorFlow的高级机器学习API—tf.contrib.learn的简介、使用方法、案例应用之详细攻略

    TF学习--TF之API:TensorFlow的高级机器学习API-tf.contrib.learn的简介.使用方法.案例应用之详细攻略 目录 tf.contrib.learn的简介 tf.contr ...

最新文章

  1. JavaScript学习系列6 充实文档的内容
  2. 编译器GCC与Clang的异同
  3. Power-- 1.charge Fuel gauge
  4. centos7如何安装samba-client_如何在基本图形模式下最小化全新安装CentOS 7?
  5. 最小拍有纹波系统仿真实验matlab代码,最小拍控制器设计.doc
  6. Python 数据类型之字典
  7. mysql支持arm64架构吗_arm64(aarch64)下使用mysql
  8. 我们靠什么赢得这个时代
  9. Paint the Tree CodeForces - 1244D(看似是树,其实是条链)
  10. Android逆向笔记-通过配置文件设置全屏(逆向开发与正向开发)
  11. AngularJS学习(一)
  12. sendfile实现文件服务器,sendfile
  13. ashx获取input file 文件_前端战五渣学前端——FileReader预览本地文件
  14. HAOI2008 硬币购物
  15. Service Unavailable出现原因及解决方法
  16. 国内外常用计算机杀毒软件,国外杀毒软件排行榜(国内的不要)
  17. 刘宇凡:坚持就是写文章的最大技巧
  18. 同城聚合平台v59.2.0 本地同城 同城信息 同城商家
  19. cuteftp.exe
  20. python折叠次数计算、一张纸5毫米_一张纸折叠多次后会怎样?计算机模拟得出,它能突破宇宙范围...

热门文章

  1. span按钮disabled属性无效
  2. 【自学Flutter】27.5 手势冲突(Listener处理)
  3. depthwise conv 和 pointwise conv
  4. 概率校准 Probability Calibration
  5. java-net-php-python-jspm环保设备公司网站的设计与实现演示录像2019计算机毕业设计程序
  6. Spyder 打不开的一种解决办法
  7. 手机办公总被质疑效率低?合理地使用手机功能,办公效率远超电脑
  8. 数据库事务ACID原则
  9. 【10.22 牛客普及(三)】 牛半仙的妹子串 题解
  10. 京东物流斥资90亿收购德邦66%股权 余睿:绝不是要内卷