Monkey Testing on Android

Docs:

https://developer.android.com/studio/test/monkey

Environment

  • Android Studio ( Android SDK )

(MAC)ADB: /Users/dev/Library/Android/sdk/platform-tools/adb
Confirm PATH setting: .bash_profile (mac) / EnvironmentVariable (windows)

Command

Connect device

adb devices

Get the package name / activity

adb shell pm list packages
aapt dump xmltree xxx.apk AndroidManifest.xml

Run Monkey

adb shell monkey -p asia.diningcity.android --ignore-crashes --ignore-timeouts --kill-process-after-error --pct-touch 30 --pct-motion 20 --pct-syskeys 0 --pct-anyevent 0 -v -v -v --throttle 500 86400 > /Users/dev/Developer/Testing/MonkeyTestResult/20190119.txt

Get log

adb logcat -v ‘*:E’ > /Users/dev/Developer/Testing/MonkeyTestResult/logcat_20190119.txt

Example

Monkey Testing on Android

Command

-p 包名:指定应用程序。例如:adb shell monkey -p 包名 事件总数
-v:打印log级别,-v越多日志信息越详细,最多支持3个。例如:adb shell monkey -p 包名 -v -v -v 事件总数
-s:伪随机数生成器的 seed 值,通俗的说就是个标记,后面跟数字,例如:执行adb shell monkey -s 1 -p 包名 事件总数,这个我标记了-s 1,命令操作完之后,我发现有日志报错,我想重新执行这个monkey操作,那你就可以继续执行这个命令,排错时常用。
-f:后接测试脚本名,例如:adb shell monkey -f 脚本名 事件总数
–throttle:翻译减速的意思,后面接时间,单位为ms,,表示事件之间的固定延迟,如果不接该项,monkey将不会延迟,例如:adb shell monkey --throttle 500 -p 包名 事件总数
–pct-事件类别 11个事件百分比控制(有的是9种事件,没有–pct-pinchzoom,–pct-rotation事件)由安卓SDK决定
11种事件,按顺序罗列的
–pct-touch {+百分比}:0
翻译触摸,触摸事件泛指发生在某一位置的一个down-up事件,点击
–pct-motion {+百分比}:1
翻译动作,动作事件泛指从某一位置接下(即down事件)后经过一系列伪随机事件后弹出(即up事件)
–pct-pinchzoom {+百分比}:2
翻译二指缩放,智能机上的放大缩小手势操作事件
–pct-trackball {+百分比}: 3
翻译轨迹,轨迹事件包括一系列的随机移动,以及偶尔跟随在移动后面的点击事件
–pct-rotation {+百分比}:4
翻译屏幕旋转,横屏竖屏事件
–pct-nav {+百分比}:5
翻译基本导航,基本导航事件主要来自方向输入设备的上、下、左、右事件
–pct-majornav {+百分比}:6
翻译主要导航,主要导航事件通常指引发图形界面的一些动作,如键盘中间按键、返回按键、菜单按键等
–pct-syskeys {+百分比}:7
翻译系统按键,系统按键事件通常指仅供系统使用的保留按键,如HOME键、BACK键、拨号键、挂断键、音量键等
–pct-appswitch {+百分比}:8
翻译应用启动,应用启动事件(activity launches)即打开应用,通过调用startActivity()方法最大限度地开启该package下的所有应用
–pct-flip {+百分比}:9
翻译翻转,键盘轻弹百分比,如点击输入框,键盘弹起,点击输入框以外区域,键盘收回
–pct-anyevent {+百分比}:10
翻译其他类型,其他类型事件指上文中未涉及的所有其他事件,如keypress、不常用的button等

上一篇:你需要知道的软件测试类型和常识testing【经典长文】


下一篇:使用变形测试测(metamorphic testing)试您的机器学习算法