【03】App自动化-monkey和monkeyrunner简介
一、monkey简介
1、启动monkey:
adb shell
cd /system/bin
monkey
2、强制关闭monkey
adb shell ps 查看全部在运行进程
查出com.android.commands.monkey进程pid
adb shell kill pid 杀掉monkey进程
3、操作事件简介
-f 测试脚本名运行
-s 随机运行
--throttle 指令间固定时间间隔
--ptc -touch 触摸事件百分比
--ptc -motion 动作事件百分比
--ptc -trackball 轨迹球事件百分比
--ptc -nav 基本导航事件百分比
--ptc -majornav 主要导航事件百分比
--ptc -syskeys 系统按键事件百分比
--ptc -appswitch 应用启动事件百分比
--ptc -anyevent 其他事件百分比
--ignore -crashe 在应用程序崩溃后继续发送事件
--ignore -timeouts 在任何超时错误发生后继续发送事件
--ignore -security -exceptions 在应用程序权限发生错误后继续发送事件
4、monkey随机性测试
adb shell monkey -p com.tai.kaoyan #-p指定包名 --ptc -touch 40 --ptc -motion 25 #触摸事件,手势事件百分比 --ptc -appswitch 10 #覆盖尽可能多的activity --pct -ratation 5 #调转横竖屏 -s 1666 --throttle 400 #-s 指定事件流便于复现问题 --throttle 每个操作之间的间隔时长 --ignore -crashes --ignore - timeout #遇到意外或超时时能调转并在日志中记录 -v -v 200 1>d:monkey.log 2>d:error.log #随机运行200次 详细记录日志,正确写到monkey,错误写到error
5、monkey自定义脚本稳定性测试
type = raw events count = 1 speed =1.0 start data>> launchActivity(com.tail.kaoyan , com.tail.kaoyan.ul.activity.splashActivity) #获取包的Activity:aapt dump badging 包名 |findstr launchable -activity userWait(2000) #等待2秒 Tap(624.900.1000) #点击确认 此时坐标通过设置中的指针获取 Tap(217.358.1000) #点击用户名输入框 DispatchString(1258478) #输入字符串 userWait(2000) #等待2秒
脚本编写完成后,传到手机设备上,然后执行
adb push 脚本路径\名称 手机地址
adb shell monkeys -f 脚本 -v -v 200 1>d:monkey.log 2>d:error.log
二、monkeyrunner简介
1、monkeyrunner环境搭建:
①、安装并配置好jdk环境
②、安装android sdk
③、安装python安装配置校验
④、monkeyrunner环境变量配置
2、aapt 命令查看apk包名、主activity等信息
cmd进入这个文件夹,执行aapt dump badging C:\\zhihu.apk >1.log,在对应的目录下分别搜索package和activity即可
3、monkeyrunner脚本
# coding:utf-8 import sys from com.android.monkeyrunner import MonkeyRunner as mr from com.android.monkeyrunner import MonkeyDevice as md from com.android.monkeyrunner import MonkeyImage as mi #链接设备 device =mr.waitForConnection('H8U4C16B08001830') device.installPackage(r'C:\Users\lenovo\Desktop\123\zhihu.apk') ''' 获取apk的包名和activity名: 在电脑的sdk的build-tools的版本目录下输入aapt dump badging C:\\zhihu.apk >1.log, 在对应的目录下分别搜索package和activity即可 ''' package = 'com.zhihu.android' activity ='com.zhihu.android.app.ui.activity.LauncherActivity' runComponent =package+'/'+activity #启动设备 device.startActivity(component=runComponent) mr.sleep(1) #点击搜索框 device.touch(340,718,'DOWN_AND_UP') mr.sleep(1) #输入查询内容 device.touch(237,469,'DOWN_AND_UP') device.type('我是谁') mr.sleep(1) #回车 device.press('KEYCODE_ENTER','DOWN_AND_UP') mr.sleep(1) #截图并保存 screenshot=device.taskeSnapshot() screenshot.writeToFile(r'c:\\1.png','png')
4、运行脚本
将要执行的文件,即monkeyscript.py文件存放到monkeyrunner存在的Android-SDK的tools文件下
执行cmd命令:monkeyrunner monkeyscript.py,即可