美文网首页
app性能测试相关整理

app性能测试相关整理

作者: 倔强_2722 | 来源:发表于2020-08-10 14:06 被阅读0次

启动时长:
启动时间对于App的性能测试,启动时间是个重要指标,启动时间分为两种情况,一种是冷启动时间(通常是系统重启,即在启动前没有该App进程的情况),另一种是热启动,即App从被切换到前台(点back退出后再点击图标启动)。QA测试时,一般关注冷启动的启动时间。以下介绍三种测试启动时间的方法,供大家参考,可以有针对性的使用。

1.1 使用adb命令
1.1.1 测试方法 输入adbshell am start -W packagename/MainActivity命令,计算启动时间。


image.png

第一次启动也就是我们常说的冷启动,这时候你的应用程序的进程是没有创建的. 这也是大部分应用的使用场景.用户在桌面上点击你应用的 icon 之后,首先要创建进程,然后才启动 MainActivity.这时候adbshell am start -w packagename/MainActivity 返回的结果,就是标准的应用程序的启动时间。
关于ThisTime/TotalTime/WaitTime的区别,下面是其解释。WaitTime=endTime-startTime

startTime记录的刚准备调用startActivityAndWait()的时间点
endTime记录的是startActivityAndWait()函数调用返回的时间点
WaitTime = startActivityAndWait()调用耗时。

WaitTime 就是总的耗时,包括前一个应用Activity pause 的时间和新应用启动的时间;ThisTime 表示一连串启动Activity 的最后一个 Activity 的启动耗时;TotalTime表示新应用启动的耗时,包括新进程的启动和 Activity 的启动,但不包括前一个应用Activity pause 的耗时。也就是说,开发者一般只要关心 TotalTime 即可,这个时间才是自己应用真正启动的耗时。
总结一下,如果只关心某个应用自身启动耗时,参考TotalTime;如果关心系统启动应用耗时,参考WaitTime;如果关心应用有界面Activity启动耗时,参考ThisTime。

adb方法算出的时间是系统从开始处理启动activity的时间到完成运行layout和draw函数的时间,简单的理解就是启动这个Activity的时间,并不包括点击icon到系统接收到消息的时间。显然,这个时间并不能完整的模拟用户操作场景的启动时间。其次该方法只计算一个Activity的整体启动时间,没有分别统计其中每个函数的时间,不便于定位问题。
1.3.1 测试方法 在代码中打点,输出日志查看。拿贴吧举例,下图是整个启动要经历的操作。


image.png image.png
通过打点输出日志来测试启动时间,QA就可以很方便的查看到具体每个模块的耗时时间
参考:https://blog.csdn.net/zhusongziye/article/details/79780572

fps:
原理:android系统中以60帧/s的帧率绘制,android提供了回调方法,FrameCallback.doFrame()方法,每绘制一帧就回调该方法,所以可以用该方法看掉帧,帧率啥的
https://www.jianshu.com/p/642f47989c7c
https://www.csdn.net/article/2015-06-12/2824949/3

CPU/内存
https://developer.android.com/studio/profile/cpu-profiler?hl=zh-cn

流量原理:
一般APP和后台服务器之间的通信都是基于TCP的,所以我们可以利用此统计来测试我们APP的流量,而且安卓提供的该统计功能是按照APP纬度来统计的。
步骤:
1.使用ps命令查看所测app的uid
2.进入/proc/uid_stat/10850目录,cat获取当前tcp_snd和tcp_tcv的初始值
3.此时可以开始测试了,测试完成后再次获取tcp_snd和tcp_tcv的值
4.所测时间内的流量计算
发送流量:tcp_snd_new-tcp_snd_old=2032150-893233=1128917bytes
接收流量:tcp_rcv_new-tcp_rcv_old=18648825-1350829=17297996bytes

第三方工具
原理:通过系统API来获取基本的流量数据。TrafficStats类提供了多个方法获取不同角度的流量数据,例如腾讯Gt、网易Emmagee、平安测试助手等
优势:简单快捷
劣势:
(1)这种方法统计不到一些系统的DNS等流量,还有不使用接口封装的模块产生的流量会被遗漏
(2)目前安卓6.0以上手机不再提供该API,所以安卓6.0以上手机均无法通过第三方工具获取流量数据

作者:萧竹
链接:https://www.jianshu.com/p/d3ce220664fe
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

耗电量
Android的很多特性都比较耗电(如屏幕、GPS、sensor传感器、唤醒机制、CPU、连网等的使用),我们必须要慎重检查APP的电量使用,以免导致用户手机耗电发热,带来不良体验。
原理:
各部件单位时耗电:各部件单位时耗电信息保存在power_profile.xml文件中,如下图(以魅族MX6为例)
电量(mAh)=各部件单位时耗电量(mA)*各部件运行时长(h)

image.png
测试步骤:
adb shell dumpsys batterystats
image.png
数据分析:
https://developer.android.com/studio/profile/battery-historian?hl=zh_cn
https://juejin.im/entry/6844903760297197582

相关文章

  • app性能测试相关整理

    启动时长:启动时间对于App的性能测试,启动时间是个重要指标,启动时间分为两种情况,一种是冷启动时间(通常是系统重...

  • 性能测试相关概念及流程

    性能测试流程及相关概念 本文整理来自pro Apache jmter web application和Wikipe...

  • 性能测试技术要求及步骤

    思维导图整理性能测试技术要求如下: 思维导图整理性能测试步骤如下:

  • 目录

    Android性能测试工具Emmagee APP测试方法总结 APP测试点总结 Android APP测试流程 A...

  • APP性能测试指标选取与测试过程说明

    要弄懂APP性能测试的评估指标,我们还需要一步一步的从性能测试开始说起。 性能测试1) 什么是性能测试性能测试简单...

  • 性能测试相关

    性能测试相关概念 并发用户数(VU):系统同时处理的request/事务数 QPS(TPS)(transactio...

  • 性能测试相关

    1,性能测试的开始点,功能测试完成后,那功能测试完成的标志是什么呢,冻结代码库,即开发不再修改代码了。2,性能测试...

  • istio 性能测试

    istio 相关文章列表: istio 简介 istio 性能测试 官方性能测试 在官方给定的标准测试下(1000...

  • 浅谈移动端性能测试的方法和应用

    随着移动设备的普及和使用范围越来越广,APP的性能测试变的越来越重要。比起之前的APP测试,APP性能测试有着自己...

  • 面试百问:如何测试App性能?

    APP性能测试几乎是客户端面试必问。 为什么要做App性能测试 如果APP总是出现卡顿或网络延迟的情况,降低了用户...

网友评论

      本文标题:app性能测试相关整理

      本文链接:https://www.haomeiwen.com/subject/mohldktx.html