我是靠谱客的博主 冷酷丝袜,这篇文章主要介绍Android自动化测试之Monkey使用Monkey 基本语法:Monkey 参数 Monkey Script,现在分享给大家,希望可以做个参考。

      Mokey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。Monkey测试是一种为了测试软件的稳定性、健壮性的快速有效的方法。当应用程序崩溃(CRUSH)或产生了程序不响应(ANR)的错误时,Monkey将会停止并报错。Monkey 测试的对象仅为应用程序包,测试使用的事件流数据流是随机的,不能进行自定义,但可对测试对象进行事件类型,数量,频率进行设置。

Monkey源码

Monkey 基本语法:

复制代码
1
adb shell monkey [options] <event-count>
options:配置monkey的设置,例如:指定启动哪个包,不指定将会随机启动所有程序。

event-count :让monkey发送事件的次数。


Monkey 参数

1. monkey 发送随机事件简单指令

例如:启动指定的应用程 序,并向其发送100个伪随机事件

adb shell monkey -p your.package.name  -vvv 100 > monkeytest.txt

-v 是信息级别即日志的详细程度,3个v就是输出等级1至3的所有事件




注:获取app包名:

adb shell 进入monkey命令行

logcat | grep START   再点击要测试的app,然后查看cmp= xx.xx.xx/可得到包名

通过ls data/data 可查看Android 设备的所有应用包

关于如何获取APP的包名和启动页Activity 各种方法请参考这篇文章

2. --throttle <millseconds>

   后面跟每次执行事件间隔时间(毫秒)

3. seed参数

       seed的作用,就是建立一个flag,确保每次monkey 命令运行所跑的事件顺序一致,这样若出现问题可以复现。

Monkey的随机操作是基于一个seed 值产生,每一个seed值都会产生唯一的操作序列,只要每次seed值一样,

操作的随机序列也一样。

复制代码
1
2
测试1:adb shell monkey -p com.android.calculator2 -s 100 20 测试2:adb shell monkey -p com.android.calculator2 -s 100 20
两次操作的结果一样。

4. 触摸事件参数--pct-touch

monkey 设定触摸事件百分比

复制代码
1
adb shell monkey --pct-touch <percent> <event-count>

0代表touch事件。


不指定点击事件的百分比



5.动作事件 --pct-motion

复制代码
1
adb shell monkey --pct-touch <percent> <event-count>


6.忽略崩溃异常、超时、许可错误事件

复制代码
1
2
3
adb shell monkey --ignore-crashes <event-count> adb shell monkey --ignore-timeouts <event-count> adb shell monkey --ignore-security-exceptions <event-count>

更多参数应用可见http://www.android-doc.com/tools/help/monkey.html

Monkey Script

通过脚本来实现可重复的固定事件操作

复制代码
1
adb shell monkey -f <scriptfile> <event-count>

Monkey Script 常用API 介绍:

LaunchActivity(pkg_name, cl_name): 启动应用的Activity。参数:包名和启动的Activity,Activity名前用. 连接包名。

DispatchPointer(downtime,eventTime,action,x,y,xpressure,size,metastate,xPrecision,yPrecision,device,edgeFilags)  点击事件。主要是action(0按下,1弹起),x,y (点击控件的坐标)3个参数

Tap(x, y, tapDuration): 模拟一次手指单击事件。参数:x,y为控件坐标,tapDuration为点击的持续时间,此参数可省略。

DispatchPress(keycode) :按下键值,如66回车键

DispatchTrackball: 模拟发送轨迹球事件

DispatchFlip(true/false): 打开或者关闭软键盘。

DispatchString(input):  输入字符串。

UsrWait(sleepTime): 等待时间

ProfileWait():等待5s

LongPress():  长按2秒。

PressAndHold(x, y, pressDuration):  模拟长按事件

编写一个点击浏览器搜索框输入字符串搜索的脚本

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
type=user count=10 speed=1.0 start data>> LaunchActivity(com.Android.browser,com.android.browser.BrowserActivity)//启动APP UserWait(2000) Tap(100,100) //点击搜索输入框 DispatchString(test) //输入搜索字符串 UserWait(1000) DispatchPress(66) //点击回车键搜索 ProfileWait() //等待5s Tap(100,100) //点击搜索输入框 DispatchPress(112) //点击删除清空输入框 UserWait(1000) DispatchPress(KEYCODE_HOME)//退出APP回到主页

保存后push到手机中利用shell monkey 运行脚本

复制代码
1
2
adb push D:test.script /data/local/tmp/ adb monkey shell -f /data/local/tmp/test.script -v 5
复制代码
1
2
3
4
5
6
7
8
9
10
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码

最后

以上就是冷酷丝袜最近收集整理的关于Android自动化测试之Monkey使用Monkey 基本语法:Monkey 参数 Monkey Script的全部内容,更多相关Android自动化测试之Monkey使用Monkey内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(70)

评论列表共有 0 条评论

立即
投稿
返回
顶部