ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Monkey APP压力稳定性测试

2020-03-26 13:05:56  阅读:335  来源: 互联网

标签:shell acg Monkey APP adb 测试 monkey


一、monkey 的使用场景

  Monkey 测试是 Android 平台自动化测试的一种手段,通过Monkey程序模拟用户触摸屏幕、滑动Trackball(轨迹球)、按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常

用来做什么的

  • 压力稳定性测试
  • 做自动化测试
  • Monkey 主要用于Android 的压力测试 自动的一个压力测试小工具, 主要目的就是为了测试app 是否会Crash(崩溃)

monkey什么时候用?

  • 等你们的产品稳定,没有特别多的bug时候,一般会用monkey去测试
  • 测应用的稳定性、健壮性(是否会发生闪退、崩溃) ; 整机测试

app会出现哪些异常

  • 崩溃、闪退、ANR

二、monkey 测试步骤

  • 1、启动安卓模拟器/真机,怎么连接真机需要开启开发者模式,百度下很简单
  • 2、点击运行 -- 输入cmd --- 进入命令行界面
  • 3、查看设备连接情况:adb devices
    • 夜神模拟器默认端口 62001  
    • adb connect 127.0.0.1:62001 
  • 链接手机的状态下,在命令行界面输入monkey 命令测试APP
    • adb shell monkey -p com.lemon.lemonban --ignore-crashes --ignore-timeouts --throttle 400 -v -v -v -s 3500 10000 > D:\monkey_log.txt  
    • 命令主要意思:指定安装包名、忽略崩溃、忽略超时、时间间隔、执行100000次、指定日志输出到本地  
  • 如果Monkey需要指定设备,基本语法如下:
    • $ adb -S [device] shell monkey [options]  

三、怎么获取APP的包名

  在测试过程中我们需要 APP 包名来测试是否会出现崩溃的情况 

1、真机或模拟器与电脑链接

2、真机或模拟器打开APP应用

3、输入获取当前开启应用的包名,命令:

  • Android 8.0以下输入命令:
    • adb shell dumpsys activity I find "mFocusedActivity"  
  • Android 8.0 或以上版本命令:
    • adb shell dumpsys activity | find "mResumedActivity"  

四、monkey 命令

1.money 执行次数

一般小项目十万次,大项目一百万次

2.测试APP主要命令:

  • adb shell monkey -p com. lemon.lemonban --ignore-crashes --ignore-timeouts --throttle 400 -v -v -v -s 3500 10000 > D:\monkey_log.txt
    • 命令解释:指定安装包名、忽略崩溃、忽略超时、时间间隔、执行100000次、指定日志输出到本地

 

 

 

3.各字段解释

-p

  • 用于约束限制,用此参数指定一个或多个包(Package,即App)。指定包之后,monkey将只允许系统启动指定的APP,如果不指定包,将允许系统启动设备中的所有APP.
  • 指定一个包: adb shell monkey -p tv.danmaku.bili 10
  • 指定多个包:adb shell monkey -p cn.emoney.acg –p cn.emoney.wea -p cn.emoney.acg 100
  • 不指定 -p 包名:adb shell monkey 100
    • 不指定包名,会随机指定手机中的安装包,对整个系统进行monkey 测试  
  • com.tencent.edu为包名, 100是事件计数(即让Monkey程序模拟1000次随机用户事件)

--ignore-crashes

  • 忽略崩溃
    • 用于指定当应用程序崩溃时(Force& Close错误),Monkey是否停止运行。如果使用此参数,即使应用程序崩溃,Monkey依然会发送事件,直到事件计数完成。
      • 因为Monke执行的时候如果碰到了App崩溃的问题,默认停止运行,所以需要忽略崩溃
  • 命令
    • adb shell monkey -p cn.emoney.acg --ignore-crashes 1000
      • 测试过程中即使 acg 程序崩溃,Monkey依然会继续发送事件直到事件数目达到1000为止
    • adb shell monkey -p cn.emoney.acg 1000
      • 测试过程中,如果acg程序崩溃,Monkey将会停止运行

 

--ignore-timeouts

  • 忽略超时
    • 用于指定当应用程序发生ANR(Application No Responding)错误时,Monkey是否停止运行。如果使用此参数,即使应用程序发生ANR错误,Monkey依然会发送事件,直到事件计数完成。  
  • 命令
    • adb shellmonkey -p cn.emoney.acg --ignore-timeouts 1000  

 

--throttle <毫秒>

  • 用于指定用户操作(即事件)间的延迟,单位是毫秒;指定事件之间的时间间隔  
  • 命令
    • adb shell monkey -p cn.emoney.acg –throttle 5000 100

 

-v

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

  • 日志级别 Level0  
    • 示例:adb shell monkey -p cn.emoney.acg –v 100  
    • 说明 缺省值,仅提供启动提示、测试完成和最终结果等少量信息  
  • 日志级别 Level 1  
    • 示例:adb shell monkey -p cn.emoney.acg –v -v 100  
    • 说明 提供较为详细的日志,包括每个发送到Activity的事件信息      
  • 日志级别 Level 2:一般使用这个    
    • 示例:adb shell monkey -p cn.emoney.acg –v -v –v 100      
    • 说明 最详细的日志,包括了测试中选中/未选中的Activity信息

 

-s

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

命令

  • Monkey 测试1:adb shell monkey -p cn.emoney.acg –s 10 100
  • Monkey 测试2:adb shell monkey -p cn.emoney.acg –s 10 100
  • 10 是-s的伪随机数,100是事件数

说明

  • 两次测试的效果是相同的,因为模拟的用户操作序列
  • (每次操作按照一定的先后顺序所组成的一系列操作,即一个序列)是一-样的。
  • 操作序列虽然是随机生成的,但是只要我们指定了相同的Seed值,
  • 就可以保证两次测试产生的随机操作序列是完全相同的,所以这个操作序列伪随机的;

 

--ignore-security-exceptions

忽略许可异常

  • 用于指定当应用程序发生许可错误时(如证书许可,网络许可等),Monkey是否停止运行。如果使用此参数,即使应用程序发生许可错误,Monkey依然会发送事件,直到事件计数完成。

命令

  • adb shell monkey -p cn.emoney.acg --ignore-security-exception 1000

 

--randomize-throttle

事件之间增加延迟

在事件之间插入随机延迟,随机延迟范围为0到throttle设置的时间,单位为毫秒

如果使用随机延迟,一定要加上固定延迟--throttle <毫秒>

adb shell monkey -p com.lemon.lemonban --throttle 5000 --randomize-throttle 100

说明:执行一百次monkey随机事件 ,每次事件的间隔在0到5000毫秒之间不固定

 

--pkg-whitelist-file

意思

白名单,后面接TXT文件

1 )第一步把你设置的白名单的包名写到一-个txt文档里面,记得路径和文档名字都是英文!

D:whitelist.txt

2 )把这个文件拉到我们的安卓机中去,放到

/data/local/tmp/ 下面

拉取文件到手机

adb push D:\whitelist.txt /data/local/tmp/

注意这两个反斜杠

命令

adb shell monkey --pkg-whitelist-file /data/local/tmp/whitelist.txt 100

 

 

--pkg--blacklist-file

意思

黑名单,后面接txt文件

拉取文件到手机

adb push D:\blacklist.txt /data/local/tmp/

注意这两个反斜杠

命令

adb shell monkey --pkg-blacklist-file /data/local/tmp/blacklist.txt 100

 

标签:shell,acg,Monkey,APP,adb,测试,monkey
来源: https://www.cnblogs.com/shouhu/p/12573695.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有