monkey 和monkeyrunner

有空学习了一下monkey 和monkeyrunner ,记录一下学习过程

monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中,我主要试的测试机

特征:

1、 测试的对象仅为应用程序包,有一定的局限性。 
2、 Monky测试使用的事件流数据流是随机的,不能进行自定义。 
3、 可对Test的对象,事件数量,类型,频率等进行设置。

下面主要对我这次测试的命令给以解释。

monkey -p com.***.smarthome --ignore-crashes --ignore-timeouts  --pct-touch 40 -s 1 -v -v --throttle 200 1000  >C:\work\monkey.t

-p 后面跟包名,包名的获取方式:打开该APP ,输入命令:adb shell dumpsys window | findstr mCurrentFocus

--ignore-crashes  应用程序发生崩溃或者异常时不停止,等待事件完成后停止

--ignore-timeout 发生超时异常时继续执行

--pct-touch 调整触摸事件的百分比

-s 伪随机数生成器的seed值。如果用相同的seed值再次运行Monkey,它将生成相同的事件序列

-v 命令行的每一个-v将增加反馈信息的级别

--throttle 在事件之间插入固定延迟(毫秒级)

最后的1000是事件的次数

monkeyrunner r工具提供了一个API,使用此API写出的程序可以在Android代码之外控制Android设备和模拟器

测试类型:

1)多设备控制:monkeyrunner API可以跨多个设备或模拟器实施测试套件

2)功能测试: monkeyrunner可以为一个应用自动贯彻一次功能测试

3)可扩展的自动化:由于monkeyrunner是一个API工具包,您可以基于Python模块和程序开发一整套系统,以此来控制Android设备

结合自己的脚本:

一般情况下需要导入的包:

from com.android.monkeyrunner import MonkeyRunner

from com.android.monkeyrunner import MonkeyDevice

from com.android.monkeyrunner import MonkeyImage

 安装应用 installPackage(pc端存放apk路径)

输入type(string message)

启动应用starActivity(package+'/'+activity)/

点击touch(integer x,integer y, integer type) //type:DOWN,UP,DOWN_AND_UP..

截屏 takeSnapshot()

图像对比sameAs(MonkeyImage other,float percent)//对比的相似度,结果boolean类型

 图像保存writetoFile(string path,string format)

monkeyruner 的运行 直接monkeyrunner c:\***\test.py

 

自己试验的大概就这么多,感觉这个工具适合去做一些简单的流程回归

posted @ 2018-08-22 10:50  前行_fans  阅读(166)  评论(0编辑  收藏  举报