APP专项测试

摘要:
5、 UI界面在安装、卸载和安装过程中是否合理;是否可以中途取消安装;磁盘存储空间不足时是否提示;安装后,不会生成冗余的目录结构和文件,以测试卸载APP时是否有提示;是否可以取消卸载;卸载后是否删除整个安装目录文件夹。

一、功能测试

功能测试主要根据软件需求说明书或用户需求等资料,编写测试用例,以验证各个功能点的实现情况,具体实施过程参考如下:

  1. 根据被测试模块的功能点,设计相应的测试用例进行覆盖,例如涉及到用户输入的地方要考虑到边界,用户使用场景类要考虑到正常和异常的场景,业务相关联的模块需要联合测试等;
  2. 随时关注跟踪需求的变化和理解需求,对需求理解有误时及时更改相关测试用例;
  3. 丰富完善测试用例对功能模块的覆盖点,更多的从用户使用方式出发,模拟更多的异常操作场景。   

二、兼容适配测试

兼容性及是适配测试主要包括以下几点:

  1. 硬件的适配:不同手机平板厂商、不同分辨率屏幕等;
  2. 系统OS版本的兼容性:主要是当前主流系统版本的兼容性,例如iOS 9-12,Android 5.0以上等;
  3. 不同的屏幕尺寸和分辨率,例如4寸、4.7寸、5寸、5.5寸、7.9寸、10.5寸,分辨率1280*720、1334*750、1920*1080等。

注意:app兼容测试方法

(1)手工测试(一般适用于用户量小、且对兼容测试要求不高的项目)
(2)云测试平台(一般适用于用户量大、且对兼容测试要求高的项目)

目前市场上主流云测试平台包括:
(1)腾讯云测:

http://wetest.qq.com

(2)百度云测:

http://mtc.baidu.com

(3)阿里云测:

http://mqc.aliyun.com/

(4)testin云测:

https://www.testin.cn/

三、UI测试

UI界面样式参照一下标准进行测试验证:

  1. 获取最新的移动APP原型图,检查APP的主要风格样式,是否与原型图一致,确保UI样式符合产品经理和用户要求;
  2. 检查页面样式是否符合公司或业界标准,主要为友好性、人性化、易操作性等,例如APP界面颜色协调一致、字体大小颜色、线框对齐、排版合理性等。
1 (1)横竖屏切换
2 (2)手势操作
3      a、长按呼出菜单
4      b、双手捏合放大放小
5      c、滑动
6 (3)输入信息界面自适应键盘遮挡
7 (4)其他UI测试要点与web基本相同

四、用户体验测试

用户体验测试一般都是以普通使用用户的角度的感知产品的使用感觉,带有明显的个人主观意识色彩,故用户体验测试一般均需多人进行体验感受,提出设计不合理的地方进行汇总,确定折中最佳修改方案,以满足大部分人的使用习惯体验,不应该以一个人或少数人的主观感受体验为主,避免以偏概全。用户体验可参考从以下几个方面:

  1. 是否滥用用户引导,例如APP首次安装时的用户使用引导、APP内部新手使用教程等,不应该页面设置过多、引导时间过久,避免用户产生反感厌恶情绪;
  2. 菜单层次是否设计的过深,尽量使用户在三级菜单内就能查看到需要的信息,超过4、5层菜单则用户体验十分糟糕,用户需要反复点击回退按钮才能返回主页面;
  3. 一次加载数据量是否过多,在需要大批数据量展示时,可进行分页加载处理,每次只加载请求当前页数据,上滑滚动翻页时再另行请求数据;
  4. 是否做好了不可操作处理,当某些情况下不允许操作时,按钮置灰或者隐藏处理;
  5. 操作按钮范围是否设计的适中合理,避免按钮设计过小或者范围,难以点中;
  6. 交互流程是否分支过多
  7. 是否有自动横屏设计,对于部分需要横屏展示的,例如曲线图查看、视频播放、游戏运行等,可自动或强制横屏翻转。

五、安装卸载

  1. 安装的过程中,UI界面是否涉及的合理;
  2. 安装是否可以中途取消;
  3. 当磁盘存储空间不足时,安装时是否进行提示;
  4. 安装后没有生成多余的目录结构和文件
  5. 测试卸载APP时,是否有提示;
  6. 卸载取消是否可用;
  7. 卸载后,是否删除整个安装目录文件夹。
  8. 卸载过程中出现的意外情况的测试(如死机、断电、重启)。
 1 (1)安装前
 2      a、干净的安卓系统
 3      b、装有旧版本的安卓系统
 4      c、装有本版本的安卓系统
 5      d、装有最新版本的安卓系统(需要安装旧版本)
 6      e、装有杀毒软件的安卓系统
 7      f、装有同行业其他软件的安卓系统
 8      g、内存不足的安卓系统
 9 
10 (2)安装过程中
11      a、意外中断
12      b、许可确认提示
13      c、是否显示安装进度
14 
15 (3)安装后
16      a、软件是否可以正常启动
17      b、检查安装文件是否齐全
18      c、检查许可权限
19      d、统计安装总时长
卸载:
1
(1)大型app考虑卸载过程中意外中断 2 (2)app处于运行状态下进行卸载 3 (3)app卸载后,对应的文件是否删除 4 (4)卸载后,重新再次安装该版本app 5 (5)是否弹出卸载确认提示

六、APP更新

  1. 当APP有新版本时,打开APP后,应给出新版本提示;
  2. 当版本为非强制升级时,取消更新,旧版本APP依然可用;
  3. 当版本为强制升级时,则必须进行升级才可用,取消升级客户端自动退出,下次启动依旧弹窗提示用户版本过旧需要升级;
1 (1)自动升级
2 (2)弹出是否升级的提示,人工选择
3 (3)升级过程中意外中断
4 (4)升级过程中内存不足
5 (5)升级后数据是否同步
6 (6)app运行状态下升级
7 (7)跨版本升级测试

七、中断测试

  1. 软件运行过程中,用户接打电话、接发短信、锁屏、闹钟铃响、查看推送通知后,返回APP,查看APP是否正常;
  2. 软件运行时,由前台切换到后台,再返回前台时,应仍然可以正常运行;
  3. APP在网络出现短暂故障后,再进行网络重连时,应该可以正常进行重连后台服务器操作,例如可以将WIFI关闭或者蜂窝移动网络关闭后,再重新连接,查看APP是否能自动连接后台服务器。
(1)意外中断
     a、来电
     b、短信
     c、闹铃
     d、断网
     e、断电
     f、视频聊天
     g、语音聊天
     h、无响应
     i、系统更新提醒
     j、内存不足提醒
     k、其他app的消息通知
(2)任务切换
     a、锁屏
     b、切换到其他应用

八、稳定性测试

稳定性测试主要目的为检测APP在频繁操作、长时间运行等情况下,程序是否会出现崩溃、闪退、卡死卡顿等现象,稳定性测试主要从两个方面入手:

  1. 在进行功能测试阶段,进行用例覆盖时,需注意程序是否可能会出现闪退、崩溃现象,特别是在执行异常场景的测试用例时,往往能发现程序的不稳定性。
  2. 使用第三方辅助工具,自动模拟用户行为以检测程序是否出现异常,例如Android操作系统可使用Monkey工具来检测ANR(Application Not Responding程序无响应)及Crash(崩溃)现象。

九、性能测试

客户端类的APP软件,性能指标主要有:安装卸载时间、启动APP时间、页面加载时间、APP占用CPU、内存、耗电量等。

Android的APP占用CPU和内存,可以借助开源工具emmagee获取,或者第三方的手机管理工具如腾讯手机管家、360手机卫士等,部分品牌的手机自带程序管理或任务器管理工具可查看程序资源消耗。

耗电量指标:Android系统可下载第三方带有电池管理工具的APP进行统计分析,iOS苹果手机可使用操作系统自带的电池使用分析工具即可

Android:

iOS:设置--电池

(1)客户端性能测试
     a、流量消耗
     b、耗电量
     c、CPU
     d、内存消耗
(2)服务器端性能测试

十、安全性测试

APP安全测试,主要包括软件权限、数据安全等

软件权限安全包括如下:

  1. 隐私泄露风险:如APP访问通讯录、编辑删除通讯录、获取位置信息等,应该可以在APP中进行设置或者在手机操作系统中可进行允许或不允许访问权限设置;
  2. 允许/不允许APP访问互联网权限等,例如可限制APP访问蜂窝移动数据网络;
  3. 允许/不允许APP访问相机拍照、录音;
  4. 允许/不允许APP推送通知消息,例如iOS手机,可设置APP是否允许推送通知;
  5. 允许/不允许APP后台应用刷新,后台应用刷新将会消耗更多的电量和移动数据网络,对不需要实时刷新的APP,可关闭后台应用刷新。

数据安全性包括如下:

  1. 涉及到密码的区域应以密文输入,对于可以明文查看的地方,应有操作按钮控制密码明文还是密文展示;
  2. 密码、信用卡、账户明细等数据不存储在设备当中;
  3. 密码复杂程度有一定要求:最低位数、字母数字混合等;
  4. 敏感数据文件不能存储在SDCard中;
  5. 正式版本软件应该关闭Debug调试或测试日志调试记录功能;
  6. SQLite数据库安全性,例如Android手机APP如使用SQLite轻型数据库,当手机被Root后,可进入/data/data//databases目录下面,查看数据库的文件内容信息,如果数据库中记录了重要的敏感信息,则可能存在安全隐患。
(1)密码不明文显示
(2)密码框不支持复制
(3)敏感信息加密传输
(4)多次登录失败,锁定账号
(5)登录成功后,长时间不操作软件,session是否丢失,提示重新登录
(6)权限控制
(7)SQL注入

十一、APP测试相关工具

1、Emmagee

Emmagee主要用于监控单个App的CPU,内存,流量,启动耗时,电量,电流等性能状态的变化,且用户可自定义配置监控的频率以及性能的实时显示,并最终生成一份性能统计文件。Emmagee是网易杭州研究院QA团队开发的一个简单易上手的Android性能监测小工具。

Emmagee功能介绍

1.检测应用从启动开始到当前时间消耗的流量数;

2.检测当前时间被测应用占用的CPU使用率以及总体CPU使用量;

3.检测当前时间被测应用占用的内存量,以及占用的总体内存百分比,剩余内存量

4.测试数据写入到CSV文件中,同时存储在手机中;

5.在浮窗中可以快速启动或者关闭手机的wifi网络;

6.可以选择开启浮窗功能,浮窗中实时显示被测应用占用性能数据信息。

Emmagee使用方法

启动Emmagee后,程序将自动检测已安装的APP软件,选择需要测试的软件,点击【开始测试】按钮,程序将启动需要测试的APP,被测试APP启动后,进行一系列模拟操作后,可看到APP上有Emmagee悬浮窗,记录实时的CPU和内存消耗等,点击停止测试后,Emmagee将统计记录数据到CSV格式文件中,文件存储在安卓手机SDCard目录下Emmagee文件夹下,文件名类似20190709134651_comXXX.csv。

2、Monkey

Monkey是Android SDK提供的一个命令行工具,可以简单,方便地运行在任何版本的Android模拟器和实体设备上。Monke会发送伪随机的用户事件流,实现对正在开发的应用程序进行压力测试和稳定性测试等。

Monkey环境搭建

下载SDK和安装SDK

打开http://tools.android-studio.org/index.php/sd,选择windows版本SDK进行下载;

下载完成exe安装包后开始安装Android SDK,安装过程会检测你是否安装过java jdk,安装完成后双击根目录下SDK Manager.exe,在弹窗,更新和下载插件(默认勾选项就好)

配置Android SDK环境变量

方法类似与配置JDK环境变量,以本人个人电脑为例,需要配置如下三个环境变量

新建ANDROID_HOME,值为D:Program FilesAndroidsdk(以实际个人安装路径为准),

Path变量中尾部,添加android-sdk目录下的tools和platform-tools路径,即添加值为:

;%ANDROID_HOME%platform-tools;%ANDROID_HOME% ools(注意前方的英文分号)

验证ADB命令是否成功

安卓手机用usb数据线连接到电脑,开启开发者模式,允许USB调试。电脑打开cmd命令,输入adb,出现如下页面,就代表基本配置成功了

注:每个品牌手机开启开发者模式略有不同,可自行百度

 APP专项测试第1张

输入命令adb devices,如果出现如下界面信息,说明手机连接电脑调试模式开启成功,(此处使用的的是MuMu模拟器,真机一般会出现810EBN655XHE device等字样),否则请检查是否正确开启手机开发者模式。

也可以使APP和电脑处于同一网络下,用adb connect 10.XX.XX.XX来连接

APP专项测试第2张

查找APP的pkg名称

(1)使用Monkey需要知道APP的pkg名字,输入命令adb shell pm list packages查看你的手机所有的安装包

(2)adb shell pm list packages -3: 查看手机上所有的第三方安装包

3、Monkey参数大全

Monkey命令基本参数介绍

基本语法如下:

$ adb shell monkey [options]

如果不指定options,Monkey将以无反馈模式启动,并把事件任意发送到安装在目标环境中的全部包。

下面是一个更为典型的命令行示例,它启动指定的应用程序,并向其发送500个伪随机事件:

$ adb shell monkey -p your.package.name -v 500

-p <允许的包名列表>         

用此参数指定一个或多个包。指定包之后,monkey将只允许系统启动指定的app。如果不指定包, monkey将允许系统启动设备中的所有app。  

指定一个包:adb shell monkey -p com.shjt.map 100   

指定多个包:adb shell monkey -p fishjoy.control.menu  -p com.shjt.map  100 

-v  用于指定反馈信息级别(信息级别就是日志的详细程度),总共分3个级别,

分别对应的参数如下所示: 

Level 0:  adb shell monkey -p com.shjt.map –v 100             

缺省值,仅提供启动提示、测试完成和最终结果等少量信息   

Level 1:  adb shell monkey -p com.shjt.map -v -v 100         

提供较为详细的日志,包括每个发送到Activity的事件信息

Level 2:  adb shell monkey -p com.shjt.map -v -v -v 100    

最详细的日志,包括了测试中选中/未选中的Activity信息

-s(随机数种子)            

用于指定伪随机数生成器的seed值,如果seed相同,则两次Monkey测试所产生的事件序列也相同的。 

示例:

monkey测试1:adb shell monkey -p com.shjt.map -s 10 100                

monkey测试2:adb shell monkey -p com.shjt.map -s 10 100  

--throttle <毫秒>            

用于指定用户操作(即事件)间的时延,单位是毫秒;如果不指定这个参数,monkey会尽可能快的生成和发送消息

示例:adb shell monkey -p com.shjt.map --throttle 3000 100   

Monkey事件类型参数介绍

--pct-touch <percent>

设定触屏事件生成的百分比。触屏事件是一个有手指按下,抬起事件的手势,即在屏幕某处按下并抬起的操作。

比如一个应用80%的操作都是触摸,那就可以将此参数的百分比设置成相应较高的百分比。如触摸返回、触摸签到等

--pct-motion <percent>

设定滑动事件生成的百分比。滑动事件是一个先在某一个位置手指按下,滑动一段距离后再抬起手指的手势。

--pct-trackball <percent>

设定轨迹球事件生成的百分比。轨迹球事件是包含一系列随机移动和单击事件的事件。如不规则滑动解锁

--pct-nav<percent>

设定基本导航事件生成的百分比。基本导航事件是模拟方向性在设备上输入向上、向下、向左、向右的事件

--pct-syskeys<percent>

设定按键消息的百分比,主页、后退、音量增减

--pct-anyevent

  1. 设置其他事件百分比

当没有指定该参数时,系统自动分配

Event percentages(事件百分比):

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

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

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

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

4:屏幕旋转事件百分比,参数--pct-rotation

5:暂时不知道这个是什么

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

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

8:系统事件百分比,参数--pct-syskeys

9:Activity启动事件百分比,参数--pct-appswitch

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

11:其他事件百分比,参数--pct-anyevent

1、adb get-serialno  获取序列号:
2、adb devices【adb get-serialno】:用于查看电脑当前连接的安卓设备
3、adb install apk文件包:在安卓设备上安装app
    注意:若当前电脑连接的安卓设备2台及以上,可通过以下命令完成安装:
        adb -s 设备序列号 install apk文件包
    install  -r 覆盖安装,保留数据和缓存文件  -d 解决低版本version问题  -s 安装apk到sd卡
4、adb uninstall app软件包名:卸载app
    uninstall  可选参数-k的作用为卸载软件但是保留配置和缓存文件
5、adb shell:进入adb运行环境
    5.1、adb [-d|-e|-s <serial Number>] <command>  
        -d:真机(多个设备中只有一个真机时适用)    
        -e:模拟器(多个设备中只有一个模拟器时适用)   
        -s:序列号
    5.2、adb shell ls [-al]   列出目录下的文件和文件夹,可选参数-al可查看文件和文件夹的详细信息
    5.3、adb shell cd <folder>   进入文件夹
    5.4、adb shell cat <filename>  查看文件
    5.5、adb shell rename path/oldfilename path/newfilename    重命名文件
    5.6、adb shell rm -r <folder>   -r 可选参数用于删除文件夹及下面的所有文件 
    5.7、adb shell mv path/1 path/2    移动文件
    5.8、adb shell cp file path/1    拷贝文件
    5.9、adb shell mkdir path/1      创建目录
    5.10、adb shell chmod 777 filename      设置文件最高读写权限
    
6、adb push 电脑端路径及文件 手机端路径:将电脑端指定的文件传输到手机指定的路径中
7、adb pull 手机端路径及文件 电脑端路径:将手机端指定的文件传输到电脑端指定的路径中
8、adb  logcat 查看log:
    安卓系统中生成的日志,有哪些级别?
          I:信息
        V:冗(rong)余 (最低优先级)
        D:调试
        W:警告
        E:错误
        F:严重错误
        S — 静默 (最高优先级,不会打印任何信息)
        
    日志格式:adb logcat  -s 过滤指定参数log  -v time 保留日志时间  >> 追加写  > 覆盖写
    日志过滤:adb -e logcat 标签名:级别>1.txt  或者使用grep过滤adb logcat | grep "SEARCH_TERM"
        如:adb -e logcat taobao:w>11.txt
        将w级别及其以上级别日志,且含taobao标签的所有日志保存到11.txt中
        
        如:adb -e logcat *:w>11.txt
        将w级别及其以上级别日志,所有日志保存到11.txt中
    使用来清除旧的日志
    adb logcat -c

9、adb reboot   重启机器:
10、adb reboot [bootloader|recovery]    重启设备,可选参数进入bootloader(刷机模式)或recovery(恢复模式)
11、adb shell am start -n package_name     启动应用
12、adb kill-server 终止adb服务进程:
13、adb start-server      重启adb服务进程:
14、adb help   获取帮助 里面有adb的各种命令和参数的介绍
15、adb version 查看adb版本
16、adb root   以root权限重启adb
17、adb remount    将system分区重新挂在为可读写分区,此命令在操作系统目录时很重要
18、adb shell pm path <package_name>   查看app的路径  
19、adb shell dumpsys package <package_name> | grep  version     查看apk的版本信息
20、adb shell pm clear <PACKAGE>   删除与包相关的所有数据:清除数据和缓存
21、adb shell ps <package_name|PID> 【 adb shell ps | grep <package_name>】  查看某个app的进程相关信息
22、adb shell kill pid Number杀掉某个进程,一般用于模拟某个bug复现
23、adb shell dumpsys meminfo <package_name|PID>    查看某一个app的内存占用
24、adb shell getprop | grep heapgrowthlimit    查看单个应用程序的最大内存限制
25、adb shell dumpsys batterystats ><package_name> > xxx.txt        获取单个应用的电量消耗信息
26、adb shell wm size【adb shell dumpsys window | grep Surface】     查看手机分辨率
27、adb shell getprop | grep version          查看手机sdk版本
28、adb shell getprop | grep product   查看手机型号信息
29、 adb shell cat /proc/meminfo    查看系统当前内存占用
30、adb shell top   查看设备上进程的cpu和内存占用情况

4、Monkey调试参数介绍

--ignore-timeouts

通常情况下,当应用程序发生任何超时错误(application  not  responding)时,monkey将停止运行。若指定了该参数,则monkey将会在产生错误信息后,继续向系统发送事件,直到指定事件全部运行完毕

 --ignore-crashes

通常情况下,monkey会在测试应用程序崩溃或者发生异常后停止运行,若指定了该参数,则monkey将会在产生异常后,继续向系统发送事件,直到指定事件全部运行完毕。

--hprof  

指定了该参数,Monkey会在发送事件序列的前、后,生成性能分析报告。

--ignore-security-exceptions   

 通常情况下,指定应用程序发生许可错误时(如证书许可,网络许可等),monkey将停止运行。若指定了该参数,即使应用程序发生许可错误,monkey会继续向系统发送事件,直到指定事件全部运行完毕。

--kill-process-after-error

错误发生时杀进程

--monitor-native-crashes

监视崩溃时的本地代码

1、使用场合:主要用于app的稳定性测试。安卓系统自带的一款工具。
2、原理:通过发送大量的随机事件,测试手机或某app的稳定性。
3、adb shell monkey 事件数>日志文件:测试手机的稳定性
4、monkey命令的基本参数
(1)-p app软件包名
注意:若需要同时往多个app发送随机事件,增加-p app软件包名2即可
如:
adb shell monkey  -p 软件包名1 -p 软件包名2 事件数>日志文件
(2)日志详细级别:
 -v:详细级别为1等级
 -v -v
 -v -v -v

ANR:应用程序无响应,application not responding
数
(3)增加事件延迟
 --throttle 毫秒数
(4)-s 种子数

5、monkey的事件类型
(1)--pct-touch 百分比:触摸事件
注意:百分比可书写为70或70%,多种事件百分比相加不能大于100%2)--pct-motion 百分比:滑动事件
如:adb shell monkey -p 软件包名 -v -v -v --pct-touch 60 --pct-motion 20 5000 >日志文件
(3)--pct-trackball 百分比:轨迹事件
(4)--pct-nav 百分比:上下左右方向键
(5)--pct-majornav 百分比:Home键,菜单键,返回键
(6)--pct-syskeys 百分比:声音键、锁屏键等系统键

6、monkey的调试选项
(1)--hprof:在/data/misc目录下会生成profiling报告,该报告文件容量较大,小心使用
(2)--ignore-crashes:忽略崩溃。monkey执行过程中,遇到崩溃,不停止,继续执行下去
(3)--ignore-timeouts:忽略超时错误(ANR)。monkey执行过程中,遇到ANR,不停止,继续执行下去
(4)--ignore-security-exceptions:忽略许可错误。monkey执行过程中,遇到许可错误,不停止,继续执行下去
(5)--kill-process-after-error:程序出错后结束进程。

5、Monkey运行APP实例

以Monkey运行测试手机监控某APP为例;

注意:Monkey无法自动登录,使用前请手动输入用户名密码登录,再运行Monkey命令

adb shell monkey -p com.app.package --throttle 100  --pct-touch 50 --pct-motion 50 -v -v 1000>D:monkey.log

命令解析:

-p com.app.package:启动运行app程序

--throttle 100:操作时间延迟100ms

--pct-touch 50:触摸事件百分比为50%

--pct-motion 50:滑动事件百分比为50%

–v -v:日志级别为Level 1,提供较为详细的日志

1000:表示Monkey模拟1000个伪用户行为事件

>D:monkey.log:运行日志记录输出到指定目录下的文件中

6、Monkey日志分析

正常情况,如果Monkey测试顺利执行完成,在log的最后,会打印出当前执行事件的次数和所花费的时间。 // Monkey finished 代表执行完成.

异常情况:

Monkey 测试出现错误后,一般的分析步骤
看Monkey的日志 (注意第一个swith以及异常信息等)
1. 程序无响应的问题: 在日志中搜索 “ANR”
2. 崩溃问题:在日志中搜索 “Exception”   (如果出现空指针, NullPointerException)  肯定是有bug

Monkey 执行中断,在log最后也能看到当前执行次数

1. 初步分析方法:

Monkey: seed=20 count=100  --随机种子和运行次数

:AllowPackage: com.swartz.cicada  --指定的测试包
:IncludeCategory: android.intent.category.LAUNCHER  --Category包含LAUNCHER
:IncludeCategory: android.intent.category.MONKEY   --Category包含MONKEY
// Selecting main activities from category android.intent.category.LAUNCHER
//   + Using main activity com.swartz.cicada.LauncherActivity (from package com.swartz.cicada)
// Selecting main activities from category android.intent.category.MONKEY  --查询结果列表
// Seeded: 20 --随机种子
// Event percentages:
//   0: 15.0%  --事件0 为touch事件,就是相当于按下之后弹起来的一个动作
//   1: 10.0%  --事件1 为motion,相当于说从起始点到终点有移动了多少步,就是步骤数量 
//   2: 2.0%   --事件2 为pinchzoom,为两个手指有同时按下去后,都向中间移动后up起来,相当于一个缩放的动作。
//   3: 15.0%  --事件3 为trackball,为轨迹球事件 
//   4: -0.0%  --事件4 为rotation 为屏幕旋转百分比隐藏事件
//   5: 25.0%  --事件5 为nav导航事件,就是上下左右
//   6: 15.0%  --事件6 为majornav主导航事件,会产生一些窗口的事件
//   7: 2.0%   --事件7 为系统按键
//   8: 2.0%   --事件8,app应用的打开就是用的这个事件
//   9: 1.0%   --事件9,键盘的开,关

//   10: 13.0% --事件10,按键按下在弹起等动作

日志结尾:

如果Monkey测试顺利执行完成,在log的最后,会打印出当前执行事件的次数和所花费的时间;Monkey
finished代表执行完成。

(如果Monkey执行中断,在log的最后也能查看到当前已执行的次数。)

2.详细分析:

Monkey测试出现错误之后,一般的分析步骤分为以下几种: 

2.1看Monkey日志(注意第一个switch以及异常信息等) 

2.11程序无响应问题,在日志中搜索 “ANR”

2.12奔溃问题: 在日志中搜索 “Exception”

ANR问题:在日志中搜索“ANR”(什么是ANR:Application Not Responding,即应用无响应,具体有关ANR的知识详见:):https://www.tuicool.com/articles/IfQvY3

2.13ForceClosed和程序异常退出问题:在日志中搜索“致命” 

3.查看Monkey里面错误前的一些事件动作,并手动执行该动作。

如果Monkey测试顺利执行完成,在log的最后,会打印出当前执行事件的次数和所花费的时间; // Monkey finished代表执行完成。 

Monkey执行中断,在log的最后也能查看到当前的已经执行的次数。

免责声明:文章转载自《APP专项测试》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇阿里性能专家全方位对比Jmeter和Locust,到底谁更香?【GPU加速系列】PyCUDA(一):上手简单操作下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Cloudify基本介绍

介绍 Cloudify 是开源的云编排框架,管理应用的整个生命周期,主要功能包括: 应用编排:blueprint,部署和管理 应用维护:工作流,事件和日志管理 可插拔:使用插件垒起来的 标准:基于TOSCA的DSL(领域描述语言) 术语 blueprint:cloudify 用blueprint 来定义应用,blueprint 是应用的逻辑展示,包括...

uni-app 实现安卓物理返回键返回,触发弹框提示是否退出

/* 自 HBuilderX v1.1.0 起,uni-app 的页面新增onBackPress(event)生命周期函数。 onBackPress(event)返回 event ={from: backbutton | navigateBack} 说明 当用户进行以下操作时,会触发该函数: Android 实体返回键 (from = back...

(转)C7 刷机 附 win7(64)注意事项

本文摘自两篇帖子,组合而成 http://bbs.dospy.com/thread-13369514-1-381-2.html http://bbs.waptw.com/topic/threads/view/fid:227/tid:3160510/ c7刷机教程★附破解固件和刷机工具★14号更新【强刷教程】 回 复 收 藏 楼主:↘哥★是个...

百度地图开发-实现离线地图功能 05

上一篇我们根据研究学习,实现了实时定位显示功能,可以在地图上显示出自己所处的位置,并实时进行自动更新。那么接下来就让我们实现离线地图功能。 在日常的业务开发过程中,很多时候都会使用离线地图。那么我们需要在有网的时候加载并下载所处地区的地图,当没有运营商网络或WIFI的时候,就可以无感切换到离线地图,不会过大影响用户的使用。 实现离线地图功能 关于离线地图,...

.NET通用基本权限系统

 DEMO下载地址: http://download.csdn.net/detail/shecixiong/5372895 一、开发技术:B/S(.NET C# ) 1、Windows XP以上 (支援最新Win 8) 2、Microsoft Visual Studio 2010/2012 C#.NET 3、.NET Framework 4.0以上 (支援...

Facebook 开发页面App 流程讲解

在Facebook上的应用程序被加载到一个canvas页面。一个画布页面毫不夸张地说是一个空白的canvas,在Facebook上运行您的应用程序。填充canvas页面提供一个的canvas URL包含HTML,JavaScript和CSS,使您的应用程序。当一个用户请求,我们载入帆布画布页面URL在一个iframe中,该网页上。因为都在iframe中,用...