VOL 225
29
2021-03
今天距2022年277天
这是ITester软件测试小栈第225次推文
在现代生活中,大家都离不开手机,各大APP也占领较大的市场份额,所以面试过程中,面试官也会经常问到APP测试
,以下主要分享如何进行APP专项测试。
专项测试主要包含:稳定性测试、内存测试、CPU测试、耗电量测试、流量测试、弱网测试等。
一、稳定性测试
稳定性指APP在手机上长时间运行,功能是否稳定,一般稳定性测试时间是 N*12小时。在工作中一般采用Monkey进行随机测试,检测APP的健壮性。
测试方法如下:
① 跑monkey命令。
代码语言:javascript复制adb shell monkey -p packageName -v -v -v --throttle 500 -s 4 --ignore-crashes --ignore-timeouts --ignore-security-exceptions times |logcat -v time > e:logmonkeyLog.txt
命令说明:
-p :指点包名,如果要指定多个包名,需多个-p参数;
-v :指定日志的详细程度,取值1-3,三个 -v 详细程度最高;
--throttle :指定用户操作时的时延,单位毫秒;
-s :指定伪随机数生成器的seed值,取值1-10,当seed相同,产生的事件序列也相同;
--ignore-crashes :指应用程序崩溃,monkey依然发送事件,直到事件数完成;
--ignore-timeouts:指应用程序发生ANR,monkey依然发送事件,直到事件数完成;
--ignore-security-exceptions:指应用程序发生许可错误,monkey依然发送事件,直到事件数完成;
times: 执行次数;
|logcat -v time:给monkey命令的日志加上时间;
e:logmonkeyLog.txt:指定日志保存位置。
②日志分析
1)打开日志文件,比如Notepad 。
2)搜索日志:
- 程序无响应,ANR问题:在日志中搜索"ANR";
- 崩溃问题:在日志中搜索"CRASH";
- 其他问题:在日志中搜索"Exception"。
二、内存测试
① adb shell cat /proc/meminfo #查看设备内存使用情况。
② adb shell dumpsys meminfo package_name 查看某个应用内存使用信息。
我们需要分析的是:Native/Dalvik 的 Heap和Total 的 Pss。其中,Native/Dalvik 的 Heap一直增长说明存在内存泄漏了。Total是应用占据的所有内存大小,过大会导致应用被强制杀死。此外Heap Free占用过大,波动大,说明对象被频繁的GC,需要定位一下是哪些对象在被频繁的GC。
③ 一般先记录内存占用情况,然后运行APP,再记录内存占用,对比2次发生的变化。
三、CPU测试
Android 性能指标 CPU 主要关注两点:
- CPU 总体使用率;
- 应用程序 CPU 占用率。
指标获取方式:
①使用外部第三方工具来辅助测试,比如腾讯 GT,网易 Emagee 等。
②adb命令,推荐使用。
具体看某一应用占用情况。
代码语言:javascript复制adb shell "top -n 1|grep package_name"
以腾讯新闻为例。
四、耗电量测试
所谓的电量测试,就是测试移动设备电量消耗快慢的一种测试方法。Android的很多特性都比较耗电(如屏幕、GPS、sensor传感器、唤醒机制、CPU、连网等的使用),我们必须要慎重检查APP的电量使用,以免导致用户手机耗电发热,带来不良体验。
测试方式:
①使用第三方辅助工具,比如GT。
②使用adb命令:
- 重置电池手机数据:adb shell dumpsys batterystats --reset;
- 操作应用。
- 将采集数据保存到文件:adb shell dumpsys batterystats > batterystats.txt。
五、流量测试
应用的耗流也是用户的一个重要关注点,一是节省用户的使用成本,二是流量优化能带来响应速度的优化,三是能清楚的知道每个场景需消耗的流量,确认是否有能优化的空间。
测试方法:
①使用测试工具 Emmagee或者GT。
②adb命令:
1)获取app pid。
2) 初次的应用流量。
3)操作业务后,再次检测流量,两次结果相差值为对应业务的流量值。
六、弱网测试
目前移动端产品的使用用户所处的网络并非完全流畅的网络环境,因移动端产品使用场景多变,如进地铁、上公交、进电梯等,使得弱网测试显得尤为重要。毕竟考虑到各种场景的客户端展示及容错,能极大提升产品印象和用户体验。
弱网测试主要进行特殊网络状态下的功能测试并同时关注用户体验,主要包括:弱网功能测试、无网状态测试、网络切换测试、用户体验。
我们可以用fiddler,charles 可以模拟弱网。fiddler模拟弱网之前公众号有写过,这里直接放上文章链接:Fiddler及浏览器开发者工具进行弱网测试。
最后补充常见的不同网络环境下的速度,如下表所示: