【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:UserslenovoDesktop123zhihu.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,即可

原文地址:https://www.cnblogs.com/qingbaobei7370/p/12377976.html