Mac走moneky

别人分享:

1. Monkey工具介绍:

  • Monkey是Google提供的一个命令行工具,可运行在模拟器或实际设备中。可用于模拟用户的按键输入、触摸屏输入、手势输入等,以实现对应用程序的压力测试,看设备多久会出现异常,并观察系统的稳定性和容错性能。

2. Monkey测试环境准备:

  • 安装JDK,并配置环境变量
  1. open -e .bash_profile
  2. 保存:export JAVA_HOME=/library/java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home
  • 安装Android SDK,并配置环境变量
  1. export PATH=${PATH}:/Users/yangdan/Documents/yangdan/android-sdk-macosx/platform-tools
  2. export PATH=${PATH}:/Users/yangdan/Documents/yangdan/android-sdk-macosx/tools
  • 更新刚刚配置的环境变量:source .bash_profile

3. Monkey详细介绍

  • Monkey程序由Android系统自带,使用Java语言写成,在Android文件系统中的存放路 径是:/system/framework/monkey.jar; 
  • Monkey.jar程序是由一个名为“monkey”的Shell脚本来启动执行,shell脚本在Android文件系统中的存放路径是:/system/bin/monkey;
  • Monkey 命令启动方式:  
  1. 直接PC启动: adb shell monkey {+命令参数}来进行Monkey测试
  2. shell端启动:adb shell 进入Android系统,通过执行monkey{+命令参数}来进行Monkey测试

4. Monkey压力测试参数

  •  -V

用于指定反馈信息级别(信息级别就是日志的详细程度),总共分3个级别,分别对应的参数如下表所示:

Level 0: adb shell monkey -p com.yuantiku.tutor -v 100 

Level 1: adb shell monkey -p com.yuantiku.tutor -v  -v 100

Level 2: adb shell monkey -p com.yuantiku.tutor -v  -v  -v 100

  • -S

用于指定伪随机数生成器的seed值,如果seed相同,则两次Monkey测试所产生的事件序列也相同的。 

示例:

 monkey测试1:adb shell monkey -p com.taobao.com –s 10 100

 monkey测试2:adb shell monkey -p com.aobao.com –s 10 100

  • --throttle

用于指定用户操作(即事件)间的时延,单位是毫秒;如果不指定这个参数,monkey会尽可能快的生成和发送消息。

示例:adb shell monkey -p com.yuantiku.tutor --throttle 3000 100

 

停止monkey进程:

 

获取monkey进程:adb shell ps |grep monkey 

杀死进程:adb shell kill id 

  • -P

用此参数指定一个或多个包。指定包之后,monkey将只允许系统启动指定的app。如果不指定包,monkey将允许系统启动设备中的所有app。

 

指定一个包:adb shell monkey -p com.yuanntiku.tutor 100  

5. Monkey的压力测试

apk包名查看:

  • 手机中安装apk包名查看器
  • 源码下的AndroidManifest.xml文件查看
  • aapt命令查看
  • adb logcat抓取当前Android机运行的app的包名( I/ActivityManager(数字): Displayed 包名/类名: +ms )

6. Monkey的结果与日志分析

Monkey测试结果分析:

  • 看Monkey的日志(注意第一个switch以及异常信息等
  1. 程序无响应的问题:在日志中搜索“ANR”
  2. 崩溃问题:在日志中搜索“Exception”或“CRASH”
  • 查看Monkey里面出错前的一些事件动作,并手动执行该动作
  • 若以上两个步骤还不能找出,可以使用之前执行的monkey命令再执行一遍,注意seed值要一样

如果Monkey测试顺利执行完成,在log的最后,会打印出当前执行事件的次数和所花费的时间;// Monkey finished代表执行完成。

Monkey执行中断,在log的最后也能查看到当前已执行的次数。

7. Monkey script 的脚本制作

Monkey script是按照一定的语法规则编写有序的用户事件流并适用于monkey命令工具的脚本。

脚本制作完毕后放入手机的sdcard目录下 

adb push monkey.script /sdcard/

运行命令 adb shell monkey –f/sdcard/”脚本”运行次数。

结合monkey的–v和--hprof参数,输出日志和性能报告。 

例:

adb shell monkey --hprof -f/sdcard/monkey.script -v 1

8. monkey script的脚本命令

  • start data>>

     将控制monkey的一些参数设置和具体的monkey命令分隔开来

     例如:

     #控制monkey发送消息的一些参数

     count=10

     speed=1.0

     start data>>

     #monkey命令

  •   LaunchAcitivity(pkg_name, cl_name)

    

      命令用于启动任意应用的一个活动(界面)

     pkg_name, 要启动的应用包名

     cl_name, 要打开的活动的类名

 

  •   Tap(x,y) 

     x: 横坐标

     y:纵坐标

9. monkey script 的脚本制作模板

count = 1        //下面这个count选项,monkey并没有用到,可以忽略它

 

speed = 1.0    //speed 选项是用来调整两次按键的发送濒率的

 

start data >>   // “start data >>”是有大小写敏感的,而且单词间的间隔只用有一个空格!

 

LaunchActivity(com.yuantiku.tutor,com.yuanfudao.tutor.activity.HomeActivity)  //# Activity值可以通过aapt命令查看,

  

Tap(123,4343)

 

UserWait(5000)  //停顿时间

 

DispatchPress (KEYCODE_BACK)  //文字输入 monkey只识别英文和数字输入

10. monkey script的脚本取坐标点

  • 取坐标点,选择手机中的开发人员选项,打开“显示指针位置”
  • Monkeyrunner录取坐标

1. 安装卸载apk

① 安装apk:下载apk到电脑 ,adb install -r 拖动apk

adb install /Users/yangdan/Downloads/tutor-6.18.0.apk 

②卸载apk:adb unstall 包名

adb uninstall com.yuantiku.tutor

2. 查看apk的包名:

adb shell pm list package -3

3. 知道手机中的包名,还想知道其他的信息,使用

adb shell dumpsys package com.yuantiku.tutor

4. 输出日志到电脑:

adb shell monkey -p com.yuantiku.tutor -v 100 >/Users/yangdan/Documents/yangdan/monkey.txt

原文地址:https://www.cnblogs.com/ydnice/p/10032708.html