APP专项测试内容
除了⼀般功能性测试和性能测试外,app还需要⼀些专项测试来发现更为深层的问题。之所以称为专项测试,是因为这些测试主要针对某个特殊⽅⾯或问题的,如兼容性测试、流量测试、电量测试、弱⽹环境测试、安全测试等。
兼容测试
兼容性测试使功能测试,只不过侧重在不同的软硬件环境,这是由终端设备的型号多样性决定的。测试核⼼内容包括
· 测试软件是否能在不同的操作系统平台上兼容,或测试软件是否能在同⼀操作平台的不同版本上兼容;
· 软件本⾝能否向前或向后兼容;
· 测试软件能否与其他相关的软件兼容;
· 数据兼容性测试,主要是指数据能否共享等。
针对App通常会考虑到如下软硬件环境:
操作系统版本及⼤版本下的⼩版本,如安卓系统4下⾯有⼦版本号:4.0.2、4.2、4.4等。
屏幕分辨率,如果代码缺少对分辨率做适配除了,就会出现错位,拉伸、模糊等各种显⽰问题。
⽹络类型,这可能涉及app中对不同⽹络的策略,及对不同⽹络带宽、延时和稳定性的处理,要考虑到3G、4G、wifi⽹络下的功能情况。对于⼿机M版⽹站,要考虑不同的浏览器类型,这包括主流⼚商⼿机上⾃带的浏览器,及主流第三⽅浏览器。
各种机型和版本不可能都覆盖,因此要遵循⼀个通⽤的选择机型原则,如下
根据APP的⽤户特征挑选出要覆盖的设备范围,以保证我们选择的机型,就是在实际应⽤当中主要⽤户使⽤的机型。
考虑⽬前市场当中⼿机的主流分辨率,这⾥可以将分辨率分为⼏个级别(⼀种常见的分法是
720P(1280x720),1080P(1920x1080),2K(2x1080p)和4K),我们选择的机型能够覆盖所有级别即可。
系统版本的不断更新,可能导致之前可以正常使⽤的软件功能出现异常,我们要保证软件可以对⼀个系列的操作系统有较好的兼容性,所以有必要考虑主要⽤户使⽤了哪些版本的系统。
⼀般选择少数主流设备上执⾏全部⽤例,在其他兼容性范围内的设备上覆盖主要功能的⽤例。将⽤户反馈问题较多的部分机型也纳⼊兼容测试的列表中,毕竟经常出现问题的地⽅就是需要我们更加关注的。
中国第一部动画片叫什么名字启动时间测试
启动时间对于App的性能测试,启动时间是个重要指标,启动时间分为两种情况,⼀种是冷启动时间(通常是系统重启,即在启动前没有该App 进程的情况),另⼀种是热启动,即App从被切换到前台(点back退出后再点击图标启动,⼿机系统中有该APP进程)。QA测试时,⼀般关注冷启动的启动时间。
冷启动的流程即为App启动流程的全过程, 需要创建App进程, 加载相关资源, 启动Main Thread, 初始化⾸屏Activity等。
常⽤的测试⽅法有
1、 通过adb命令,如adb logcat、adb shell am start -W packagename/MainActivity(app的包名和包的启动页)命令,-W就是wait的意思
其中adb shell am 命令执⾏成功后,将返回三个测量到的时间:海清老公照片
C:\Users\chenping>adb shell "pm list packages | grep dang"
package:com.dangdang.buy2
C:\Users\chenping>adb shell "dumpsys package com.dangdang.buy2 | grep category.LAUNCHER -B4"
android.intent.action.MAIN:
42c07de8 com.dangdang.buy2/.StartupActivity filter 42c08038
Action: "android.intent.action.MAIN"
Category: "android.intent.category.DEFAULT"
Category: "android.intent.category.LAUNCHER"
C:\Users\chenping>adb shell am start -W com.dangdang.buy2/.StartupActivity
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.dan
gdang.buy2/.StartupActivity }
Status: ok
Activity: com.dangdang.buy2/.StartupActivity
ThisTime: 3942
TotalTime: 3942
Complete
ThisTime:⼀般和TotalTime时间⼀样,除⾮在应⽤启动时开了⼀个透明的Activity预先处理⼀些事再显⽰出主Activity,这样将⽐TotalTime ⼩。
TotalTime:应⽤的启动时间,包括创建进程+Application初始化+Activity初始化到界⾯显⽰。TotalTime表⽰新应⽤启动的耗时,包括新进程的启动和 Activity 的启动,但不包括前⼀个应⽤Activity pause 的耗时。也就是说,开发者⼀般只要关⼼ TotalTime 即可,这个时间才是⾃⼰应⽤真正启动的耗时。
2、代码⾥埋点
流量测试
流量是指能够连接⽹络的设备在⽹络上所产⽣的数据流量。这⾥只关注⽤户层⾯的流量
⼀般对于APP流量的测试需要考虑以下两种场景,⼀种是活动状态,也就是⽤户对APP操作⽽直接导致的流量消耗;静默转态,也就是⽤户没有操作APP,APP处于后台转态时流量的消耗。
流量测试通常的⽅法为
1、 通过抓包软件,查看⼯具上的流量统计信息
2、 查看linux流量统计⽂件,如查看某个应⽤的流量,⼤致步骤为
⾸先通过ps| grep 包名 获取该应⽤pid;再通过cat /proc/{pid}/status命令获取uid;再通过cat /proc/uid_stat/{uid}/tcp_snd 命令获取发送的流量(单位byte),通过cat /proc/uid_stat/{uid}/tcp_rcv获取接收的流量。这样就可以⼤致知道该应⽤消耗的流量了。
CPU测试
测试⼀款APP在各种场景下CPU的占⽤率情况也是⽐较重要的指标。⼀般APP的CPU测试也需要考虑
大脸适合发型两种场景,⼀种是活动转态,即APP处于操作活动中,第⼆种是APP什么操作都没有,默默在后台等待。
测试CPU占⽤率的⽅法有
1、 ⼿机⾃带监控
2、 dumpsys命令,如adb shell dumpsys cpuinfo | grep {packagename}
3、 top命令,如adb shell top | grep {packagename}
shell@virgo:/data $ dumpsys cpuinfo | grep dangdang
6.4% 7728/com.dangdang.buy2: 5.1% user + 1.3% kernel / faults: 4493 minor
3.9% 7923/com.dangdang.buy2:ddrn: 2.5% user + 1.4% kernel / faults: 152 minor
好名言内存测试
对于智能⼿机⽽⾔,内存⼤⼩是固定的;因此,如果单个app的内存占⽤越⼩,⼿机上可以安装运⾏的app就越多;或者说app的内存占⽤越⼩,在⼿机上运⾏就会越流畅。所以说,内存占⽤的⼤⼩,也
是考量app性能的⼀个重要指标。
1、同样使⽤top命令,查看应⽤占⽤内存的数量,其中RSS字段表⽰实际占⽤的物理内存数,单位KB
2、adb shell dumpsys meminfo <package_name>
其中,package_name 也可以换成程序的pid,命令执⾏成功后,返回的Total 中的的 PSS 信息值就是你的应⽤真正占据的内存⼤⼩,通过这个信息,你可以轻松判别⼿机中哪些程序占内存⽐较⼤了。
shell@virgo:/data $ dumpsys meminfo com.dangdang.buy2
忘记准考证号怎么查四级成绩Applications Memory Usage (kB):
Uptime: 4066412 Realtime: 4066402
** MEMINFO in pid 10157 [com.dangdang.buy2] **
Pss Private Private Swapped Heap Heap Heap
Total Dirty Clean Dirty Size Alloc Free
------ ------ ------ ------ ------ ------ ------
基金公司注册Native Heap 0 0 0 0 11644 8556 95
Dalvik Heap 21012 20492 0 0 39440 36737 2703
Dalvik Other 7005 6924 0 0
Stack 792 792 0 0
Other dev 811 288 12 0
.so mmap 9130 3500 4852 0
.jar mmap 8 0 8 0
.apk mmap 1071 0 572 0
.dex mmap 12578 932 7060 0
Other mmap 27 4 0 0
Unknown 4724 4716 0 0
TOTAL 57158 37648 12504 0 51084 45293 2798
常⽤的⼏个描述内存占⽤的名词解释:
VSS:(Virtual Set Size)表⽰⼀个进程可访问的全部内存地址空间的⼤⼩。这个⼤⼩包括了进程已经申请但尚未使⽤的内存空间。在实际中很少⽤这种⽅式来表⽰进程占⽤内存的情况,⽤它来表⽰单个进程的内存使⽤情况是不准确的。
RSS:(Resident Set Size)表⽰⼀个进程在RAM中实际使⽤的空间地址⼤⼩,包括了全部共享库占⽤的内存,这种表⽰进程占⽤内存的情况也是不准确的。
PSS:(Proportional Set Size)表⽰⼀个进程在RAM中实际使⽤的空间地址⼤⼩,它按⽐例包含了共享库占⽤的内存。假如有3个进程使⽤同⼀个共享库,那么每个进程的PSS就包括了1/3⼤⼩的共享库内存。这种⽅式表⽰进程的内存使⽤情况较准确,但当只有⼀个进程使⽤共享库时,其情况和RSS⼀模⼀样。
USS:(Unique Set Size)表⽰⼀个进程本⾝占⽤的内存空间⼤⼩,不包含其它任何成分,这是表⽰进程内存⼤⼩的最好⽅式!
可以看到:VSS>=RSS>=PSS>=USS。
耗电量测试
电量的测试需要测试的场景⽐较多,在不同使⽤场景下消耗的电量肯定是不同的。测试场景包括
1、 待机
2、 活动转态,不断地进⾏某些场景的操作
3、 静默转态,让APP处于后台运⾏
电量的测试⽅法有
1、系统⾃带的电量统计
2、通过adb shell dumpsys batterystats命令,⾸先要初始化batterystats数据
adb shell dumpsys batterystats –reset,拔掉⼿机连接,操作你的App,操作完成后,重新连接⼿机,执⾏下⾯的命令,收集Battery数据: adb shell dumpsys batterystats > 。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论