欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

APP测试工具monkey的安装和常用命令及日志分析

程序员文章站 2022-08-03 11:18:10
Monkey安装步骤:1、解压安装包(android-sdk_r24.4.1-windows.zip):解压到要安装的Android的路径即可。解压后的文件如下所示:包括add-one,platforms,tools ,AVD Manager.exe,SDK Manger.exe,SDK Readme.txt。2、双击“SDK Manager.exe”,启动SDK Manager,选择以下进行安装: (几点注意:①下列所勾选的内容都是必须下载的,其他可以根据自身需求进行下载。②API的选择个人建议先考虑...

Monkey安装步骤:
1、解压安装包(android-sdk_r24.4.1-windows.zip):解压到要安装的Android的路径即可。解压后的文件如下所示:包括add-one,platforms,tools ,AVD Manager.exe,SDK Manger.exe,SDK Readme.txt。

2、双击“SDK Manager.exe”,启动SDK Manager,选择以下进行安装: (几点注意:①下列所勾选的内容都是必须下载的,其他可以根据自身需求进行下载。②API的选择个人建议先考虑下载最新的,因为Android是向下兼容的,如果跟我一样下载不了最新版本的话就亲下载次新版本。比如我选择下载的是Android8.0.0(API 26))

3、勾选后即可点击Install packages进行下载(时间可能有点长,毕竟是*到国外下载。耐心等待喲!!)
4、接下来关闭close,关闭对话框重新启动SDK manager就可以进行下载了;下载成功后的话,之前的“Not installed”会变成:“Installed”;如下图所示:

Monkey环境配置
计算机右键属性-高级系统设置–高级----环境变量

1、新建一个环境变量,变量名为ANDROID_HOME,变量值为D:\Android\android-sdk_r24.4.1-windows\android-sdk-windows(以自己的SDK安装目录为准,确定里面有tools和add-one等多个文件),点击确认。
2、在系统变量path中加变量值%ANDROID_HOME%\platform-tools,然后再增加变量值D:\Android\android-sdk_r24.4.1-windows\android-sdk-windows\tools(以自己的安装目录为准)。

3、查看是否安装成功:
测试连接:
需要安装adb的工具包 已安装可以跳过
开发者模式 usb调试
1.手机要在系统中打开关于版本 点击版本号五次 开启 开发者模式 【开发者模式已启用】
2.按返回键到设置菜单,设置中开发者模式------勾选USB调试
检验环境配置是否成功:点击Windows+R→输入cmd→回车→输入adb shell monkey -help(记住需要成功连接到手机或pad移动到)

monkey简介与最常用命令

1.monkey简介

monkey是安卓SDK附带的一个用来做压力测试的工具,monkey测试所有事件都是随机发生的,不带有主观性,测试人员主要通过跑monkey后打印出来的日志分析来发现问题
adb= android debug brigde
1.首先确认pc机是否和手机进行了连接:
adb devices

2.如果查询设备里没有任何信息,则使用如下命令连接模拟器(手机):
adb connect localhost:5555

3.再次查询当前连接设备信息,则应该多出一条设备已连接的信息:
C:\Users\Administrator.SKY-20180820DEV>adb devices
List of devices attached
localhost:5555 device

2.monkey最常用命令

(1) adb shell \进入android shell命令模式

  adb shell monkey -p com.seafile.seadroid2 -s 100 -v -v -v 100

命令解析:
参数 -p com.ircloud.ydh.agents:-p表示monkey工具需要操作的进程名称,后面接com.ircloud.ydh.agents表示易订货的进程名称。那么进程名称怎么查出来的呢?打开手机后,查找正在运行的程序,点开相应的程序后即可看到该程序的应用名称,这里不同的手机操作不一样,不可能每个都能列出来,大家自己观察自己的手机,实在不会找的同学看能否搜索下相关得到资料。

参数 -v 设置日志级别(默认一个-v),如需更详细的日志可以加多个-v,最多3个

参数:-s 100

  用于指定伪随机数生成器的seed值,如果seed相同,则两次Monkey测试所产生的事件序列也相同的。如上面的Monkey测试1和2,两次测试的效果是相同的,因为模拟的用户操作序列(每次操作按照一定的先后顺序所组成的一系列操作,即一个序列)是一样的。       操作序列虽 然是随机生成的,但是只要我们指定了相同的Seed值,就可以保证两次测试产生的随机操作序列是完全相同的,所以这个操作序列伪随机的;注意:seed值一般设为小于1000

最后一个100是表示执行随机事件100次。

做一个练习,使用同一个monkey命令,要求输出日志文件到windows上,以及输出日志文件到手机上/sdcard。
windows 命令行:
adb shell monkey -p com.ircloud.ydh.agents -s 100 -v -v -v 100 > F:\monkeylog\monkey_100.txt

linux命令行:
adb shell
monkey -p com.ircloud.ydh.agents -s 100 -v -v -v 100 > /sdcard/monkey_100.txt

adb shell monkey -p com.ircloud.ydh.agents -s 100 -v -v -v 100 > F:\monkeylog\monkey_100.txt

F:\monkeylog\monkey_100.txt表示将monkey工具执行过程中的日志重定向到windows上的某个文件里,这样所有的日志信息就能完整的保存到windows上了,也比较方便分析。

adb shell monkey -p com.tencent.mobileqq -s 100 -v -v -v 100
adb shell monkey -p ydh -s 100 -v 10
应用商店模拟用户随机操作,无延迟点击1000次

  \\参数-p用来指定参数,指定一个或多个包;参数-v 设置日志级别(默认一个-v),如需更详细的日志可以加多个-v,最多3个,如

  monkey -p  com.aa.bbmiddlemarket -v -v -v 1000   \\3个-v,输出最详细的日志
  monkey -p com.ircloud.ydh.agents -s 100 -v -v -v 10

(2) adb shell monkey -p com.ircloud.ydh.agents -v 10 > F:\monkeylog\monkey.txt

 应用商店模拟用户随机操作,无延迟10次,并把操作后的日志输出到电脑上的F:\monkeylog\monkey.txt

(3)Monkey测试1:adb shell monkey -p com.ircloud.ydh.agents -s 10 100

   Monkey 测试2:adb shell monkey -p com.ircloud.ydh.agents -s 10 100

   参数: -s 100

  用于指定伪随机数生成器的seed值,如果seed相同,则两次Monkey测试所产生的事件序列也相同的。如上面的Monkey测试1和2,两次测试的效果是相同的,因为模拟的用户操作序列(每次操作按照一定的先后顺序所组成的一系列操作,即一个序列)是一样的。       操作序列虽 然是随机生成的,但是只要我们指定了相同的Seed值,就可以保证两次测试产生的随机操作序列是完全相同的,所以这个操作序列伪随机的;注意:seed值一般设为小于1000

(4)adb shell monkey -p com.ircloud.ydh.agents -s 500 --ignore-crashes --ignore-timeouts --monitor-native-crashes -v -v 10000 > F:\monkeylog\monkey_10000.txt

   --ignore-crashes忽略崩溃,继续测试,若不做此限制,monkey测试出现崩溃时会自动停止测试

  同理,在中间插入控制命令如下:

  --ignore-timeouts 忽略连接超时

  --ignore-security-exceptions忽略在应用程序发生许可证错误(认证或证书异常),

  --kill-process-after-error在应用程序出现错误后,将会通知系统停止发生错误的进程

  --monitor-native-crashes监视并报告Android系统中本地代码的崩溃事件,如果设置”--kill-process-after-error”参数,系统将停止运行该进程

  --ignore-native-carshes忽略本地代码导致的崩溃

(5)adb shell monkey -p com.ircloud.ydh.agents --throttle 500 100 > F:\monkeylog\monkey_100.txt

  代表间隔时间,即每次操作的时间间隔,单位是毫秒;用--throttle可以减缓monkey的执行速度,如果不指定该选项,monkey将不会被延迟,事件将尽可能快地完成,一般用500

(6)终极命令:adb shell monkey -p com.ircloud.ydh.agents -s 500 --throttle 500 --ignore-crashes --ignore-timeouts --monitor-native-crashes -v -v -v 10000 > F:\monkeylog\monkey_10000.txt

(7)通过电脑向手机上传文件:
adb push d:\testupfile.txt /sdcard/testupfile.txt
(8)电脑向手机下载文件:
adb pull /sdcard/testupfile.txt d:\testupfile.txt

练习:把刚才手机里存放的monkey报告,下载到pc机上来。

91手机助手 360手机助手 或则是你们品牌的那个手机助手

qq手机演示:
adb shell monkey -p com.tencent.mobileqq -s 100 -v -v -v 100

日志分析:
1.Event percentages:

由上图可以看出

0:触摸事件百分比,即参数–pct-touch

1:滑动事件百分比,即参数–pct-motion

2:缩放事件百分比,即参数–pct-pinchzoom

3:轨迹球事件百分比,即参数–pct-trackball

4:屏幕旋转事件百分比,

5:基本导航事件百分比,即参数–pct-nav

6:主要导航事件百分比,即参数–pct-majornav

7:系统事件百分比,即参数–pct-syskeys

8:Activity启动事件百分比,即参数–pct-appswitch

9:键盘翻转事件百分比,即参数–pct-flip

10:其他事件百分比,即参数–pct-anyevent

日志内容分析
一般测试结果分析-搜索关键字:
1.程序无响应,ANR问题:在日志中搜索“ANR”
2.崩溃问题:在日志中搜索“CRASH”
3.其他问题:在日志中搜索”Exception”

Monkey工具的测试过程(android sdk已经安装了):

  1. 保证你的手机设备是和电脑连接(adb devices 查到你的设备信息),有且只有一个设备
  2. 执行monkey命令并且保存生成的monkey日志
  3. 在日志里面搜索这几个关键字来分析是否有问题,“ANR”,“CRASH”,”Exception”

手机连电脑要安装手机驱动(还要开通开发者模式),借助手机助手即可,我推荐3个:
360手机助手(电脑上安装这个助手)
91手机助手(电脑上安装这个助手)
第三种你是什么牌子的手机就下载什么牌子的助手。(电脑上安装这个助手)

本文地址:https://blog.csdn.net/lhy_xingcheng/article/details/107102566