APP性能测试

今天在testhome上听到某位厉害的人物讲他们专项测试的性能测试,由于本身也作过性能专项测试可是是客户端PC上的,如今我总结下他提到的一些内容和我本身的一些见解java

    性能专项咱们关注哪些:shell

      1.关注资源消耗(CPU、内存、流量、功耗)工具

      2.启动耗时(冷启、热启),(这个也是不少云测时用到的一个指标)性能

      3.主要页面加载时间测试

      4.内存泄漏、抖动、卡顿、页面渲染(FPS)ui

今天我也只总结资源消耗这块,先谈谈CPUspa

1.cpu.net

cpu检测咱们要分3种状况:blog

1.在空闲时间的消耗,基本没大应用使用cpu进程

2.在运行一些应用的状况下,cpu已占50%的状况下,观察应用程序占用cpu的状况  

3.在高负荷的状况下看CPU的表现,我定义这个高负荷,cpu占用应是在80%以上

1.1 如何查看CPU的使用值

使用命令:adb shell dumpsys cpuinfo apk包名

从上图咱们能够看出:6.4%是针对这个CPU的占用率是6.4%,标红的地方5.2%占用率是用户使用的,1.1是内核的占用率,这个数只是针对1核来讲,

问题:如今手机都是多核的了,那这样的值也不会太准确,那怎么作?

经验:通常这种取值的,我在测试的时候,会多采集几回,求平均值

上面数据太多了,咱们还能够能够用下面这个命令,和top命令,获取单个数据

adb shell dumpsys cpuinfo |grep packagename

 

2.内存篇

内存的方式和cpu相似,咱们经过屡次采集,得出内存值,看内存是否异常,那如何获取内存值

怎么取内存,用命令
1.adb shell dumpsys meminfo
2.adb shell meminfo PID
 
手机运行速度就和内存有很大关系,我记得之前的同事能够研究这个内存,还专门成立了一个小组,可见这个水仍是挺深的,并且本身也是知会一点,着重有几个指标须要理解:
vss,虚拟内存 ,每个应用时一个java虚拟机,系统会分配一个内存,内存每作一个操做,这样是控制内存的大小,可是不会大于最大限制,虚拟内存就就消失掉,咱们比较关心
Rss 物理内存(包含共享库的内存),应用实际占用的内存,
pss实际使用的物理内存(比例分配共享占用内存) 如3个进程,那么进程的消耗就应该是除以3,才表示一个
USS 进程中独自占用内存
USS针对某个进程开始有内存泄漏的状况,是一个程序启动了会产生的虚拟内存,一旦这个程序进程杀掉就会释放   
这个博主我以为讲的更好,我只是皮毛而已http://blog.csdn.net/bigconvience/article/details/35553983
n内存要屡次测试
使用PID的方式查看:
 
 
咱们关注的是:Heap size 是实际用到的内存       Heap alloc :是实际分配的值
问题:可是你能够发现alloc<size 为何会这样,我如今仍是不是很还能懂,他们一句话解释是说:进程使用的是虚拟内存,虚拟内存使用远大于物理内存,我如今还不是很懂,
内存咱们还能够查看他的单个应用程序最大的内存限制
adb shell getprop |grep heapgrowthlimit
另一种方式:咱们还可使用procrank工具,就能够查看内存值

 

3.流量

大神说可使用adb shell cat/proc/“+PID+”/net/dev 的命令来查看流量数

可是我以为这样不许确,我获取流量的方式是经过抓包的方式,在一个操做内,看流量中的消耗,能够借助wireshork这个工具来帮忙

大概以上是他提到的内容和本身的理解

总结:

作性能测试的方式有两种:1.竞品分析   2.版本对比  这是如今不少公司使用的一种方式

在说一句:腾讯的GT仍是很好用的,网上能够下载,能够试试

相关文章
相关标签/搜索