首页 > 编程知识 正文

adb和monkey常用命令,adbmonkey是干什么用的

时间:2023-05-04 09:28:37 阅读:179082 作者:512

移动自动化测试通常需要结合使用adb和monkey命令进行测试。 adb命令非常多,monkey命令也不少。 本文给出了一些常用的命令,以更有效地进行移动自动化测试

Monkey简介Monkey在英语中是“猴子”的意思,在测试行业有“猴子测试”这个术语。 那么“猴子测试”是什么

Android附带命令行工具,在模拟器或实际设备上运行

向将被测试的APP应用发送伪随机事件流(例如,按键、触摸屏、手势等)

通过monkey随机重复来测试APP应用的稳定性、鲁棒性

Monkey的原理是利用套接字通信(Android客户机和服务器是TCP/UDP方式) ) )。

的事件流数据流是随机的,无法定制

monkey用Java语言写,名为Monkey.jar

用名为monkey的shell脚本开始执行。 shell脚本的保存路径为: /system/sydnht/monkey

Monkey命令ADB shell monkey命令参数[命令计数]最简单的示例:

adb shell monkey 100 #发送了100个随机命令上面的monkey命令发送了100个随机命令,因为没有指定特定的APP应用程序软件包名称。 在整个系统中随机执行。

注:命令数,即发送的随机数的数值,请务必放在所有参数的末尾。

Monkey参数只要就软件测试、界面、自动化、性能测试、测试开发、面试经验进行交流。 如果你感兴趣的话,810119819就可以了。 小组内会不定期分发免费的资料链接。 这些资料都是从各技术网站收集、整理的。 有好的学习资料的话请用悄悄话发给我。 注明出处后再分享给大家。

-p用于约束,此参数指定一个或多个软件包。 指定包后,将对该APP应用操作所有随机命令。 (有关如何查找包名称的信息,请参阅文章末尾

例如:

向adbshellmonkey-pcom.huomaotv.mobile 100 #“火猫TV”发送100个随机命令,接下来的100个命令在火猫TV APP内进行。 但是,100个命令会在非常快的时间内完成。

-v用于指定反馈信息的级别。 信息级别是日志的详细级别。 级别共分为三个级别,级别由命令中-v参数的数量决定,-v参数的数量越多,日志越详细。

Level 1:默认值。 仅提供少量信息,如启动提示、测试完成、最终结果和Crash日志

adbshellmonkey-pcom.huomaotv.mobile-v100 level2:提供更详细的日志,其中包含发送到activity的每个事件信息

adbshellmonkey-pcom.huomaotv.mobile-v-v100 level3:最详细的日志,包括测试中选择/未选择的Activity信息

ADB shell monkey-pcom.huomaotv.mobile-v-v-v100throttle每个事件结束后的间隔时间。 用于减轻系统的压力。 如果未指定,事件序列将尽快发送

adbshellmonkey-pcom.huomaotv.mobile-- throttle 300100 #每个命令之间的延迟时间以300毫秒-s指定测试种子值(编号)。 如果两次种子值相同,则两次测试的随机命令完全相同。 主要用于回归并再现发生的错误。 这里有点难理解,monkey命令的指令每次都是完全随机的,如果在测试中发现问题,就无法再现。 结果,在开发修复问题之后,也不知道以前的问题是否被修复了。 为了重现问题,如果在运行monkey命令时添加种子值,而后续命令具有该种子值,则执行两次的随机命令将完全匹配。

adbshellmonkey-pcom.huomaotv.mobile-s 5555-v100可以更改命令的其他参数,-s5555可以查看随机命令。 修改数量后,百分比应该与上一个指令一致。 例如,如果将数量从100更改为200,则上一个百分比与上一个随机指令一致

调试参数以下命令主要用于控制运行monkey命令时的调试选项: 其中--ignore-crashes和--ignoretimeouts长时间运行,如下班后运行数小时,保证运行中出现崩溃等问题时,仍能执行剩余指令。 在执行开始后立即遇到Crash和ANR,以避免执行后续命令。

示例:

adbshellmonkey-pcom.huomaotv.mobile-- ignore-crashes-- ignore-time outs-- monitor native-crashes-v 100000033555

monkey随机发送的命令包含各种随机的事情

件,各种类型的事件按照某种比例产生。如果想要指定某种类型的事件 更多一些,可以指定该事件的百分比。
比如当前测试的应用中主要支持的操作就是 触摸和滑动 等常规操作,那么就可以提高这两种类型的随机事件的比 例。


示例:

# 单个参数设置百分比 adb shell monkey -p com.huomaotv.mobile --pct-appswitch 20 10000# 多个参数设置百分比 adb shell monkey -p com.huomaotv.mobile --pct-appswitch 20 --pct-rotation 20 --pcttouch 30 --pct-motion 20 10000注意: 参数后面紧接百分比 ,百分比的总量不能大于 100% 单个参数设置百分比

adb shell monkey -p com.huomaotv.mobile --pct-appswitch 20 10000

多个参数设置百分比

adb shell monkey -p com.huomaotv.mobile --pct-appswitch 20 --pct-rotation 20 --pcttouch 30 --pct-motion 20 10000

注意: 参数后面紧接百分比 ,百分比的总量不能大于 100%

日志分析

在命令的最后,加上 > 重定向到本地文件。 d:/monkey.log 放在 d 盘的根目录

示例:

adb shell monkey -p com.huomaotv.mobile --pct-appswitch 20 --pct-rotation 20 --pcttouch 30 --pct-motion 20 --ignore-crashes --ignore-timeouts --monitor-native-crashes 10000 > d:/monkey.log

那么对于 monkey 跑完之后,我们要如何去确认有没有出现 bug 呢? 最直观简单的方式就是通过搜索以下关键字:

程序无响应的情况:搜索关键字“ANR in”崩溃的情况1:搜索关键字“CRASH”崩溃的情况2:搜索关键字“Exception”内存溢出的情况:搜索关键字“OOM”测试成功的情况:搜索关键字“Monkey finished”如果出现空指针 NullPointerException ,就一定是 bug 结语

如果对软件测试、接口、自动化、性能测试、测试开发、面试经验交流。感兴趣可以810119819,群内会有不定期的发放免费的资料链接,这些资料都是从各个技术网站搜集、整理出来的,如果你有好的学习资料可以私聊发我,我会注明出处之后分享给大家。

需要adb命令和monkey命令大全的可以私聊我,也欢迎大家进群一起交流自动化测试遇到的问题或经验。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。