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
自己试验的大概就这么多,感觉这个工具适合去做一些简单的流程回归