精华内容
下载资源
问答
  • app客户端性能测试
    2019-08-23 10:42:40

    APP一般有以下几个性能点需要关注:
    1.cpu
    2.内存占用
    3.FPS
    4.GPU的渲染
    5.耗电
    6.耗流
    7.响应

    更多相关内容
  • App客户端性能测试点总结

    千次阅读 2019-05-25 22:17:00
    测试范围1. 空闲状态下的应用内存消耗情况2. 中等规格状态下的应用内存消耗情况3. 满规格状态下的应用内存消耗情况4. 应用内存峰值情况5. 应用内存泄露情况6. 应用是否常驻内存7. 压力测试后的内存使用情况 测试...

    一、内存

    测试范围
    1. 空闲状态下的应用内存消耗情况
    2. 中等规格状态下的应用内存消耗情况
    3. 满规格状态下的应用内存消耗情况
    4. 应用内存峰值情况
    5. 应用内存泄露情况
    6. 应用是否常驻内存
    7. 压力测试后的内存使用情况

    测试方法
    1. 第三方工具emmage,GT,itest,wetest
    2. 使用 android 提供的 adb shell dumpsys meminfo |grep packagename >/address/mem.txt 来获取
    3. 使用 android 提供的 procrank
    4. 使用 android 提供的ActivityManager.MemoryInfo()

    二、cpu

    测试范围:
    1. 空闲状态下的应用CPU消耗情况
    2. 中等规格状态下的应用CPU消耗情况
    3. 满规格状态下的应用CPU消耗情况
    4. 应用CPU峰值情况
    测试方法:
    1. 第三方工具emmage,GT,itest,wetest
    2. 使用android提供的adb shell dumpsys cpuinfo |grep packagename >/address/cpu.txt来获取
    3. 使用top命令 adb shell top |grep packagename>/address/cpu.txt 来获取

    三、启动时间

    测试范围:
    1. 首次启动 --应用首次启动所花费的时间
    2. 非首次启动 --应用非首次启动所花费的时间
    3. 应用界面切换--应用界面内切换所花费的时间
    测试方法:
    1. am start的开始时间和displayed的完成时间
    2. android 提供的 DisplayManager 来获取 activity 的启动时间

    四、耗电量

    测试范围:
    1. 测试手机安装目标APK前后待机功耗无明显差异
    2. 常见使用场景中能够正常进入待机,待机电流在正常范围内.
    3. 长时间连续使用应用无异常耗电现象
    测试方法:
    1. 基于android提供的PowerManager.WakeLock来进行
    2. 功耗的计算=CPU消耗+Wake lock消耗+数据传输消耗+GPS消耗+Wi-Fi连接消耗
    3. adb shell dumpsys battery
    4. 耗电管家,电池管家

    五、流量

    测试范围:
    1. 应用首次启动流量提示
    2. 应用后台连续运行 2 小时的流量值
    3. 应用高负荷运行的流量峰值
    4. 应用中等负荷运行时的流量均值
    测试方法:
    1. 第三方工具emmage,GT,itest,wetest
    2. 通过 tcpdump 抓包,再通过 wireshake 直接读取包信息来获得流量
    3. 查看 adb shell cat /proc/uid_stat/uid/tcp_rcv adb shell cat /proc/uid_stat/uid/tcp_snd

    六、补充adb命令

    1. 显示android模拟器上所有在执行的进程:adb shell ps

    2. adb shell 获取手机设备信息:
    1)设备基本信息:cat /system/build.prop | grep "product"
    2)CPU信息:/proc/cpuinfo和/proc/stat
    3)内存:/proc/meminfo和adb shell dumpsys meminfo
    Terms
    VSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)
    RSS - Resident Set Size 实际使用物理内存(包含共享库占用的内存)
    PSS - Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)
    USS - Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)

    转载于:https://www.cnblogs.com/zichuan/p/10924198.html

    展开全文
  • 客户端性能测试工具分析培训目的了解客户端性能测试工具实现原理android端工具开发的一些技巧学会分析问题解决问题的基本方法客户端性能测试需求分析目前日常的客户端性能测试有以下种类可能以后会增加 CPU内存占用...
  • App客户端性能工具安装及测试方法,包括CPU,内存,电量等
  • app性能测试

    千次阅读 2021-05-19 11:08:41
    1 app性能测试 提到APP的性能测试这个概念比较笼统,因为APP的性能...1.2 app客户端性能测试 app客户端的性能测试,主要是指app运行操作过程当中,监测当前手机系统的一些性能指标,以此来确定app的性能是否会影响到

    1 app性能测试

    提到APP的性能测试这个概念比较笼统,因为APP的性能测试分为服务端的性能和手机端的性能测试

    1.1 app服务端性能测试

    app服务端的性能测试,利用jmeter等工具模拟并发,压测服务器系统,服务端性能测试,一般可以通过接口来测,关注的指标主要包括以下几个:

    平均响应时间

    错误率

    吞吐量

    CPU/内存占用率

    网络/硬盘的读写速度

    1.2 app客户端性能测试

    app客户端的性能测试,主要是指app运行操作过程当中,监测当前手机系统的一些性能指标,以此来确定app的性能是否会影响到用户的体验。app的性能指标主要包括以下几个:

    启动速度

    CPU占用率

    内存占用率

    电量消耗

    流量消耗

    流畅度

    2 测试方案及工具选择

    2.1 perfdog

    官网:https://perfdog.qq.com/

    介绍:腾讯出品的移动全平台iOS/Android性能测试、分析工具平台。

    特点

    1. 无需ROOT/越狱
    2. 支持移动全平台
    3. 数据准确,工具本身对测试设备CPU的性能影响<1%,帧率无影响
    4. 应用广泛支持所有APP应用、游戏、小程序、小游戏、H5、web等
    5. 云端数据在线分析
    6. 支持团队合作

    2.2 测试方案

    2.2.1 启动时间

    手机APP的启动时长是一个很容易被用户感知的性能指标,启动时长过长会让用户极不愿意继续等待。因此启动时长是一项比较靠前的性能指标。APP的启时长分为两种情况,一种是冷启动时间,另一种是热启动。

    冷启动:应用序首次启动,进程首次创建并加载资源的过程
    热启动:指app没有被后台杀死,仍然在后台运行,通常我们再次去打开这个app,这种启动方式叫热启动

    1)场景设计

    1. 冷启动

      场景设计:清除后台所有应用,等待数秒 ,启动软件

    2. 热启动

      场景设计:切换到桌面,等待数秒 ,重新切换回应用

    2)测试方法

    • 使用adb命令进行测试

      • 冷启动:应用进程首次启动

        • adb shell am start -W 包名/界面名
      • 热启动:切换到主页后再启动应用

        • adb shell input keyevent 3
        • adb shell am start -W 包名/界面名

    3)结果分析:

    通过adb命令可获取的时间如下:

    ThisTime :该界面 ( activity ) 启动耗时(毫秒)

    TotalTime :应用自身启动耗时 = ThisTime + 应用 application 等资源启动时间(毫秒)

    WaitTime :系统启动应用耗时 = TotalTime + 系统资源启动时间(毫秒)

    如何确定启动时间是否符合标准?

    1. 根据用户体验

    2. 和以往版本进行对比

    3. 横向对比,和同类产品一起测试,不超过同类产品的1倍

    2.2.2 流畅度(FPS)

    FPS是图像领域中的定义,是指画面每秒传输帧数,通俗来讲就是指动画或视频的画面数。FPS是测量用于保存、显示动态视频的信息数量。每秒钟帧数愈多,所显示的动作就会愈流畅。

    FPS(1s内游戏画面或者应用界面真实平均刷新次数,俗称帧率/FPS)

    • AVG(FPS):平均帧率(一段时间内的平均FPS)
    • Var(FPS):帧率方差(一段时间内FPS方差)
    • Drop(FPS):降帧次数(平均每小时相邻的个FPS点下降大于8帧的次数)

    Jank(1s内卡顿次数)

    • BigJank:1s内严重卡顿次数
    • Jank(/10分钟):平均每十分钟卡顿次数
    • BigJank(/10分钟):平均每十分钟严重卡顿次数

    FTime(上下两帧画面显示时间间隔,即认定为帧耗时)

    • AVG(FTime):平均帧耗时
    • Delta(FTime):增量耗时(平均每小时两帧之间时间差>100ms的次数)

    PerfDog-Stutter(卡顿率)

    PerfDog Stutter 定义:测试过程中,卡顿时长的占比。即Stutter(卡顿率)=卡顿时长/总时长

    1)场景设计

    打开被测软件的每一个页面进行测试

    2)测试方法

    在app上进行操作,使用perfdog工具采集数据

    3)结果分析:

    游戏方面

    ​ 游戏流畅度是最影响用户体验的,所以需要重点关注FPS、Jank及卡顿率。

    在这里插入图片描述

    APP方面

    APP也需要关注FPS、Jank及卡顿率。只是需要区分使用场景,具体的数据对比可以和以往版本进行对比,也可和竞品横向对比。

    1) 静态页面窗

    ​ 只需关注FPS,理论FPS应该为0,否则,说明有冗余刷新,容易引起手机发热及耗电。

    2) 有滚动动画页面窗口

    ​ 只需关注FPS,FPS处于合适值即可,无需高频刷新。

    3) 快速滑动页面窗口

    ​ 需要关注FPS、Jank及卡顿率。一般滑动状态下,帧率越高越好,Jank越小越好。

    4) 播放视频页面窗口

    ​ 需要关注FPS、Jank及卡顿率,视频卡顿直接影响用户。视频一般帧率18-24帧,Jank=0。比如微信播放视频、视频播放器等。

    2.2.3 CPU利用率

    某些场景下我们去使用App,可能会碰到手机会出现发热发烫的现象。这是因为CPU使用率过高、CPU过于繁忙,会使得整个系统无法响应用户,整体性能降低,用户体验变得相当差,主要关注的是cpu的占用率

    • CPU Usage:传统cpu利用率,也叫未规范化cpu利用率

      • 计算方法:当前时刻cpu频率下,CPU Usage = CPU执行时间/CPU总时间,一般adb等获取的都是未规范化的cpu利用率
    • CPU Usage(Normalized):规范化cpu利用率

      • 由于移动设备CPU频率时刻变化,用传统CPU利用率计算方法,假定在低频率时刻计算出CPU利用率=30%,和在CPU高频时刻计算出CPU利用率=30%。同样都是30%但性能消耗是完全不样的,明显高频消耗更高。传统CPU利用率已无法真实反映性能消耗。

        所以我们需要一种规范化(可量化)的统计方式。将频率因素考虑进去。

        CPU Usage(Normalized)= (CPU执行时间/CPU总时间) * (当前时刻所有CPU频率之和/所有CPU频率最大值之和)。

    1)CPU 测试场景设计

    • 测试点:

      1. 空闲时间(切换至后台)的消耗,基本没大应用使用cpu

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

      3. 在高负荷的情况下看CPU的表现(cpu占用应是在80%以上)

    • 具体场景:

      1. 应用空闲状态运行监测CPU占用率,空闲状态:应用按Home键退到后台,不再占用系统的状态(通常是灭屏半分钟后),CPU占用率=0%
      2. 应用中等规格运行监测CPU占用率,中等规格:模拟用户最常见的使用场景,CPU占用率≤30%
      3. 应用满规格长时间正常运行监测CPU占用率,CPU占用率≤30%
      4. 应用正常运行期间监测CPU占用率峰值,应用正常运行:打开应用进行基本操作,CPU占用率≤50%

    2)测试方法

    使用perfdog采集不同场景数据

    结果分析:

    • 和自身app的上个版本对比
    • 和竞品对比
    • 自身app各个界面对比
    2.2.4 内存

    在Android系统中,每个APP进程除了同其他进程共享内存(shared dirty)外,还独用私有内存(private dirty),通常我们使用PSS(私有内存+比例分配共享内存)来衡量一个APP的内存开销

    app内存有以下几个:

    VSS- Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)

    RSS- Resident Set Size 实际使用物理内存(包含共享库占用的内存)

    PSS- Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)

    USS- Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)

    一般来说内存占用大小有如下规律:VSS >= RSS >= PSS >= USS

    而perfdog的Memory也就是Android PSS Memory,也是我们通常用作代表内存的数据,是实际使用内存的物理内存大小

    1)内存测试场景设计

    空闲状态:切换至后台或者启动后不做任何操作,消耗内存最少

    中强度状态:时间偏长的操作应用

    强度状态:高强度使用应用,可以跑monkey来测试(通常用来测内存泄漏)

    内存泄漏:指应用里的内存一直没有释放,内存一直增加 ,系统内存一直减少

    2) 测试方法

    使用perfdog采集不同场景数据

    3) 结果分析:

    退出某个页面后,内存是否有回落

    进行某个操作后,内存是否增长过快

    旧版本和新版本比较

    新版本和竞品比较

    2.2.5 流量

    目前的网络类型包含2G\3G\4G\wifi,其中还有不同运营商的区分,我们在APP的使用中经常遇到大资源,重复请求,调用响应慢,调用失败等各种情况。在不同的网络类型之下,我们不仅要控制流量使用,还需要加快请求的响应。

    1)流量测试场景设计

    1. 安装后首次启动到全部加载完成的所有耗流
    2. 非首次启动到全部加载完成的所有耗流
    3. 后台运行耗流
    4. 运行某个业务场景消耗的总流量

    2)测试方法

    使用 perfdog 测试工具采集流量数据

    注意! perfdog流量测试仅支持wifi连接状态

    3)测试结果与分析

    旧版本和新版本比较

    新版本和竞品比较

    场景耗流是否通过
    打开登录页面,输入用户名与密码进行登录,点击签到并签到成功xxx KB是/否
    打开商品搜索页,搜索xxx,直到第一页搜索的内容全部展示出来xxx MB是/否
    2.2.6 电量

    对于PC来说,移动设备的电池电量是非常有限的,保持持久的续航能力尤为重要。我们必须要慎重检查APP的电量使用,以免导致用户手机耗电发热,带来不良体验

    1)耗电量测试场景设计

    1. GPS定位,比如:导航类软件需要获取实时位置的时候
      • 场景设计:打开xx导航软件,开启GPS定位,保持在导航页面中运行十分钟后,关闭GPS定位
      • 原因:开启GPS定位会使用到手机的传感器,所以需要测试开启该功能后的电量消耗
    2. 屏幕亮度,比如:用户站在太阳地下看不清屏幕时会调亮手机亮度
      • 场景设计:手机亮度设置为100%的亮度,打开xx软件运行十分钟后退出软件,关闭后台
      • 原因:测试不同屏幕亮度时软件的耗电量
    3. 网络传输,比如:即时类聊天软件需要时刻保持网络畅通,或者是一些类似于播放视频软件需要大量使用到网络的软件
      • 场景设计:打开xx视频软件,观看视频十分钟后退出软件,关闭后台
      • 原因:使用网络时会调用到手机的信号接收、发送模块,这个情况下如果程序没有进行合理的调用,会导致这些模块一直在被使用,导致电量消耗大
    4. cpu频率,需要大量运算的页面,比如:页面中有大量动图、视频需要处理,或者大量图表需要绘制
      • 场景设计:打开xx炒股软件的股票走势页面,停留十分钟后退出软件,关闭后台;
      • 原因:在需要动态加载图表的页面时会使用到CPU进行运算绘制,如果程序中出现冗余的循环逻辑时会使CPU进行不必要的负载,导致耗电量剧增
    5. 内存调度,比如:每次加载页面都需要加载图像的页面
      • 场景设计:打开xx电商软件商品浏览页,向下浏览页面五分钟后退出软件,关闭后台
      • 原因:该场景需要大量加载图像,频繁调用运行内存,如果每次都需要重新加载的话会大量消耗运行内存,导致电量消耗大,所以需要测试电量消耗
    6. 长时间连续使用 / 后台运行状态下应用无异常耗电现象
      • 场景设计:打开xx软件,连续使用一个小时
      • 原因:长时间连续使用过程中电量消耗应该处于一个较为平缓正常的耗电,而不应该在使用一段时间以后出现耗电量剧增的情况;同时软件在后台运行(不进行联网操作、GPS定位等功能)时,电量消耗应该极低

    2)测试方法

    使用 perfdog 采集手机耗电量

    测的是整机,不是单个APP,测试时要尽量减少系统本身和其他app的干扰,同时无法得知app具体哪方面的耗电量高。

    注意! perfdog电量测试仅支持wifi连接状态

    3)结果分析

    场景测试页面测试时长耗电量
    使用GPS功能导航页面10minxxx%
    置于后台使用GPS功能导航页面10minxxx%

    根据测试后拿取的结果,与同类产品进行对比,或者与本产品的其他页面进行对比,分析是否有异常耗电的情况。

    3 参考资料

    3.1 VSS、RSS、PSS、USS内存

    VSS:Virtual Set Size,虚拟耗用内存。它是一个进程能访问的所有内存空间地址的大小。这个大小包含了
    一些没有驻留在RAM中的内存,就像mallocs已经被分配,但还没有写入。VSS很少用来测量程序的实际使
    用内存。

    RSS:Resident Set Size,实际使用物理内存。RSS是一个进程在RAM中实际持有的内存大小。RSS可能会
    产生误导,因为它包含了所有该进程使用的共享库所占用的内存,一个被加载到内存中的共享库可能有很
    多进程会使用它。RSS不是单个进程使用内存量的精确表示。

    PSS:Proportional Set Size,实际使用的物理内存,它与RSS不同,它会按比例分配共享库所占用的内存。
    例如,如果有三个进程共享一个占30页内存控件的共享库,每个进程在计算PSS的时候,只会计算10页。
    PSS是一个非常有用的数值,如果系统中所有的进程的PSS相加,所得和即为系统占用内存的总和。当一个
    进程被杀死后,它所占用的共享库内存将会被其他仍然使用该共享库的进程所分担。在这种方式下,PSS
    也会带来误导,因为当一个进程被杀后,PSS并不代表系统回收的内存大小。

    USS:Unique Set Size,进程独自占用的物理内存。这部分内存完全是该进程独享的。USS是一个非常有用
    的数值,因为它表明了运行一个特定进程所需的真正内存成本。当一个进程被杀死,USS就是所有系统回
    收的内存。USS是用来检查进程中是否有内存泄露的最好选择。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YNNCJp1M-1621393708995)(app性能测试.assets/image-20210515165014128.png)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ye8YlW89-1621393708999)(app性能测试.assets/image-20210515165025343.png)]

    共享库,每个进程在计算PSS的时候,只会计算10页。
    PSS是一个非常有用的数值,如果系统中所有的进程的PSS相加,所得和即为系统占用内存的总和。当一个
    进程被杀死后,它所占用的共享库内存将会被其他仍然使用该共享库的进程所分担。在这种方式下,PSS
    也会带来误导,因为当一个进程被杀后,PSS并不代表系统回收的内存大小。

    USS:Unique Set Size,进程独自占用的物理内存。这部分内存完全是该进程独享的。USS是一个非常有用
    的数值,因为它表明了运行一个特定进程所需的真正内存成本。当一个进程被杀死,USS就是所有系统回
    收的内存。USS是用来检查进程中是否有内存泄露的最好选择。

    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • APP性能测试

    千次阅读 2022-03-12 16:27:34
    一、android的app性能测试包括的测试项:  响应、内存、CPU、FPS、GPU、耗电、耗流量、弱网络 二、响应  1. 响应主要测试点:  1. 启动:首次启动app的时间间隔(只是启动时间,不包括页面加载)  2. 热...

    一、android的app性能测试包括的测试项: 

      响应、内存、CPU、FPS、GPU、耗电、耗流量、弱网络

    二、响应

      1. 响应主要测试点:

        1. 启动:首次启动app的时间间隔(只是启动时间,不包括页面加载)

        2. 热启动:非首次启动  app的时间间隔(只是启动时间,不包括页面加载)

        3. 完全启动:从启动到首页完全加载出来的时间间隔

        4. 有网  启动:从发起跳转,到页面完全加载出来的时间间隔

        5. 无网启动:从发起跳转,到页面完全加载出来的时间间隔  (在项目中,主要测试关注点是冷启动,热启动) 

      2. 测试方法:

        1. 使用adb命令

          1. 冷启动 adb shell am start -W packageName/ActivityName(绝对路径,首个  Activity)

            

              ThisTime:该Activity的启动耗时;TotalTime: 应用自身启动耗时, ThisTime+应用application等资源启动时间;  WaitTime: 系统启动应用耗时,TotalTime+系统资源启动时间

          2. 热启动:按back按键后再启动adb命令

            

             测试标准:冷启动时间不超过1.5s, 热启动不超过1s

          3. 完全启动,无网启动,有网启动都可以通过fiddler抓包来获取启动的时间,通过设置网速和抓包,可以获取启动时  间,但是有一定的误差。在项目中,一般只需要测试冷启动,热启动便可

    三、内存

      测试点:

        1. 空闲状态:切换至后台或者启动后不做任何操作,消耗内存最少。

        2. 中强度状态:时间偏长的操作应  用。

        3. 高强度状态:高强度使用应用,可以跑monkey来测试(通常用来测试内存泄漏)。 

      内存泄漏:指应用里的内存一直没有释放,内存一直增加 ,系统内存一直减少 

      测试方法:

        1. 使用adb命令: adb shell dumpsys meminfo packageName 

         获取应用包名和Actively: adb shell dumpsys window | findstr mCurrentFocus

          

         测试关注点: 1. Native heap alloc:JIN的内存分配   2. Dalvik heap alloc:Java层的内存分配   3. PSS

          

         关注点:

          1. 退出某个页面后,内存是否有回落。 如果没有及时回落,且程序自动GC或者手动GC,那便可确认有问题。

          2. 进行某个操作后,内存是否增长过快。 如果增长过快,也有可能存在风险,需重复操作确认。测试方法:借助性能测试工具:GC、Emmagee(只支持安卓6.0及以下的版本)、iTest等工具均可以监控。

      android检查内存泄露步骤:

        1、运行Monkey进行压力测试:

          adb shell monkey -p cn.microinvestment.weitou --pct-touch 100 --ingore-crashes --throttle 1000 -s 100 -v -v 50

        2、监控内存值,如果出现过大等递增异常则保存HPROF文件(hprof文件是Java 虚拟机的Heap快照)用于分析查看应用内存的命令:

          adb shell dumpsys meminfo cn.microinvestment.weitou(进程名)

          如果发现内存过大,则保存HPROF文件:adb shell am dumpheap <进程名> <保存路径>

        3、分析hprof文件

          用工具MAT来查看,首先还要这个HPROF文件转换成MAT可读的文件

          在Android SDK tool里面有个hprof-conv命令:

          hprof-conv <原HPROF文件路径> <转换后的HPROF路径>

          hprof-conv a.hprof b.hprof

        4、用MAT工具打开转换后的HPROF文件

          一般选择Leak Suspects Report(通过SQL语句来查询对象有没有被释放掉,如果有多个相同的对象,则会存在内存泄露的问题)

    四、CPU

      1. 测试点:

        1. 在空闲时间(切换至后台)的消耗,基本没大应用使用cpu

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

        3. 在高负荷的情况下看CPU的表现(cpu占用应是在80%以上)

      2. 具体场景:

        1. 应用空闲状态运行监测CPU占用率 空闲状态:应用按Home键退到后台,不再占用系统的状态(通常  是灭屏半分钟后) CPU占用率=0% 

        2. 应用中等规格运行监测CPU占用率 中等规格:模拟用户最常见的使用场景;CPU占用率≤30% 

        3. 应用满规格长时间正常运行监测CPU占用率 Monkey测试;CPU占用率≤30% 

        4. 应用正常运行期间监测CPU占用率峰值 应用正常运行:打开应用进行基本操作;CPU占用率≤50%

      3. 测试方法:

        1. 使用adb命令:adb shell

          1. adb shell dumpsys cpuinfo | grep packagename

            

          2. top命令

            adb shell top -m 10 -s cpu   查看占用cpu最高的前10个程序(-t 显示进程名称,-s 按指定行排序,-n 在退出前刷新几次,-d 刷新间隔,-m 显示最大数量)

            adb shell top | grep PackageName  查询某个应用的CPU占用率(如果反复进行某个操作,cpu占用过高且一直无法释放,那便可能存在风险)

    五、TPS

      FPS是图像领域中的定义,是指画面每秒传输帧数,通俗来讲就是指动画或视频的画面数。FPS是测量用于保存、显  示动态视频的信息数量。每秒钟帧数越多,所显示的动作就会越流畅。  一般来说,Android设备的屏幕刷新率为60帧/s,要保持画面流畅不卡

    顿,要求每一帧的时间不超过  1000/60=16.6ms,这就是16ms的黄金准则,如果中间的某些帧的渲染时间超过16ms,就会导致这段时间的画面发  生了跳帧,因此原本流畅的画面变发生了卡顿。

      1. 测试方法:

        1. adb命令

          1. 打开手机:开发者选项—>profile GPU rendering(GPU渲染模式分析/GPU显示配置文  件/GPU呈现模式分析) —> in adb shell dumpsys gfxinfo

          2. 操作要测试的apk

          3. cmd窗口输入命令: adb shell  dumpsys gfxinfo packageName

          4. 得到一个矩阵数据,计算矩阵中帧率大于16的点所占比例,即为卡顿比

            

             含义:

              Draw: 表示在Java中创建显示列表部分中,OnDraw()方法占用的时间

              Process:表示渲染引擎执行显示列  表所花的时间,view越多,时间就越长

              Execute:表示把一帧数据发送到屏幕上排版显示实际花费的时间

              Draw + Process + Execute = 完整显示一帧 ,这个时间要小于16ms才能保存每秒60帧

          5. 通过excel进行表格处理可以直观的查看软件的流畅度

        2. 也可以使用第三方测试工具:Emmagee、GT等

    六、GPU

      GPU渲染是指在一个像素点上绘制多次(超过一次):显示一个什么都没有做的activity界面算作画了1层,给activity  加一个背景是第2层,在上面放了一个Text View(有背景的Text View)是第3层,Text View显示文本就是第4层仅仅  只是为了显示一个文本,却

    在同一个像素点绘制了四次,这是一定要优化的。过度绘制对动画性能的影响是极其严重  的,如果你想要流畅的动画效果,那么一定不能忽视过度绘制。 

      GPU过渡渲染不同的颜色代表不同的绘制程度

        1. 原色:无过渡绘制

        2. 蓝色:绘制一次 (理想状态)

        3. 绿  色:绘制二次

        4. 浅红:绘制三次 (可以优化)

        5. 深红:绘制四次 (必须优化) 

      测试指标:

        1. 控制过渡绘制为2x

        2. 不允许存在4x过渡绘制

        3. 不允许存在面积超过屏幕1/4的3x过渡绘制

    七、电量

      1. 测试场景:

        1. app运行但没有执行业务操作时的耗电量 

        2. app运行且密集执行业务操作时的耗电量 

        3. app后台运行的耗电量

      2. 测试方法: 

       方法1:

        1. 采用市场上提供的第三方工具,如金山电池管家之类的

       方法2:

        1.  android通过adb命令“adb shell dumpsys battery”来获取应用的耗电量信息,adb shell dumpsys battery set  level 100,修改电量

          

        2. iOS通过Apple的官方工具Sysdiagnose来收集耗电量信息,然后,可以进一步通过Instrument工具链 中的  Energy Diagnostics进行耗电量分析 

        3. 获取整个设备的电量消耗信息: adb shell dumpsys batterystats | more 

        4. 获取某个apk的电量消耗信息: adb shell dumpsys batterystats com.thestore.main | more 

        5. 手机当前使用的内存情况,各个线程的内存占用情况:adb shell dumpsys meminfo 

        6. 手机的电池信息:adb shell dumpsys batteryinfo 

        7. adb shell top -m 10 -s cpu CPU消耗前10的应用清单

    八、流量

      借助于Android和iOS自带的工具进行流量统计,也可以利 用tcpdump、Wireshark和Fiddler等网络分析工具

      1. 测试场景:

        1. app执行业务操作引起的流量 

        2. app在后台运行时的消耗流量 

        3. app安装完成后首次启动耗费的流量 

        4. app安装包本身的大小 

        5. app内购买或者升级需要的流量

      2. 测试方法:

        android系统 

        1. 网络流量信息通常存储在/proc/net/dev目录下,也可以直接利用ADB工具获取实时 的流量信息 

        2. 获取被测程序的uid,pid:adb shell ps |findstr com.thestore.main ;下面的uid:10129,pid:30608

        3. 也可以通过pid查询uid:adb shell cat proc/30608/status 

        4. 获取实时的累计流量信息: adb shell 

          cat /proc/uid_status/10129/tcp_rcv 接收流量信息--下行流量 

          cat /proc/uid_status/10129/tcp_snd 发送流量信息--上行流量 

        iOS系统

          可以使用Xcode自带的性能分析工具集中的Network Activity,分析具体的流量使用情况 

      3. 降低流量的场景方法: 

        1. 启用数据压缩,尤其是图片 

        2. 使用优化的数据格式,比如同样信息量的JSON文件就要比XML文件小 

        3. 遇到既需要加密又需要压缩的场景,一定是先压缩再加密 

        4. 减少单次GUI操作触发的后台调用数量 

        5. 每次回传数据尽可能只包括必要的数据 

        6. 启用客户端的缓存机制

    九、弱网络

    1. 测试方法:
      1.使用真实的SIM卡、运营商网络来进行测试(移动无线测试中存在一些特别的BUG必须在特定的真实的运营商网络下才会发现)
      2.通过代理的方式模拟弱网环境进行测试(charles 硬延迟)
      3连接模拟弱网的热点进行测试

    2. 热点模拟方法:
      1.通过设置iPhone的开发者模式之后共享热点(硬延迟)
      2.FaceBook开源的ATC(可使用树莓派来搭建ACT环境)

    3. 用户体验需要做的:
      1.在应用中统一弱网加载的界面样式、动画效果、菊花icon等
      2.统一网络错误、服务端错误、超时等展现给用户的界面和提示语句
      3.定义清楚在每个中间过程是的用户交互行为 

    展开全文
  • 如何做好App性能测试

    千次阅读 2022-03-21 16:34:22
    如何做好App性能测试,App性能测试和网站性能测试不一样,它分成客户端性能测试和服务器性能测试,下面我们详细来说明:  1.客户端性能测试  一个App做的好不好,不仅仅只反应在功能上。被测的app在中低端机上的...
  • 一、客户端性能测试的需求和重要性 客户端性能的重要性不言而喻,一方面影响着客户端整体质量稳定性,任何性能指标的越界都可能造成整个APP的崩溃,例如CPU使用过高导致应用hang住,内存占用过多导致OOM等等;...
  • 简介Emmagee是网易杭州研究院qa团队开发的一款用于监控安卓客户端性能的小工具,可以监控指定被测应用在使用过程中器的启动时间、CPU、内存、流量和电量变化情况,用户可自定义配置监控的频率以及性能的实时显示,并...
  • 客户端性能测试基本流程》

    千次阅读 2021-12-02 10:03:48
    为了更好的让小伙伴,了解一个项目的客户端性能测试的流程,在这里简单的进行了整理。
  • App客户端(包括Android和IOS)性能测试

    千次阅读 2020-01-02 00:00:00
    需要安装的工具1、JDK2、Android SDK3、性能狗4、SoloPi相关指标测试方法1、启动时长2、安装时长3、卸载时长4、CPU、内存、电量、流量5、主功能页面加载时间6、报告模板需要安装的工具 1、JDK ...
  • 客户端性能测试就是,从业务和用户的角度出发,设计合理且有效的性能测试场景,制定各性能场景下的客户端性能指标(内存、CPU、卡顿数、帧率、电量、加载时长等),并制定规范化的执行流程,按照执行标准执行性能场景...
  • 一、Android客户端性能测试常见指标 1、内存 2、CPU 3、流量 4、电量 5、启动速度 6、滑动速度、界面切换速度 7、与服务器交互的网络速度 二、预期标准指定原则 1、分析竞争对手的产品,所有指标要强于...
  • 客户端App业务测试

    2021-07-08 20:11:48
    客户端app测试时,一般从以下角度进行测试分析 UI 1.从用户体验角度 2.根据产品设计原型 功能 业务逻辑方面 兼容性 1.高中低端机型 2.不同分辨率机型 3.不同屏幕尺寸机型 4.不同厂商 安全性 交互性 异常情况处理 .....
  • App性能测试

    2020-12-02 23:52:01
    App性能测试目前App测试招聘的越来越多,各种应用、游戏都逐步从pc端向App端迁移,薪水也是与日俱增,未来App应用的市场占有量将远远超越pc...客户端性能需要借助一些专门的工具来测试,App性能的关注点主要有耗电量...
  • APP性能测试指标

    千次阅读 2022-01-11 11:08:03
    App 性能问题如 app 使用时卡顿严重或者加载页面慢,cpu 占用率高,app 闪退等,在 测试过程中,则需特别关注性能方面的体验,app 性能差,通常会导致用户对 app 的使 用率下降,卸载率上升。 响应 软件的响应...
  • APP 性能测试工具

    千次阅读 2021-12-29 13:43:00
    一、APP 自动化测试工具 Appium 官网:http://appium.io/ GitHub 地址:https://github.com/appium/appium 介绍: Appium 是一个开源的、跨平台的自动化测试工具。支持自动化 iOS,Android 和 Windows 桌面平台上...
  • APP性能测试分为客户端性能测试和服务端性能测试,客户端的性能测试主要是针对启动快慢、耗电量、耗流量、内存使用等指标进行评估,目前主流的APP客户端性能测试工具有腾讯GT、testin、听云、AppsTest等等。...
  • 前几天,收到一条【腾讯科技】邀请函,邀请体验腾讯最近推出的一款客户端性能测试工具PerfDog,因为我之前也做过客户端的性能测试,并且也构思过,做一款PC端的工具采集数据(当时的核心目的是让团队每个人都能参与到...
  • 关于app端的性能测试

    2021-06-28 13:43:29
    关于app端的性能测试关于app端的性能测试响应 关于app端的性能测试 响应 内存 cpu FPS(页面流畅度) GPU的过度渲染 耗电量 耗流量 手机版本号的兼容性 屏幕分辨率的兼容性 稳定性测试 安全性测试 响应 软件的响应...
  • APP性能测试(手机端和服务端)

    千次阅读 2021-03-03 21:52:39
    APP性能测试分为手机端和服务端的性能。 手机端性能 手机端性能主要检查资源问题,如CPU,内的占用,耗电量、流量的情况。 1.CPU占用 据经验表明,在使用APP软件时,如果CPU占用率低于20%表示为最佳状态,如果CPU...
  • Emmagee: app的性能测试小工具;用来收集app消耗手机资源的情况。 App客户端的性能小工具; 测试客户端性能; 不是测试服务器性能 Emmagee使用过程: Emmagee下载地址:http://www.downcc.com/soft/86297.html A)在...
  • APP性能测试之帧率测试

    千次阅读 2021-12-23 14:20:05
    Android FPS测试 adb 命令获取 1、环境准备 将设备连接到PC,输入adb devices可以查看到设备信息。 并且在设置->开发者选项->监控->GPU呈现模式分析->勾选上 In adb shell dumpsys gfxinfo 在PC上打开cmd窗口,...
  • app性能测试怎么做

    千次阅读 2019-05-17 11:21:00
    111 转载于:https://www.cnblogs.com/Chamberlain/p/10880351.html
  • 客户端专项测试xmind

    2022-04-20 15:03:18
    主要针对app类专项测试(偏android端,ios端可借鉴)进行知识点梳理,包括性能测试(CPU、内存、磁盘、网络、耗电、流畅度、响应时延)以及自动化测试(UI自动化、monkey和兼容性测试)的测试思路、测试标准和常用...
  • APP 性能测试,尤其是对手机性能的监控,以及自动化测试,都是一个麻烦点,尤其原生代码还区分原生与非原生,市面上大部分好用的工具均需收费,开源工具又对 Android 7.0 以上的版本和 iOS 不大兼容,此处选择一个...
  • 常用APP性能测试指标

    万次阅读 2017-09-18 15:05:24
    中国软件评测中心将性能测试概括为三个方面:应用在客户端性能的测试、应用在网络上性能的测试和应用在服务器端性能的测试。通常情况下,三方面有效、合理的结合,可以达到对系统性能全面的分析和瓶颈的预测。通过...
  • anroid性能测试
  • APP性能测试之monkey

    千次阅读 2022-01-12 10:47:47
    APP性能测试之monkey 1 monkey 是做什么的 monkey 是 Android 中的一个命令行工具,由 java 编写,可以运行在模拟器里或实 际设备中。 它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 79,113
精华内容 31,645
关键字:

app客户端性能测试