zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Codeforces Round #369 (Div. 2)
    poj3189二分图多重匹配
    a 标签传值
    phpStudy 虚拟主机
    wampserver 虚拟主机
    $file函数
    PHP脚本运行时间
    查询timestamp类型数据
    驼峰法
    easyUI导出数据
  • 原文地址:https://www.cnblogs.com/ydnice/p/10032708.html
Copyright © 2011-2022 走看看