如何利用monkey进行手机app测试?

如何利用monkey进行手机app测试?,第1张

 一、简介

Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。Monkey包括许多选项,它们大致分为四大类:

基本配置选项,如设置尝试的事件数量

运行约束选项,如设置只对单独的一个包进行测试

事件类型和频率

调试选项

在Monkey运行的时候,它生成事件,并把它们发给系统。同时,Monkey还对测试中的系统进行监测,对下列三种情况进行特殊处理(自动停止):

如果限定了Monkey运行在一个或几个特定的包上,那么它会监测试图转到其它包的 *** 作,并对其进行阻止。

如果应用程序崩溃或接收到任何失控异常,Monkey将停止并报错。

如果应用程序产生了应用程序不响应(application not responding)的错误,Monkey将会停止并报错。

按照选定的不同级别的反馈信息,在Monkey中还可以看到其执行过程报告和生成的事件

二、测试准备

Monkey test前必须先进入android设备的adb shell(Android SDK环境配置不在此描述,网上有很多)步骤如下:

1. 开始—>运行—>cmd

2. usb连接手机,输入 adb shell 命令,待出现 即可输入以下内容

3. 进入手机后,输入相应的monkey命令即可测试

三、基本命令格式

adb shell monkey –p 程序包 –v 测试次数

比如“adb shell monkey –p com.htc.Weather –v 20000”意思是对com.htc.Weather 这个程序包单独进行一次20000次的monkey测试

其中程序包名称可以在串口终端这句命令获得:ls data/data 显示所有程序包

四、测试Log获取

用Monkey test测试,为了方便分析问题,可以在命令monkey命令后面加上 “|logcat -v time”,这样就能边测试边打印Log(记得用终端保存Log文本)例如:

adb shell monkey –p com.htc.Weather –v 20000|logcat -v time

但是这个组合在monkey测试完成后,logcat仍然在执行,测试时需要注意。

如果测试monkey碰到crash或者anr(程序强制性退出或不响应)现象时,在抓取log的同时需要提供traces.txt,步骤如下:

1. 测试版本需要具备root权限

2. 进入data/anr目录下面

3. 将traces.txt文件拷贝到TF卡中,然后拷贝出来发给软件分析即可

安装sdk后,可在命令行通过 adb shell monkey 查看可用命令

2.monkey常用参数说明:

<colgroup><col><col></colgroup>

| 基本参数 | 说明 |

| -p <allowed-package-name>| 指定一个或多个包 |

| -s <seed>| 指定一个随机数生成器的seed值 |

| --throttle <milliseconds>| 指定事件之间的固定延迟(ms) |

| -v | 指定反馈信息级别(信息级别就是日志的详细程度) |

| -c <main-category>| 指定一个或多个类别名 |

| -f <scriptfile>| 运行指定的monkey脚本 |

<colgroup><col><col></colgroup>

| 事件参数 | 说明 |

| --pct-touch <percent>| 指定触摸事件百分比 |

| --pct-motion <percent>| 指定动作事件百分比 |

| --pct-trackball <percent>| 指定轨迹事件百分比 |

| --pct-syskeys <percent>| 指定系统按键事件百分比 |

| --pct-nav <percent>| 指定基本导航事件百分比 |

| --pct-majornav <percent>| 指定主要导航事件百分比 |

| --pct-appswitch <percent>| 指定应用启动事件百分比 |

| --pct-flip <percent>| 指定flip(d)事件的百分比 |

| --pct-anyevent <percent>| 指定其他类型事件百分比 |

| --pct-pinchzoom <percent>| 指定缩放(捏)事件百分比 |

| --pct-permission <percent>| 指定 |

<colgroup><col><col></colgroup>

| 调试参数 | 说明 |

| --ignore-crashes | 忽略因崩溃或异常引起的停止运行 |

| --ignore-timeouts | 忽略应用发生超时错误(ANR) |

| --ignore-security-exceptions | 忽略应用发生任何权限错误 |

| --monitor-native-crashes | 监视并报告monkey运行时native code的崩溃事件 |

| --ignore-native-crashes | 忽略因native code的崩溃事件 |

| --kill-process-after-error | 在应用出错后通知系统杀死发生错误的进程 |

| --hprof | 在事件序列前后立即生成profilfing report |

| --dbg-no-events | 监视应用程序所调用的包之间的转换 |

| --wait-dbg | 暂停执行中的monkey,直到有调试器与它连接 |

3.使用真机环境针对皮皮Android客户端进行monkey测试

A.开启手机调试模式,通过USB连接电脑,查看是否连接成,可以使用adb devices命令

B.关闭手机下拉通知栏,锁定手机界面(视机型而定, *** 作方式不一样),避免测试工程中切出app,影响测试结果。

C.执行monkey测试,使用脚本命名如下,参数请参照上面参数说明理解。

adb shell monkey -p com.chudiangameplay.android -s 10086 --pct-touch 70 --pct-motion 30 --ignore-crashes --ignore-timeouts --monitor-native-crashes --throttle 200 -v -v -v 50000 >D:\monkeylog\20200525.log

4.日志分析

日志分析可手动在日志中搜索crashes 、crashes 、error等内容,查看对应区域日志。

日志量较大,可使用如下提供的bat脚本,分析对应日志文件。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8119129.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存