文档章节

Android app启动时间测试

g
 grcder
发布于 2016/03/25 09:28
字数 676
阅读 24
收藏 0

精选30+云产品,助力企业轻松上云!>>>

对于app测试的性能测试,启动时间是个重要指标,启动时间分为两种情况,一种是冷启动时间(通常是系统重启,即在启动前没有该app进程的情况),另一种是热启动,即app从被切换到前台(点back退出后再点击图标启动)。

从Android4.4(API 19)开始,可以从logcat获取activity的启动信息,如下我用应用宝做实验,可以看到如下的输出,从这里我们可以看到应用的这个activity启动用了639ms。

这个log信息会在activity首次被绘制时输出,也就是如果activity栈里有这个activity,再启动不会输出该信息,典型的场景是通过recent task列表切换到其他activity再立即切换回来时。

log中的时间包括系统从开始处理启动activity的时间到完成运行layout和draw函数的时间,不包括点击icon到系统接收到消息的时间。显然,这个时间也不包括启动中异步UI绘制的时间。但是我们在测试中关注的其实是用户体验的启动时间,那么上面log中的时间就不能满足我们的需求了。

不过还好,既然是用户体验我们可以用更直观的方式,使用screenrecord进行屏幕录制然后分析视频。使用如下命令录制视频。

adb shell screenrecord --bugreport /sdcard/launch.mp4

--bugreport参数会使视频输出一些时间信息和帧信息便于我们分析启动时间。
activity启动后,使用ctrl+c结束视频录制,使用

adb shell pull /sdcard/launch.mp4 /Users/xxx/Downloads/launch.mp4

导出视频到电脑,使用可以按帧播放的视频软件打开(mac上quicktime就可以,win下可以用kmplayer),并按帧播放。

按帧播放视频,视频左上角会显示每一帧的时间(精确到ms)和帧数。在视频中会看到icon会变暗然后高亮,高亮时就是系统开始处理本次icon点击事件了。可以把这里作为点击时间,然后根据体验要求,看到app启动页完全绘制完作为终止时间,这个时间减去点击时间就是app的启动时间。

在进行app启动时间测试时,系统中运行的其他app会对启动时间有干扰,如果需要进行版本对比及竞品对比,最好要尽量保持环境一致,并反复执行多次取平均值。最后,不要忘了分别测试冷启动和热启动哦~

g
粉丝 0
博文 8
码字总数 0
作品 0
成都
私信 提问
加载中
请先登录后再评论。
Appium之Native App自动化

Appium的介绍 Appium是一个开源、跨平台的自动化测试工具,用于测试Native(原生)和Hybrid(混合) 应用,支持IOS,Android和FirefoxOS(已倒闭)平台 Appium在Android平台实现自动化,是基于...

osc_jdkg3xt0
2018/04/06
3
0
Shell脚本 | 性能测试之启动时间

安卓应用的性能测试,通常包括六个指标:启动时间、内存、CPU、耗电量、流量、流畅度。 除了耗电量,其他五个指标的数据在我们团队中已经可以通过运行脚本的方式获取到。 今天给大家分享下启...

osc_foo7glsg
2019/02/22
6
0
Appium+Python自动化测试(二)——运行App程序示例

在上一篇博客中,已经将环境搭建好了。现在,我们利用搭建的环境来运行一条测试脚本,脚本中启动一个计算器的应用,并实现加法的运算。 创建模拟器 在运行App之前,首先需要创建一个Android...

osc_sa9nsts3
2019/12/04
2
0
安卓APP测试流程与技术知识大全介绍--可用于面试储备

----------全-----有不足/遗漏请补充------- 一、安卓系统知识概述 1.1 安卓系统架构 1.2 安卓权限系统 Android操作系统其实是一个多用户的linux操作系统,每个android应用使用不同的用户,运...

享有~邓盛誉~之名
04/01
0
0
Android app性能测试小结(7个性能指标)

转载:https://www.cnblogs.com/ailiailan/p/6397663.html Android app性能测试小结(7个性能指标) 1.性能测试的几个指标: 2.性能测试环境准备: 3.启动时间 3.1,监控值的获取方法 启动分...

osc_2xb14pj9
2019/09/03
17
0

没有更多内容

加载失败,请刷新页面

加载更多

FusionConputer热迁移过程记录

一、迁移原因   云平台集群内存资源不足,已超过设定阈值,内存资源已紧急告警。 二、解决思路   启用新集群,并将老集群中部分虚拟机热迁移至新集群 三、迁移的前提条件   1.被迁移虚...

osc_flwkfqx5
40分钟前
13
0
使用 ServerLess 实现云原生

笔者有幸经历了 IaaS(OS)、CaaS(Container),在这两年又听到了 FaaS(Funtion),这也是运维开发领域里的第三个阶段了吧,今天我将从一个不懂得开发的系统工程师视角以及结合之前的几篇系...

osc_t59f3rc0
41分钟前
18
0
作为软件测试的前辈你能不能给迷茫中的我一点建议?

一、为什么迷茫? 假如前面迷雾一片,作为司机的你,敢踩油门往前冲吗? 大多数人是不敢的。 因为你看不清自己的位置和发展的方向。 同理,一切对未来的恐慌、畏惧、纠结、迷茫,也是因为你看...

osc_auwur47t
43分钟前
12
0
神经机器翻译的直观解释

作者|Renu Khandelwal 编译|VK 来源|Towards Data Science 什么是神经机器翻译? 神经机器翻译是一种将一种语言翻译成另一种语言的技术。一个例子是把英语转换成印地语。让我们想想,如果你在...

osc_u61lmlkv
44分钟前
0
0
用Tableau实现动画数据可视化

作者|PRANAV DAR 编译|VK 来源|Analytics Vidhya 概述 动画可视化是一种艺术,它很容易在Tableau中创造出来 我们将在这里使用开源数据集,并在Tableau中创建自己的动画可视化 介绍 我是动画视...

osc_1oqjcug0
45分钟前
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部