文章转自:

http://www.ishow.me/2013/02/06/1035/.html

了解了MonkeyRunner,现在上一个简单的实例(理论支持所有Android设备^_^),向左滑动屏幕2次,并在滑动前和滑动后进行截图:

Python

# Imports the monkeyrunner modules used by this programfrom com.android.monkeyrunner import MonkeyRunner, MonkeyDevice, MonkeyImage# Connects to the current device, returning a MonkeyDevice objectdevice = MonkeyRunner.waitForConnection()# Takes a screenshotresult = device.takeSnapshot()# Writes the screenshot to a fileresult.writeToFile('./shotbegin.png','png')#Drag screen
for i in range(1,3):device.drag((200,300),(100,300),0.1,1)MonkeyRunner.sleep(1)# Takes a screenshotresult = device.takeSnapshot()# Writes the screenshot to a fileresult.writeToFile('./shotend.png','png')

使用方法:将代码拷贝到记事本并保存为.py格式的文件(最好和MonkeyRunner放在同一目录),如Demo.py,然后运行CMD并进入MonkeyRunner目录,使用MonkeyRunner Demo.py运行,看下什么效果?

实例详解:
1.导入模块
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice, MonkeyImage

2.连接当前设备,并返回一个MonkeyDevice对象
device = MonkeyRunner.waitForConnection()

3.截图并保存
result = device.takeSnapshot()
result.writeToFile(‘./shotbegin.png’,'png’)

4.滑动屏幕2次:
for i in range(1,3):
device.drag((200,300),(100,300),0.1,1)
MonkeyRunner.sleep(1)
说明:这是Python中的一个for循环,意思是遍历1~3(不含3)所有整数,遍历做什么呢?第二行就是我们要做的事情,“drag”就是拖动事件指令,后面的括号里就是参考,表示从第一个坐标开始到一个坐标结束,0.1表示所用时间,最后的1可以理解为采样点,默认为10,这里设置的是1,在本实例中1和10区别不大。第三行就是等待的意思,滑动一次后等待1秒再继续。
截图并保存
result = device.takeSnapshot()
result.writeToFile(‘./shotend.png’,'png’)
和第三步是一样的,只是保存的名字不一样,这样就实现了测试前和测试后的结果对比。

是不是很简单?

除了实例中的导入,截图,保存截图,滑动屏幕,还有很多方法,只要搞清楚怎么用了,剩下的就是自己排列组合来做成一个个的Case了。

其它方法介绍:

1.安装Android包,注意,此方法返回的返回值为boolean,由此可以判断安装过程是否正常 ;
device.installPackage(‘myproject/bin/MyApplication.apk’)

device.removePackage (‘com.example.android.notepad’)
print (‘卸载成功’)
device.installPackage(‘ApiDemos.apk’)
print (‘安装成功’)

2.启动一个Activity;
device.startActivity (component=’com.android.htccontacts/com.android.htccontacts.ContactsTabActivity’)

3.时延(秒);
MonkeyRunner.sleep(3)
4.触击屏幕;
device.touch(507,72,”DOWN_AND_UP”)

5.执行adb shell命令;
device.shell(“input text goup01″)

6.发送按键指令
按下HOME键 device.press(‘KEYCODE_HOME’,'DOWN_AND_UP’)
按下BACK键 device.press(‘KEYCODE_BACK’,'DOWN_AND_UP’)
按下下导航键 device.press(‘KEYCODE_DPAD_DOWN’,'DOWN_AND_UP’)
按下上导航键 device.press(‘KEYCODE_DPAD_UP’,'DOWN_AND_UP’)
按下OK键 device.press(‘KEYCODE_DPAD_CENTER’,'DOWN_AND_UP’)

相应的按键对应的名称如下:

home键:KEYCODE_HOME
back键:KEYCODE_BACK
send键:KEYCODE_CALL
end键:KEYCODE_ENDCALL
上导航键:KEYCODE_DPAD_UP
下导航键:KEYCODE_DPAD_DOWN
左导航:KEYCODE_DPAD_LEFT
右导航键:KEYCODE_DPAD_RIGHT
ok键:KEYCODE_DPAD_CENTER
上音量键:KEYCODE_VOLUME_UP
下音量键:KEYCODE_VOLUME_DOWN
power键:KEYCODE_POWER
camera键:KEYCODE_CAMERA
menu键:KEYCODE_MENU

以上信息基本够用了,若还有什么更“高级”方法,我会再加进来的,希望这些对大家有帮助。

无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点这里可以跳转到教程 https://www.captainbed.net/chichoxian

MonkeyRunner实例及使用说明相关推荐

  1. android sdk工具之MonkeyRunner (实例)_小兵兵同学_新浪博客

    android sdk工具之MonkeyRunner (实例)_小兵兵同学_新浪博客

  2. JAVA使用itext来生成PDF表格实例和使用说明

    在对接某第三方XX平台时需要对表格传入PDF文件类型.于是自造了一个. Maven使用版本如下: <dependency><groupId>com.itextpdf</g ...

  3. c#--Fleck WebSocket使用 (C#版Websocket实例)

    推荐几篇文章: WebSocket 实战 C#版Websocket实例 C#工作总结(一):Fleck的WebSocket使用 1.服务端代码 using Fleck; using System; u ...

  4. Android App 压力测试 monkeyrunner

    Android App 压力测试 第一部分 背景 1. 为什么要开展压力测试? 2. 什么时候开展压力测试? 第二部分 理论 1. 手工测试场景 2. 自动测试创建 3. Monkey工具 4. AD ...

  5. 线性回归实例-----预测鲍鱼年龄

    预测鲍鱼年龄 前言   线性回归是监督学习的一个方向,用来预测连续的数值型数据.比如房价预测.销量预测等等. 优点:计算简单,易于理解 缺点:只使用与线性数据,对于非线性数据使用非线性回归模型 使用条 ...

  6. android 回归测试,android测试:monkey使用方法

    android测试:monkey使用方法 Android Sdk给我们提供了Monkey和Monkeyrunner这两个自动化测试工具. 一.什么是Monkey Monkey是一个命令行工具,可以运行 ...

  7. Android App专项测试-压力测试篇

    小伙伴们大家好,今天主要分享的主题是Android App专项测试.如何进行Android App专项测试压力测试呢?我们主要通过Android平台的一门工具Monkey.在学习本门课程之前,如果你具 ...

  8. android测试篇(四)android专项测试之压力测试

    前言 抄袭文章来源:Android App专项测试-压力测试篇 小伙伴们大家好,今天主要分享的主题是Android App专项测试.如何进行Android App专项测试压力测试呢?我们主要通过And ...

  9. RocketMQ Topic/Group/Tags介绍

    Topic 功能介绍 Topic是RocketMQ里对消息的一级归类. RocketMQ通过Topic完成消息的发布和订阅.消息生产者将消息发送到Topic中,而消息消费者则通过订阅该Topic来消费 ...

最新文章

  1. 英文谚语:Take that with a grain of salt
  2. zoj4110 Strings in the Pocket(manacher)
  3. SSE3 和 SSSE3 Intrinsics各函数介绍
  4. docker环境给elasticsearch安装ik分词
  5. AliExpress智能营销引擎大揭秘 - AnalyticDB如何做到快准狠省
  6. GhostBSD 19.04 发布,注重安全与稳定性的 FreeBSD 发行版
  7. 【交通标志识别】基于matlab GUI SIFT交通标志识别【含Matlab源码 864期】
  8. 附加SQL2005数据库失败解决方法
  9. kettle入门教程
  10. 隐马尔可夫模型简单理解
  11. Matlab 数据类型
  12. mysql bcnf_bcnf范式
  13. java 比较日期大小(方法之一compare to 备忘)
  14. x265中的lookahead
  15. 模模搭古城搭建学习笔记1:地面、围墙篇
  16. jQuery源码分析系列目录
  17. hadoop性能测试
  18. 婚恋交友网站比相亲更靠谱!幸福婚姻算法了解一下
  19. 详解目标检测的评价指标
  20. 【NLP】中文分词:原理及分词算法

热门文章

  1. 一文详解,jvm内存分代与垃圾回收原理
  2. 淘宝、美团、滴滴分别如何搭建大数据平台?
  3. 我是Redis,MySQL大哥被我害惨了!
  4. 完了!TCP出了大事!
  5. 基于Kubernetes的云平台存储容器化实践
  6. 英语很差,可能不会阻止你成为一名程序员,但一定会限制你成为一名“优秀的”程序员...
  7. 手把手带你剖析 Springboot 启动原理!
  8. 分布式存储 Ceph 介绍及原理架构分享--云平台技术栈系列01
  9. 【双11狂欢的背后】微服务注册中心如何承载大型系统的千万级访问?
  10. 为什么说21世纪是一场ABC的革命?