作者:梦晗明镜百_576 | 来源:互联网 | 2023-09-06 11:15
一、Monkey测试简介Monkey测试是Android平台自动化测试的一种手段,通过Monkey程序模拟用户触摸屏幕、滑动Trackball、按键等操作来对设备上的
一、Monkey测试简介 Monkey测试是Android平台自动化测试的一种手段&#xff0c;通过Monkey程序模拟用户触摸屏幕、滑动Trackball、按键等操作来对设备上的程序进行压力测试&#xff0c;检测程序多久的时间会发生异常。 二、Monkey程序介绍 1) Monkey程序由Android系统自带&#xff0c;使用Java语言写成&#xff0c;在Android文件系统中的存放路径是&#xff1a;/system/framework/monkey.jar&#xff1b; 2) Monkey.jar程序是由一个名为“monkey”的Shell脚本来启动执行&#xff0c;shell脚本在Android文件系统中的存放路径 是&#xff1a;/system/bin/monkey&#xff1b;这样就可以通过在CMD窗口中执行: adb shell monkey &#xff5b;&#43;命令参数&#xff5d;来进行Monkey测试了。 三、Monkey命令的简单帮助 要获取Monkey命令自带的简单帮助&#xff0c;在CMD中执行命令&#xff1a; adb shell monkey –help 四、Monkey命令参数介绍&#xff08;觉得看字麻烦的话&#xff0c;文章最后又图片&#xff0c;可以保存到本地方便查看&#xff0c;其实-help更好&#xff09; 1) 参数&#xff1a; -p 参数-p用于约束限制&#xff0c;用此参数指定一个或多个包&#xff08;Package&#xff0c;即App&#xff09;。指定 包之后&#xff0c;Monkey将只允许系统启动指定的APP。如果不指定包&#xff0c;Monkey将允许系统启动设备中的所有APP。 * 指定一个包&#xff1a; adb shell monkey -p com.htc.Weather 100 说明&#xff1a;com.htc.Weather为包名&#xff0c;100是事件计数&#xff08;即让Monkey程序模拟100次随机用户事件&#xff09;。 * 指定多个包&#xff1a;adb shell monkey -p com.htc.Weather –p com.htc.pdfreader -p com.htc.photo.widgets 100 * 不指定包&#xff1a;adb shell monkey 100 说明&#xff1a;Monkey随机启动APP并发送100个随机事件。 * 要查看设备中所有的包&#xff0c;在CMD窗口中执行以下命令&#xff1a; >adb shell #cd data/data #ls 2) 参数: -v 用于指定反馈信息级别&#xff08;信息级别就是日志的详细程度&#xff09;&#xff0c;总共分3个级别&#xff0c;分别对应的参数如下表所示&#xff1a; 日志级别 Level 0 示例 adb shell monkey -p com.htc.Weather –v 100 说明 缺省值&#xff0c;仅提供启动提示、测试完成和最终结果等少量信息 日志级别 Level 1 示例 adb shell monkey -p com.htc.Weather –v -v 100 说明 提供较为详细的日志&#xff0c;包括每个发送到Activity的事件信息 日志级别 Level 2 示例 adb shell monkey -p com.htc.Weather –v -v –v 100 说明 最详细的日志&#xff0c;包括了测试中选中/未选中的Activity信息 3)参数&#xff1a; -s 用于指定伪随机数生成器的seed值&#xff0c;如果seed相同&#xff0c;则两次Monkey测试所产生的事件序列也相同的。 * 示例&#xff1a; Monkey测试1&#xff1a;adb shell monkey -p com.htc.Weather –s 10 100 Monkey 测试2&#xff1a;adb shell monkey -p com.htc.Weather –s 10 100 两次测试的效果是相同的&#xff0c;因为模拟的用户操作序列&#xff08;每次操作按照一定的先后顺序所组成的一系列操作&#xff0c;即一个序列&#xff09;是一样的。操作序列虽 然是随机生成的&#xff0c;但是只要我们指定了相同的Seed值&#xff0c;就可以保证两次测试产生的随机操作序列是完全相同的&#xff0c;所以这个操作序列伪随机的&#xff1b; 4) 参数&#xff1a; --throttle <毫秒> 用于指定用户操作&#xff08;即事件&#xff09;间的时延&#xff0c;单位是毫秒&#xff1b; * 示例&#xff1a;adb shell monkey -p com.htc.Weather –throttle 3000 100 5) 参数&#xff1a; --ignore-crashes 用于指定当应用程序崩溃时&#xff08;Force & Close错误&#xff09;&#xff0c;Monkey是否停止运行。如果使用此参数&#xff0c;即使应用程序崩溃&#xff0c;Monkey依然会发送事件&#xff0c;直到事件计数完成。 * 示例1&#xff1a;adb shell monkey -p com.htc.Weather --ignore-crashes 1000 测试过程中即使Weather程序崩溃&#xff0c;Monkey依然会继续发送事件直到事件数目达到1000为止&#xff1b; * 示例2&#xff1a;adb shell monkey -p com.htc.Weather 1000 测试过程中&#xff0c;如果Weather程序崩溃&#xff0c;Monkey将会停止运行。 6) 参数&#xff1a; --ignore-timeouts 用于指定当应用程序发生ANR&#xff08;Application No Responding&#xff09;错误时&#xff0c;Monkey是否停止运行。如果使用此参数&#xff0c;即使应用程序发生ANR错误&#xff0c;Monkey依然会发送事件&#xff0c;直到事件计数完成。 7) 参数&#xff1a; --ignore-security-exceptions 用于指定当应用程序发生许可错误时&#xff08;如证书许可&#xff0c;网络许可等&#xff09;&#xff0c;Monkey是否停止运行。如果使用此参数&#xff0c;即使应用程序发生许可错误&#xff0c;Monkey依然会发送事件&#xff0c;直到事件计数完成。 8) 参数&#xff1a; --kill-process-after-error 用于指定当应用程序发生错误时&#xff0c;是否停止其运行。如果指定此参数&#xff0c;当应用程序发生错误时&#xff0c;应用程序停止运行并保持在当前状态&#xff08;注意&#xff1a;应用程序仅是静止在发生错误时的状态&#xff0c;系统并不会结束该应用程序的进程&#xff09;。 9) 参数&#xff1a; --monitor-native-crashes 用于指定是否监视并报告应用程序发生崩溃的本地代码。 10) 参数&#xff1a; --pct-&#xff5b;&#43;事件类别&#xff5d; &#xff5b;&#43;事件类别百分比&#xff5d; 用于指定每种类别事件的数目百分比&#xff08;在Monkey事件序列中&#xff0c;该类事件数目占总事件数目的百分比&#xff09; 参数: 使用说明: 示例: --pct-touch &#xff5b;&#43;百分比&#xff5d; 调整触摸事件的百分比(触摸事件是一个down-up事件&#xff0c;它发生在屏幕上的某单一位置) adb shell monkey -p com.htc.Weather --pct-touch 10 1000 --pct-motion &#xff5b;&#43;百分比&#xff5d; 调整动作事件的百分比(动作事件由屏幕上某处的一个down事件、一系列的伪随机事件和一个up事件组成)adb shell monkey -p com.htc.Weather --pct-motion 20 1000 --pct-trackball &#xff5b;&#43;百分比&#xff5d; 调整轨迹事件的百分比(轨迹事件由一个或几个随机的移动组成&#xff0c;有时还伴随有点击) adb shell monkey -p com.htc.Weather --pct-trackball 30 1000 --pct-nav &#xff5b;&#43;百分比&#xff5d; 调整“基本”导航事件的百分比(导航事件由来自方向输入设备的up/down/left/right组成) adb shell monkey -p com.htc.Weather --pct-nav 40 1000 --pct-majornav &#xff5b;&#43;百分比&#xff5d; 调整“主要”导航事件的百分比(这些导航事件通常引发图形界面中的动作&#xff0c;如&#xff1a;5-way键盘的中间按键、回退按键、菜单按键) adb shell monkey -p com.htc.Weather --pct-majornav 50 1000 --pct-syskeys &#xff5b;&#43;百分比&#xff5d; 调整“系统”按键事件的百分比(这些按键通常被保留&#xff0c;由系统使用&#xff0c;如Home、Back、Start Call、End Call及音量控制键) adb shell monkey -p com.htc.Weather --pct-syskeys 60 1000 --pct-appswitch &#xff5b;&#43;百分比&#xff5d; 调整启动Activity的百分比。在随机间隔里&#xff0c;Monkey将执行一个startActivity()调用&#xff0c;作为最大程度覆盖包中全部Activity的一种方法 adb shell monkey -p com.htc.Weather --pct-appswitch 70 1000 --pct-anyevent &#xff5b;&#43;百分比&#xff5d; 调整其它类型事件的百分比。它包罗了所有其它类型的事件&#xff0c;如&#xff1a;按键、其它不常用的设备按钮、等等 adb shell monkey -p com.htc.Weather --pct -anyevent 100 1000
指定多个类型事件的百分比&#xff1a;
adb shell monkey -p com.htc.Weather --pct-anyevent 50 --pct-appswitch 50 1000 注意&#xff1a;各事件类型的百分比总数不能超过100%
指定LOG的存储路径
>/data/local/tmp/a.txt
1> 指标准信息输出路径&#xff08;也就是默认的输出方式&#xff09;
2> 指错误信息输出路径
2>&1 指将错误信息输出路径指定为标准信息输出路径&#xff08;也就是都输出在一起&#xff09; 如
>/data/local/tmp/a.txt 2>&1 的意思就是都输出到a.txt
要让程序在后台运行,加上 &就可以了