你学会了些什么?-monkey的基础知识9.17

monkey介绍
monkey是Google提供的一个命令行工具,可以运行在模拟器或者实际设备中。它向系统发送伪随机的用户时间(如:按键、手势 、触摸屏等输入),对软件进行稳定性与压力测试。
简单地说:monkey是Google提供的一个用于稳定性与压力测试的命令行工具。
monkey程序是Android自带的,但是你想要是使用monkey,必须要首先安装ADB,并且配置好相关的环境。
环境弄好了之后,可以使用控制台,在控制台中输入adb,回车,如果出现adb的相关信息,则说明adb配置好了。
使用USB,手机连接电脑,首先如果想最简单的启动、运行monkey,则可以输入以下代码:
adb shell monkey 100
这里写图片描述
输入完了之后回车,你会看到你手机屏幕自动运行程序,运行的次数是100次,运行完毕后屏幕不再跳动。
adb shell monkey 100这个代码,运行完之后,可以在控制台看到monkey运行时的相关日志。但是,这些日志并不是相当的详细,所以,你可以输入代码,让monkey的日志更加详细。这个操作就是在monkey后面加上 -v ,这个 -v 不只是可以加一个,据我所知,最多可以加3个 -v ,如下面所示:
adb shell monkey -v -v -v 1000 (加3个 -v ,则是使monkey运行日志最详细,也可以加两个 -v ,或者一个)
adb shell monkey -v -v 1000 (加2个 -v )
adb shell monkey -v 1000 (加1个 -v )
当你真正运行过带不同个数的 -v 时,你就会发现,-v 越多,日志越详细。
说到日志,因为你在控制台运行日志,当你关闭控制台时,日志也就不见了,那么在你关闭控制台后,才想起来要查看日志,这就很尴尬了,所以下面说一下如何把monkey运行的日志保存下来。
adb shell monkey -v -v 100 1>f:\LBG\monkeylog.txt 2>f:\LBG\monkeyerror.txt
运行完后,你可以到你上面设置的日志存放路径寻找相关的日志;1>f:\LBG\monkeylog.txt表示把没有错误的日志放到f盘,LBG文件夹下,可以在LBG文件夹找到monkeylog.txt;当然,在运行monkey时,也有可能由于运行到某些问题,这时就会产生运行错误的日志,2>f:\LBG\monkeyerror.txt表示错误日志在f盘,LBG文件夹下的monkeyerror.txt。
当你运行了很多命令代码后,你的控制台显示的也比较多,你可能会想把控制台的内容清空,很简单输入:
cls ;输入后回车,得到无内容的控制台界面
在这里插入图片描述
接下来就是如何查询Android手机中已安装程序的包名,输入:
adb shell pm list packages
然后可以在控制台看到所有程序的包名
在这里插入图片描述
在测试时,往往你可能会只想测试某一个应用,那么就要在命令行代码中添加 -p + 应用包名;比如说你要测试日历,那么你可以用上面查询包名的方法,查询出来日历的包名为:package:com.android.calendar;monkey只测试日历应用的命令行代码为:
adb shell monkey -p com.android.calendar -v 1000
运行代码后,你会发现手机只在日历这个应用中乱跳,不会跳到其他的程序
那如果你只想要测试某两个用用程序呢?很简单,就是在-p + 包名 后面,再加一个 -p + 包名;如下测试日历和计算机:
adb shell monkey -p com.android.calendar -p com.android.calculator2 -v 1000
那如果是想要测试三个应用,那就是再加一个 -p 。
当你运行monkey进行测试时,可能会测试出一些BUG,但是由于是monkey随机对应用程序进行测试,所以我们要重现这个BUG是十分困难的,那么在这个时候我们就可以用到 -s ,伪随机数生成器的seed值。如果用相同的seed值再次运行monkey,它将生成相同的时间序列。简单地说就是,你加上这个,运行时它会记住测试的顺序,当你发现BUG时,你可以输入与上次一样的 -s ,然后重现BUG。
adb shell monkey -p com.android.calendar -s 100 -v 1000
在这里插入图片描述
在这里,seed为100,如果这次测试发现了BUG,你可以继续以seed为100进行测试重现BUG

我们运行monkey进行测试时,会发现它操作得十分快速,有时候甚至不知道是点击了哪一个,那么我们可以添加一个延迟,让monkey在进行测试时慢一些。–throttle :在事件之间插入固定延迟,通过这个选项可以减速monkey的执行速度。如果不设置该选项,monkey将不会被延迟,事件将尽可能快地被产生。
adb shell monkey -p com.android.calendar --throttle 200 -v 1000

–randomize-throttle :在事件之间插入随机延迟,需要与–throttle配合使用,随机延迟范围为(0-throttle设置的时间)
adb shell monkey -p com.android.calendar --throttle 200 --randomize-throttle -v 1000

–pct-touch :调整触摸事件的百分比(触摸事件是一个down-up事件,它发生在屏幕上的某单一位置)
adb shell monkey -p com.android.calendar --pct-touch 100 --throttle 200 --randomize-throttle -v 1000在这里插入图片描述
–pct-touch 100表示时间的百分比为100%

–pct-motion :调整动作时间的百分比(动作事件由屏幕上某处的一个down事件、一系列的伪随机事件和一个up事件组成)
adb shell monkey -p com.android.calendar --pct-motion 100 --throttle 200 --randomize-throttle -v 1000

命令代码总结如下:
运行monkey:
adb shell monkey 1000
运行monkey记录日志详细程度:
adb shell monkey -v -v -v 1000 ( -v 表示日志的详细程度)
日志的存放:
adb shell monkey -v -v 1000 1>f:\LBG\monkeylog.txt 2>f:\LBG\monkeyerror.txt (1路径存放正确的日志,2路径存放错误的日志)
清空控制台内容:
cls
查询已安装程序的包名:
adb shell pm list packages
指定测试某一应用程序:
adb shell monkey -p com.android.calendar -v 1000 ( -p + 包名 )(只测试一个应用)
adb shell monkey -p com.android.calendar -p com.android.calculator2 -v 1000 (测试两个指定应用)
伪随机数生成器的seed值:
adb shell monkey -p com.android.calendar -s 100 -v 1000
事件之间插入固定延迟:
adb shell monkey -p com.android.calendar --throttle 200 -v 1000
事件之间插入随机延迟:
adb shell monkey -p com.android.calendar --throttle 200 --randomize-throttle -v 1000
调整触摸事件的百分比:
adb shell monkey -p com.android.calendar --pct-touch 100 --throttle 200 --randomize-throttle -v 1000
调整动作时间的百分比:
adb shell monkey -p com.android.calendar --pct-motion 100 --throttle 200 --randomize-throttle -v 1000

猜你喜欢

转载自blog.csdn.net/Tuziba/article/details/82736165