APP自动化--Monkey

下载直接解压链接: https://pan.baidu.com/s/1dEYso4D 密码: purg
把...sdk\platform-tools添加到系统变量。
32位的


64位的可以下载解压再自己安装各种包
安装文件:链接: https://pan.baidu.com/s/1mikVmn2 密码: vf8c
变量配置:
新建 ANDROID_SDK_HOME
值     D:\android\android-sdk(根据自己的安装目录)
然后就是在系统的Path变量后,追加;% ANDROID_SDK_HOME%\platform-tools;% ANDROID_SDK_HOME%\tools
也可下载安装过各种包的zip




1  安卓手机USB连接电脑---命令行abd shell 看看是否连接成功---如不成功安装豌豆荚之类的。

2 ls 查看所有文件
cd systerm 进入系统文件
进入bin文件夹里面就有monkey文件了

3 monkey命令启动方式
3.1  pc cmd ---  adb monkey 参数
3.2 安卓手机上直接执行monkey命令

压力测试参数 adb shell monkey -p com.htc.Weather 100
adb shell monkey -p com.kuaibao.kuaidi 100

-s                随机数种子

-throttle          间隔(毫秒) 如 -throttle 1000 即一秒
-p           指定一个或多个包


命令
..                                        返回上级目录
ls                                        查看当前下全部文件
cd system                           进入当前路径下的system文件
adb shell                               连接查看
adb shell monkey -help          查看帮助文档

1  -p      用此参数指定一个或多个包
    指定一个包 adb shell monkey -p com.htc.Weather 100
          指定多个包    adb shell monkey -p com.htc.Weather –p com.htc.pdfreader -p com.htc.photo.widgets 100
          不指定包(对所有包进行测试)adb shell monkey 100
          注:最后边的100是事件计数(即让Monkey程序模拟100次随机用户事件)
要查看设备中所有的包,在CMD窗口中执行以下命令:
 >adb shell
  #cddata/data
  #ls

2  -v     定反馈信息级别(信息级别就是日志的详细程度)
例子:     adb shellmonkey -p com.htc.Weather –v -v 100
-v 日志(略)     仅提供启动提示、测试完成和最终结果等少量信息
-v -v 日志(中)     提供较为详细的日志,包括每个发送到Activity的事件信息
-v -v -v 日志(详细)     最详细的日志,包括了测试中选中/未选中的Activity信息

3  -s 指定伪随机数生成器的seed值,如果seed相同,则两次Monkey测试所产生的事件序列也相同的
如:
Monkey测试1:adb shell monkey -p com.htc.Weather –s 10 100
Monkey 测试2:adb shell monkey -p com.htc.Weather–s 10 100
多用于再现

4  --throttle <毫秒> 用于指定用户操作(即事件)间的时延,单位是毫秒
如 延迟3秒
adb shell monkey -p com.htc.Weather –throttle 3000 100


5  --ignore-crashes  
用于指定当应用程序崩溃时(Force& Close错误),Monkey是否停止运行。如果使用此参数,即使应用程序崩溃,Monkey依然会发送事件,直到事件计数完成。
如:adb shellmonkey -p com.htc.Weather --ignore-crashes 1000
测试过程中即使Weather程序崩溃,Monkey依然会继续发送事件直到事件数目达到1000为止
示例2:adb shellmonkey -p com.htc.Weather 1000
测试过程中,如果Weather程序崩溃,Monkey将会停止运行。

6  --ignore-timeouts (无响应ANR)
当应用程序发生ANR(Application No Responding)错误时,Monkey是否停止运行。如果使用此参数,即使应用程序发生ANR错误,Monkey依然会发送事件,直到事件计数完成

7  --ignore-security-exceptions (许可证书崩溃)
用于指定当应用程序发生许可错误时(如证书许可,网络许可等),Monkey是否停止运行。如果使用此参数,即使应用程序发生许可错误,Monkey依然会发送事件,直到事件计数完成。

8 --kill-process-after-error(发生错误停止运行并保持当前状态)
用于指定当应用程序发生错误时,是否停止其运行。如果指定此参数,当应用程序发生错误时,应用程序停止运行并保持在当前状态(注意:系统并不会结束该应用程序的进程)


9  --monitor-native-crashes(监视并报告Androids系统本地代码的崩溃事件)

10  --pct-{+事件类别}{+事件类别百分比}
用于指定每种类别事件的数目百分比(在Monkey事件序列中,该类事件数目占总事件数目的百分比)

--pct-touch {+百分比}  触摸事件
触摸事件是一个down-up事件,它发生在屏幕上的某单一位置
如:adb shell monkey -p com.htc.Weather--pct-touch 10 1000
表示产生的1000个随机事件中应该产生10%即100个触摸touch的事件

--pct-motion {+百分比}  整动作事件
动作事件由屏幕上某处的一个down事件、一系列的伪随机事件和一个up事件组成

--pct-trackball {+百分比} 轨迹事件
轨迹事件由一个或几个随机的移动组成,有时还伴随有点击

--pct-nav {+百分比}  调整“基本”导航事件的百分比
导航事件由来自方向输入设备的up/down/left/right组成

--pct-majornav {+百分比} 调整“主要”导航事件的百分比
这些导航事件通常引发图形界面中的动作,如:5-way键盘的中间按键、回退按键、菜单按键

--pct-syskeys {+百分比} 调整“系统”按键事件的百分比
这些按键通常被保留,由系统使用,如Home、Back、Start Call、End Call及音量控制键

--pct-appswitch {+百分比} 调整启动Activity的百分比
在随机间隔里,Monkey将执行一个startActivity()调用,作为最大程度覆盖包中全部Activity的一种方法

--pct-anyevent {+百分比} 调整其它类型事件的百分比
它包罗了所有其它类型的事件,如:按键、其它不常用的设备按钮、等等

指定多个类型事件的百分比
adb shell monkey -p com.htc.Weather--pct-anyevent 50 --pct-appswitch 50 1000





抓取要测试的包的位置
下载一个 包名查看器软件(安卓)即可

实战

adb shell monkey –p com.shjt.map –-throttle 100 –-pct-touch 50 –-pct-motion 50 –v –v 1000 >c:\monkey.txt



adb shell monkey –p com.andriod.calculator2 –-throttle 500  –v –v 100 >c:\monkey.txt



日志信息分析
CRASH  即崩溃信息
不设置忽略crashes,在测试过程中出现CRASH,会中断测试,并显示CRASH信息和seed信息,根据seed值来完成bug的复现

ANR 


Monkey测试的og分析,我们可以通过几个关键词来判断测试是否通过。

1)Monkey finished
打开LOG,查看log的最下端,是否有类似以下字段:
## Network stats: elapsed time=5123ms (5123ms mobile, 0ms wifi, 0ms not connected)
// Monkey finished
这个字段表明本次的Monkey没有异常,测试通过。

2)CRASH


同样,在得到LOG后,搜索”CRASH”字段,如果搜索到有结果,则表明有进程出现问题,测试不通过。
// CRASH: com.onekchi.downloadmanager (pid 12919)

3)ANR
在Log中搜素该字段,如果有搜索有结果,则表示测试过程中,测试对象出现了无响应的现象,因此测试不通过。--throttle <毫秒>值建议为500

4)无法搜索到上述信息
出现这种情况,一般都是外界原因而非程序本身原因。比如电脑异常测试中断,需要重新测试。


示例CMD
adb shell monkey -p cc.hitour.travel --pct-nav 20 --pct-syskeys 20 --pct-touch 30 --throttle 500 -s 1 -v -v 1000 >c:\monkey.txt  

adb shell monkey -p cc.hitour.travel --pct-nav 20 --pct-syskeys 20 --pct-touch 30 --throttle 500 -s 1 -v -v 30 >C:\Users\Lin\Desktop\APP测试\monkey.txt

猜你喜欢

转载自blog.csdn.net/qton_csdn/article/details/79277349
今日推荐