Android性能测试:
     客户端性能测试
     服务端性能测试
 
客户端性能测试:
     1.ROM版本的性能测试(即手机的不同操作系统):关注功耗测试
     2.应用的性能测试
          a.启动时间
          b.内存
          c.CPU
          d.GPU
          e.功耗
          f.流量
          ......
 
一、启动时间的测试:暂分三类
     1、首次启动:应用首次启动所用的时间
     2、非首次启动
     3、应用界面切换:应用界面内切换所花费的时间
 
抓取日志计算的方法:
     adb logcat > 文件夹路径/文件名(./logcat/logcat.txt)
     find "Displayed"  ./logcat/logcat.txt > ./logcat/displayed.txt
     find "activityName" ./logcat/displayed.txt > ./locat/last.txt
     再根据last.txt文件中的时间计算启动时间
 
二、内存测试:关注内存消耗
目标: 为了让应用不占用过多的系统资源,且及时释放内存,保障整个系统的稳定性
     分类:
          1、空闲状态: 打开应用后,点击home键让应用在后台运行
          2、中等规格操作: 对应用的操作时间的间隔较长
          3、满规格操作: 对应用的操作时间的间隔较短
     测试子项:
          1.空闲状态下的应用内存消耗情况
          2.中等规格状态下的应用内存消耗情况
3.满规格状态下的应用内存消耗情况
4.应用内存峰值情况
5.应用内存泄露情况
6.应用是否常驻内存
7.压力测试后的内存使用情况
 
1)第三方工具: 网易的Emmagee、安测试、腾讯的GT等
2)抓取日志方法:
     adb shell dumpsys meminfo > ./logcat/meminfo.txt
     find "应用名称" ./logcat/meminfo.txt > ./logcat/mem.txt
3) 使用 android 提供的 procrank
 
procrank 方法(批处理)

首先去google获取procrank、procmem、libpagemap.so 三个文件 .

然后push文件,执行 adb push procrank /system/xbin adb push procmem /system/xbinadb push libpagemap.so /system/lib

赋权 adb shell chmod 6755 /system/xbin/procrank adb shell chmod 6755 /system/xbin/procmemadb shell chmod 6755 /system/lib/libpagemap.so ,

在开启工具记录 adb shell procrank |grep packagename >/address/procrank.txt
 

内存泄露方面的测试,可以通过几个方面来测试:

1.通过monkey压力测试记录内存使用情况,分析数据曲线图及日志情况

2.通过eclipse上的mat+heap来分析存在内存泄露方面的节点
 
三、CPU的测试
     测试子项:
          1.空闲状态下的应用CPU消耗情况
 2.中等规格状态下的应用CPU消耗情况
 3.满规格状态下的应用CPU消耗情况
 4.应用CPU峰值情况
CPU的测试方法分为几类:
1.使用android提供的adb shell dumpsys cpuinfo |grep packagename >/address/cpu.txt来获取
2.使用top命令 adb shell top |grep packagename>/address/cpu.txt 来获取     
 
四、GPU的测试
     测试子项:
    1. 界面过度绘制
    2. 屏幕滑动帧速率
    3. 屏幕滑动平滑度

对于过度绘制的测试主要通过人工进行测试,通过打开开发者选项中的 显示GPU过度绘制 来进行测试(PS:只有android4.2及以上的版本才具备此功能),验收的标准为:

    1. 不允许出现黑色像素
    2. 不允许存在4x过度绘制
    3. 不允许存在面积超过屏幕1/4区域的3x过度绘制(淡红色区域)
五、功耗测试
     测试子项:
          1、测试手机安装目标APK前后待机功耗无明显差异
          2、常见使用场景中能够正常进入待机,待机电流在正常范围内
          3、长时间连续使用应用无异常耗电现象
 
命令获取:

adb shell dumpsys battery

......
 
六、流量测试
     测试子项:
          1、应用首次启动流量提示
          2、应用后天连续运行2小时的流量值
          3、应用高负荷运行的流量峰值
          4、应用中等负荷运行时的流量均值
测试方法:
     1、tcpdump抓包,wireshake获取报信息计算
     2、获取uid:

adb shell dumpsys package

                  //adb shell cat /proc/uid_stat/uid/tcp_rcv
                 // adb shell cat /proc/uid_stat/uid/tcp_snd
                         adb shell cat /proc/net/xt_qtaguid/stats

 
 

Android性能测试摘入(TestHome)的更多相关文章

  1. Android性能测试 | 启动时间篇

    [转载]原文地址:http://www.51testing.com/html/93/n-3724593.html 背景介绍 Android用户也许会经常碰到以下的问题: 1)应用后台开着,手机很快没电 ...

  2. 腾讯优测优分享 | Android性能测试工具化实现

    腾讯优测专业的移动云测试平台,自动化测试提供性能测试数据,云真机实时输出性能数据,让测试更简单! 1.Android性能测试介绍 提到Android性能测试,我们总免不了俗地要首先介绍下Android ...

  3. Android性能测试工具(一)之Emmagee

    Android性能测试工具(一) 之Emmagee Emmagee是监控指定被测应用在使用过程中占用机器的CPU.内存.流量资源的性能测试小工具. 支持SDK:Android2.2以及以上版本 Emm ...

  4. 《Android 性能测试初探》

    移动测试站点推荐: https://testerhome.com/ 专项相关帖子推荐: <Android 性能测试初探>合集 移动无线应用专项测试浅谈 公开课: [腾讯课堂]Testerh ...

  5. Android性能测试

    FPS和流畅度 FPS 1.dumpsys SurfaceFlinger –latency shell 脚本通过 dumpsys SurfaceFlinger --latency 数据计算 FPS 和 ...

  6. Android程序的入口点和全局变量设置--application

    首先看看 application的官方文档 我之前一直以为Android程序的入口点就是带MAIN和LAUNCHER的Activity的onCreate方法,看来我是错了~  原来真正的入口点是 Ap ...

  7. Android程序的入口点

    原文:Android程序的入口点 android应用程序,由一到多个Activity组成.每个Activity没有很紧密的联系,因为我们可以在自己的程序中调用其它Activity,特别是调用自己的代码 ...

  8. 【腾讯开源】Android性能测试工具APT使用指南

    [腾讯开源]Android性能测试工具APT使用指南 2014-04-23 09:58 CSDN CODE 作者 CSDN CODE 17 7833 腾讯 apt 安卓 性能测试 开源 我们近日对腾讯 ...

  9. 使用traceview进行Android性能测试(转)

    使用traceview进行Android性能测试(转) 使用traceview进行Android性能测试  原文链接:http://www.cnblogs.com/Android-and-androi ...

随机推荐

  1. C#指南,重温基础,展望远方!(5)C#语句

    程序操作使用语句进行表示. C# 支持几种不同的语句,其中许多语句是从嵌入语句的角度来定义的. 使用代码块,可以在允许编写一个语句的上下文中编写多个语句. 代码块是由一系列在分隔符 { 和 } 内编写 ...

  2. SQL外键约束

    1.查询表已有的外键 select name from sys.foreign_key_columns f join sys.objects o on f.constraint_object_id=o ...

  3. Hive Group By 常见错误

    Expression not in GROUP BY key ‘ xxx’ 遇到这么一个需求,输入数据为一个ID对应多个name,要求输出数据为ID是唯一的,name随便取一个就可以. 执行以下hiv ...

  4. 用mysql写带占位符的select语句

    sql.append(" AND t.f_user_name LIKE CONCAT('%',?,'%')");//模糊查询 sql.append(" AND t.f_u ...

  5. FirstLetterUtil

    package cn.edu.hbcf.common.utils; public class FirstLetterUtil { private static int BEGIN = 45217; p ...

  6. Spark Standalone与Spark on YARN的几种提交方式

    不多说,直接上干货! Spark Standalone的几种提交方式 别忘了先启动spark集群!!! spark-shell用于调试,spark-submit用于生产. 1.spark-shell ...

  7. centos7.4 install docker-ce

    1.uninstall old version docker yum -y remove docker-common docker container-selinux docker-selinux d ...

  8. Python中如何将字符串作为变量名

    应用场景描述: 通过配置文件获取服务器上配置的服务名及运行端口号,编写python脚本检测服务上服务是否在运行? #!/usr/bin/env python # -*- coding:utf-8 -* ...

  9. html 和 javascript 的相关执行顺序

    1.dom 树和 js 的加载顺序 http://blog.csdn.net/jdsxzhao/article/details/44646463 2. jquery中各个事件执行顺序如下: https ...

  10. .NET开发笔记--对config文件的操作(3)

    1.添加新节点前进行判断看是否已存在相同的属性值,若存在进行更新,不存在则进行添加操作. protected bool AddPizza() { //初始化id int newId; string f ...