Android Monkey基础测试命令整理
Monkey测试是为了测试软件的稳定性,健壮性,用于进行压力测试等功能。开发人员结合monkey 打印的日志和系统打印的日志,结局测试中出现的问题。Monkey 测试,所有的事件都是随机产生的,不带任何人的主观性。
Monkey是Android系统自带的一款测试工具,它可以来做一些稳定性和随机的测试,monkey是一个命令行工具,它可以运行在任何模拟器实例或设备,它向系统发送伪随机的用户事件流,对被测应用进行压力测试。
monkey在运行时,会生成事件并将它们发送给系统。同时Monkey还会对被测应用进行监控,对下列三种情况做特殊处理:
1如果你有指定monkey运行在一个或多个特定的包,当检测视图跳转到其他包时会进行阻止
2如果您的应用程序崩溃或接收任何类型的未处理的异常,Monkey将停止并报告错误
3 如果您的应用程序生成一个应用程序没有响应错误,monkey将停止并报告错误
1adb shell
2adb devices
adb shell pm list package -f
3adb install 包名.apk
4adb shell monkey -v -p com.geomancyproject 10000 随机模拟10000名用户
5adb shell monkey -v -p com.geomancyproject 50 >D:\log.txt 保存日志
adb shell monkey -pcom.geomancyproject -v -v -v 500
1在运行cmd,中输入adb,即可看看是否配置好,安装好
2.使用adb命令
(1)安装apk,连接手机或者运行模拟器,把APK放到adb.exe同级目录
输入 命令:adb install duomi.apk(随意重命名)
(2)卸载apk获取包名
输入 命令:adb uninstall包名
包名:com.project.li
(3)查看已连接的设备
输入 命令:adb devices
(4)联接设备和取消联接设备
输入 命令:adb connect ip地址
输入 命令:adb disconnect
(5)随机任意测试
输入 命令:adb shell monkey -pcom.project.li -v 100
(6)随机触摸事件
输入 命令:adb shell monkey -p com.project.li 1000 -v -pct -touch
(7)随机事件
输入 命令:adb shell monkey -p com.project.li 5000 -v -pct-touch 30 -v -pct-montion 70
(8) 随机动作事件
输入 命令:Adb shell monkey -pcom.project.li 1000 -v -pct-montion
(9)截图
adb shell /system/bin/screencap -p /sdcard/screenshot.png
adb pull /sdcard/screenshot.png e:\
(10)截log
adb logcat 1>>c:\log.txt
adb的参数理解:
参数很重要,只敲几个命令不重要,得明白一些参数。这样面试的时候,可能会问到一些重要的参数的意义。
1.-p:-p后面跟一个包的包名,比如-p com.yiyixx.demo
如果有多个包名,那每个包名前面都需要一个-p参数
2.- v:-v 是指查看日志的等级
2.1 一个-v 则 代表默认级别,缺省值。示例 adb shell monkey -p com.yiyixx.demo –v 100
仅提供启动提示、测试完成和最终结果等少量信息
2.2两个-v 则 提供较为详细的日志,包括每个发送到Activity的事件信息
2.3三个 -v则说明最详细的日志,包括了测试中选中/未选中的Activity信息
3.-s:-s代表的是随机产生一个seed 值,如果两个 seed值相同的话,则两次输出结果相同
4.-ignore-crash:用于指定当应用程序崩溃时(Force& Close错误),Monkey是否停止运行。如果使用此参数,即使应用程序崩溃,Monkey依然会发送事件,直到事件计数完成。
5.-ignor-timeouts:用于指定当应用程序发生ANR(Application No Responding)错误时,Monkey是否停止运行。如果使用此参数,即使应用程序发生ANR错误,monkey依然会发送事件,直到事件计数完成。
6.-ignor-security-exceptions:用于指定当应用程序发生许可错误时(如证书许可,网络许可等),Monkey是否停止运行。如果使用此参数,即使应用程序发生许可错误,
Monkey依然会发送事件,直到事件计数完成。
7.--kill-process-after-error:用于指定当应用程序发生错误时,是否停止其运行。如果指定此参数,当应用程序发生错误时,应用程序停止运行并保持在当前状态(注意:
应用程序仅是静止在发生错误时的状态,系统并不会结束该应用程序的进程)。
8. --monitor-native-crashes:用于指定是否监视并报告应用程序发生崩溃的本地代码。
9. --pct-{+事件类别}{+事件类别百分比}:用于指定每种类别事件的数目百分比(在Monkey事件序列中,该类事件数目占总事件数目的百分比)
(1)--pct-touch {+百分比}:调整触摸事件的百分比(触摸事件是一个down-up事件,它发生在屏幕上的某单一位置)
adb shell monkey -p com.yiyixx.demo --pct-touch 10 1000
(2)-pct-motion {+百分比}:调整动作事件的百分比(动作事件由屏幕上某处的一个down事件、一系列的伪随机事件和一个up事件组成)adb shell monkey -p
com.yiyixx.demo --pct-motion 20 1000
(3)--pct-trackball {+百分比}:调整轨迹事件的百分比(轨迹事件由一个或几个随机的移动组成,有时还伴随有点击)
adb shell monkey -p com.yiyixx.demo --pct-trackball 30 1000
-(4)-pct-nav {+百分比}:调整“基本”导航事件的百分比(导航事件由来自方向输入设备的up/down/left/right组成)
adb shell monkey -p com.htc.Weather--pct-nav 40 1000
(5)--pct-majornav {+百分比}:调整“主要”导航事件的百分比(这些导航事件通常引发图形界面中的动作,如:5-way键盘的中间按键、回退按键、菜单按键)
adb shell monkey -p com.htc.Weather--pct-majornav 50 1000
(6)-pct-syskeys {+百分比}:调整“系统”按键事件的百分比(这些按键通常被保留,由系统使用,如Home、Back、Start Call、End Call及音量控制键)
adb shell monkey -p com.htc.Weather--pct-syskeys 60 1000
(7)--pct-appswitch {+百分比}:调整启动Activity的百分比。在随机间隔里,Monkey将执行一个startActivity()调用,作为最大程度覆盖包中全部Activity的一种方法
adb shell monkey -p com.htc.Weather--pct-appswitch 70 1000
(8)--pct-anyevent {+百分比}:调整其它类型事件的百分比。它包罗了所有其它类型的事件,如:按键、其它不常用的设备按钮、等等
adb shell monkey -p com.yiyixx.demo
(9)--pct -anyevent 100 1000* 指定多个类型事件的百分比:
adb shell monkey -pcom.yiyixx.demo r--pct-anyevent 50 --pct-appswitch 50 1000
注意:各事件类型的百分比总数不能超过100%;
10.要获取Monkey命令自带的简单帮助,在CMD中执行命令:adb shell monkey –help
命令:
-p 指定运行的应用程序的包名
eg:monkey -v 500 将运行所有的应用程序
monkey -p com.when.coco -p com.example.hello -v 500 只运行指定的两个应用程序
-v 指定反馈信息的级别,有三个级别(详细程度)
level 1: adb shell monkey -p packagename -v 500
level 2: adb shell monkey -p packagename -v -v 500
level 3: adb shell monkey -p packagename -v -v -v 500
-s 指定随机序列生成的值,可以保证测试所产生的随机序列相同
adb shell monkey -p packagename -v 500
--throttle(毫秒)指定操作间的时延
adb shell monkey -p com.geomancyproject --throttle -v 10000
--ignore-crashes 指定程序奔溃时,继续发送monkey命令直至时间数目达到指定数目
adb shell monkey -p com.geomancyproject --ignore-crashes -v 500
--ignore-timeouts 指定应用程序发生ANR错误时(application no responding)继续运行monkey,直到事情计数结束
adb shell monkey -p com.geomancyproject --ignore-timeouts -v 500
--ignore-security-exceptions 指定应用程序发生许可错误(证书许可,网络许可)继续发送monkey命令,直到计数结束
adb shell monkey -p packagename --ignore-timeouts -v 500
--kill-process-after-error 指定应用程序发生错误时,应用程序停止保持在当前错误的状态
一共有9个事件:
--pct {事件类型} {事件百分比}:
触摸事件百分比:--pct-touch 20(表示触摸事件为20%) --0
动作事件百分比:--pct-motion --1
轨迹事件百分比:--pct-trackball --2
基本导航事件百分比:--pct-nav --3
主要导航事件的百分比:--pct-majornav --4
系统按键事件:-pct-syskeys --5
启动事件:-pct-appswitch --6
键盘翻转事件:--pct-file --7
其他事件的百分比:--pct-anyevent 100 --8
adb shell monkey --pct-anyevent 50 -pct-appswitch 50 -v 500
1、monkey -p com.you rpackage -v 500 简单的输出测试的信息。
2、adb shell monkey -pcom.geomancyproject -v -v -v 500 以深度为三级输出测试信息。
3、monkey -p com.geomancyproject --port 端口号 -v 为测试分配一个专用的端口号,不过这个命令只能输出跳转的信息及有错误时输出信息。
4、adb shell monkey -p com.geomancyprojecte -s 数字 -v 500 为随机数的事件序列定一个值,若出现问题下次可以重复同样的系列进行排错。
adb shell monkey -p com.geomancyprojecte -s1000 -v 500
5、monkey -p com.yourpackage -v --throttle 3000 500 为每一次执行一次有效的事件后休眠3000毫秒