Android 性能测试实践(1)

发表于:2015-7-17 13:16

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:testly    来源:51Testing软件测试网采编

  前言:
  前段时间花了两周的时间做了一个基于Android 客户端的性能测试现在分享给大家,希望对大家有所帮助!
  Look-Look
  1,既然是基于Android客户端的性能测试那就与后台的一些API、数据接口要区分开来~!
  2,Android的性能测试能其实包括很多很多的测试项比如:资源消耗,内存泄露,电量功耗,启动耗时,渲染等等....
  怎么去做?
  1,采集数据 :采集的数据包括:内存、cpu、电量功耗、hprof(内存泄露分析文件)、响应时间等等。。。。
  2,设计场景 :搞定数据的采集后配合一些固定的场景来收集一些数据(**最好**多取几次而且每次配合不同的设备看平均值)作为最后的对比分析
  3,结果分析 :拿到数据后分析哪些模块的数据异常再去Check code定位问题的原因
  好吧下面慢慢跟大家详细的说吧!
  先写下内存篇
  内存的采集:
  Android的内存的采集这边介绍三种方式:
  1,通过Dumpsys 来取值
  adb shell dumpsys meminfo
  这里可以看到当前所有进程的内存信息!
  如果你要看详细的内存:
  adb shell  dumpsys  meminfo  pakagename or Pid
  看其中的Size 可以发现 Native Heap 和Dalvik Heap 占据了Heap Size
  dalvik就是我们平常说的java堆,我们创建的对象是在这里面分配的。
  对于内存的限制 这里纠正一下:是 dalvik heap不能超过最大限制,跟Native heap没有关系!
  最大限制查看:
  #查看单个应用程序最大内存限制
  adb shell getprop|grep heapgrowthlimit
  得到结果:
  |[dalvik.vm.heapgrowthlimit]: [96m]
  这个96M是单个程序限制最大内存,而meminfo 里面的dalvik heap size 的最大值若果超出了96m 那就很可能会发生OOM
  dalvik.vm.heapgrowthlimit和dalvik.vm.heapsize都是java虚拟机的最大内存限制,应用如果不想在dalvik heap达到heapgrowthlimit限制的时候出现OOM,需要在Manifest中的application标签中声明android:largeHeap=“true”,声明后应用dalvik heap 达到heapsize的时候才会出现OOM!
  注:设备的不一样 最大内存限制也可能不一样
  现在大多数手机 的android程序内存一般限制在96M以上甚至更高,也可能更低。
  3,用/system/xbin/procrank工具 来取值很直观
  adb shell procrank
  VSS – Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)
  RSS – Resident Set Size 实际使用物理内存(包含共享库占用的内存)
  PSS – Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)
  USS – Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)
  USS 是针对某个进程开始有可疑内存泄露的情况, 是一个程序启动了会产生的虚拟内存,一旦这个程序进程杀掉就会释放!
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号