尊重原著,转自http://www.kuqin.com/testing/20120228/318484.html。
淘宝Android手机客户端的性能测试开展近3个月了,期间包括性能监测工具的开发周期和工具的投入使用和优化;客户端性能测试从这里起步,从这里开始。
一般情况,对于新生的产品,都会用定势的思维考虑:优先功能测试,之后才会是安全、性能等方面。android客户端从诞生到现在,在测试上走的也是这样的路线。随着客户端功能越来越完善、越来越繁大,用户群越来越多,性能、响应、稳定等被正式提上议程,重点考虑关注。
为什么我们要从以上几个点来考虑客户端性能呢?针对上面的几个点我们是如何开展监控测试的?如何来评估一个客户端的性能好不好,是否给予通过?下面就我自己看法跟大家详细交流。
有数据统计:有很大一部分人群喜欢睡觉前、公交车、厕所、或者会议中开小差中使用手机;在看下移动互联网的发展趋势【下图摘自某次互联网统计报告】:
在上图为各大运营商所占移动市场份额的变化情况:整体上移动用户数仍绝对领先,但其市场份额也明显的下降趋势,百度推断导致此变化的原因是基础网络的性能已经开始影响移动互联网应用的使用,即网络到底好不好,速度到底快不快,已经开始在影响应用市场份额了。同样,对用户而言:特定网络下客户端流畅不流畅、响应快不快决定着用户对客户端的使用时长和粘度;此外,用户在考虑速度的同时,还会考虑跟自身利益相关的—-金额&网络流量的消耗。
一个成熟的场景包括:人、时间、地点、行为。换言之:什么特征的人在什么情况下会使用比较容易比较经常使用客户端,他们又经常使用客户端的哪些面呢?
在客户端性能监测前,我们需要采集真实场景中的性能数据:2G的网络下的时间指标、访问量较多页面的流量消耗情况、整个客户端的稳定情况。
(1)稳定性测试:【不同网络、不同软硬件系统下】
客户端可稳定运行的时间、以及长时间操作后的流量消耗和内存消耗;
(2)性能测试指标:【不同网络下】
界面流畅性、界面切换时间、占用的内存数、服务器返回数据消耗流量大小及数据的返回时间;
对以上的点,有几种方法可以采用来监测。现在我们使用的是自己开发的客户端性能工具。其中:流量统计使用TrafficStats.getUidRxBytes()来获取下行流量值;响应时间通过判断activity的状态和日志中记录的时间戳来获取响应时间段;内存通过解析dumpsys命令返回内容,截取我们需要的值进行分析;电量统计android系统提供查看。除了自己研发的小工具之外,外界也提供很多工具,都可以帮助我们完成相关的性能监测。
对用户而言,性能不等于响应。坚持客户第一,通过我们一个测试环节来保证用户手中的每个客户端都用的畅快。