最近一直在看关于自动化测试的文章和工具,这是之前学习monkey的一些知识,想总结一下,方便以后查看,当然也可以提供一些参考。monkey 适合做压力测试,我们可以发送命令让它自己运行,并且指定运行动作的次数,下面这些是我总结的命令行:
1、有多台设备连接时,指定一个设备:
adb -s devicesname shell
2、重启abd.exe:adb start-server
3、结束adb:adb kill-sever
4、安装:adb install c:/xxx.apk
5、卸载:adb uninstall apk
使用adb查看连接的设备:adb devices
进入shell:adb shell
查看所有可以使用monkey的应用程序包:ls data/data
对某一应用程序包进行monkey测试:monkey -p packagename -v 500(表示500次随机事件流)
将monkey运行的日志重定向到log.txt中:
在cmd命令行中输入:adb shell monkey -p packagename -v 500 文件所在位置(D:/log.txt)
命令:
-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 packagename --throttle -v 500
--ignore-crashes 指定程序奔溃时,继续发送monkey命令直至时间数目达到指定数目
adb shell monkey -p packagename --ignore-crashes -v 500
--ignore-timeouts 指定应用程序发生ANR错误时(application no responding)继续运行monkey,直到事情计数结束
adb shell monkey -p packagename --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-flip --7
其他事件的百分比:--pct-anyevent 100 --8
adb shell monkey --pct-anyevent 50 -pct-appswitch 50 -v 500
1、monkey -p com.yourpackage -v 500 简单的输出测试的信息。
2、monkey -p com.yourpackage -v -v -v 500 以深度为三级输出测试信息。
3、monkey -p com.yourpackage --port 端口号 -v 为测试分配一个专用的端口号,不过这个命令只能输出跳转的信息及有错误时输出信息。
4、monkey -p com.yourpackage -s 数字 -v 500 为随机数的事件序列定一个值,若出现问题下次可以重复同样的系列进行排错。
5、monkey -p com.yourpackage -v --throttle 3000 500 为每一次执行一次有效的事件后休眠3000毫秒。
在此之前需要配置好环境,SDK的环境!!!
1、运行环境要求
1)Java SDK,AndroidSDK,配置adb
2、mac系统安装adb(安装Android-platform-tools)
1)brew tap caskroom/cask
2)brew cask install android-platform-tools
4、mankey脚本
adb shell monkey -p com.xxx.xxx(被测应用包名) --pct-touch 30 --pct-motion 30 --pct-nav 10 --pct-majornav 15 --pct-appswitch 10 --pct-anyevent 5 --pct-trackball 0 --pct-syskeys 0 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --monitor-native-crashes --throttle 200(每个时间之间的间隔,单位ms) -s 123456 -v 6000(monkey事件的次数) >~/Downloads/crash.txt