基础性能评测
1.制定性能基线
基于滴滴其他业务线团队已有的性能经验作为参考依据,如附录1
2.确立性能场景
根据用户行为分析高频重要场景,整体性能时间在20-30分钟,每隔场景的路径不宜过长
3.性能测试方法
使用滴滴内部自研的性能工具ET、哆啦A梦(或GT)获取性能数据
4.生成测试报告
根据操作具体场景获取到的性能数据,DMTC对测试数据进行统计和分析,与制定的基线指标结合给出测试结论或者评分,最后通过报告形式展示在Web端
App性能测试是通过测试工具获取App运行过程中的各项指标数据,然后取平均值,最大值,最小值等统计值作为结果分析。
但基础性能评测只是从统计学的角度来评测App的性能,力度略粗,具体影响性能的问题点并没有暴露出来。
深度性能评测
1.内存泄漏分析
引入LeakCanary,结合自动化测试进行页面的跳转,同时上报泄漏信息。
2.卡顿分析
在App代码中引入BlockCanary工具,使用自动化进行页面测试,收集卡顿信息,并上报到DMTC,生成报告。
附录1
性能测试初步检查项和标准如下:
指标 | 测试原则 | 检查项 | 优先级 | Android测试方法 | iOS测试方法 | 备注 |
流量 | 1. 资源无重复拉取 2. 资源合理缓存和压缩 3. 业务和流量寻求平衡 |
是否存在资源的重复拉取 | P0 | 1. 使用ET关注实时流量 2.发现流量异常点,使用Charles抓包查看细节 3.H5页面使用Chrome开发者工具定位 |
1. 使用GT关注业务场景流量,和历史进行场景对比 2.使用Charles抓包查看细节,发现流量异常点 |
|
图片大小是否合适(单张Banner大图片小于100K,头像等小于10K) | P0 | |||||
合理缓存(包含H5页面),非首次时流量大幅降低 | P0 | |||||
H5页面中js/css/html代码需要进行压缩和缓存 | P1 | |||||
CPU | CPU无长时间占用,正常回落 | 手机灭屏1min后,CPU占用低于2% | P0 | 1.使用ET关注实时CPU占用 2.发现CPU异常点,使用DDMS工具Threads,TraceView定位 3.后台CPU可以使用命令top -d 1 |grep psnger进行监测 |
1.使用GT关注实时CPU占用,和历史进行场景对比 2.当发现CPU异常时,可以使用Instruments中的Time Profiler进行耗时方法定位 |
滴滴有部分场景确实有CPU持续占用,如订单进行中时实时上报位置,当有异议时需和开发确认是否必须如此 |
应用置于后台1min后,CPU占用低于2% | P0 | |||||
手机前台运行,CPU占用是否超20%占用持续10s | P1 | |||||
手机前台运行,CPU占用是否瞬时超过50% | P1 | |||||
内存 | 1.无内存泄漏 2.无内存陡增 |
主功能页面反复进出,内存无泄漏 | P0 | 1.使用ET关注实时PSS内存使用 2.发现疑似性能点后,使用DDMS 抓取hprof文件,使用Mat工具分析 3.可以借助dumpsys meminfo packagename查看内存具体分布 |
1.使用GT关注实时内存使用,和历史版本数据进行场景对比; 2.使用appconsole,Leaks,Allocation等工具检查和定位内存泄漏; |
滴滴Android debug包上有LeakCanary组件可以直接监测内存泄漏,需要遍历主要页面。 |
进入新页面,内存增量小于20M | P1 | |||||
电量 | 1.减少无端电量消耗 | 灭屏静置一会,后台无线程持续运行 | P1 | 1.使用CPU监测方法监测线程活动 2.使用Android5.0 工具 Battery-Historian分析灭屏电量 |
1.使用GT+系统耗电量排行的方式测试耗电量,和历史版本进行对比; | 数据需要和历史对比,和竞品对比 |
版本间电量无比较大增长(需建立基线数据),如大于20% | P0 | |||||
流畅度 | 1.页面滑动流畅 2.操作无明显卡顿 |
1.在主要列表页滑动,监测FPS或者SM大于45 | P0 | 1.使用ET进行流畅度监测,发现疑似点后使用TraceView或SysTrace进行定位 2.4.2及以上系统开发者模式-调试GPU过度绘制打开,查看过渡绘制情况 |
1.使用GT进行流畅度监测; 3.使用Core Animation进行FPS测试 4.当发现卡顿时使用Time Profiler定位 |
|
2.查看页面过渡绘制,无大片红色区域 | P0 | |||||
加载时间 | 1.页面打开流畅,无白屏或长时间转圈等待 | 应用冷启动时长小于3s | P0 | 1.使用ET工具或使用命令 logcat -b event | grep am_activity_launch_time实时监测加载时间 2.发现时间较长的页面,使用TraceView工具定位 |
录屏或者掐表方式进行 | |
应用热启动时长小于1s | P0 | |||||
首次进入Native页面时长小于1000ms(Wifi) | P0 | |||||
首次进入H5页面时长小于2000ms(Wifi) | P1 |