App客户端性能测试点总结
一、内存
测试范围
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 进程独自占用的物理内存(不包含共享库占用的内存)
App客户端性能测试点总结的更多相关文章
- app常见性能测试点
转载自 https://blog.csdn.net/xiaomaoxiao336368/article/details/83547318 1.响应 冷启动 首次启动APP的时间间隔 adb shell ...
- Android客户端性能优化(魅族资深工程师毫无保留奉献)
本文由魅族科技有限公司资深Android开发工程师degao(嵌入式企鹅圈原创团队成员)撰写,是degao在嵌入式企鹅圈发表的第一篇原创文章,毫无保留地总结分享其在领导魅族多个项目开发中的Androi ...
- 使用DDMS测试安卓手机APP的性能(android)
安装/配置: 通过另外一个工具也可以测试手机客户端APP的性能,这就是android开发包中的DDMS工具(Dalvik Debug Monitor Service),先来说一下android开发包的 ...
- benchmark pm2的cluster模式发布web app的性能与相关问题解决方法
pm2以cluster集群方式发布app,可以高效地利用多核cpu,有效提升吞吐量.在上周对公司的redmine服务器进行性能调优后,深感ruby on rails的性能低下,这次测试nodejs的s ...
- 使用异步HTTP提升客户端性能(HttpAsyncClient)
使用异步HTTP提升客户端性能(HttpAsyncClient) 大家都知道,应用层的网络模型有同步.异步之分. 同步,意为着线程阻塞,只有等本次请求全部都完成了,才能进行下一次请求. 异步,好处是不 ...
- Android : App客户端与后台服务的AIDL通信以及后台服务的JNI接口实现
一.APP客户端进程与后台服务进程的AIDL通信 AIDL(Android Interface definition language-“接口定义语言”) 是 Android 提供的一种进程间通信 ( ...
- Web 2.0应用客户端性能问题十大根源《转载》
前言 Web 2.0应用的推广为用户带来了全新的体验,同时也让开发人员更加关注客户端性能问题.最近,资深Web性能诊断专家.知名工具dynatrace的创始人之一Andreas Grabner根据自己 ...
- FTP 服务器性能 测试点
测试FTP 服务器性能测试点: 1. ftp软件性能 2. ftp服务器硬件处理性能(IO/CPU/ROM) 3. ftp服务器网络吞吐性能 (NET IO) 有针对性的测试 达到的效果会比较好. 建 ...
- 有谁知道什么工具测试IOS手机上APP的性能软件啊?
有谁知道什么工具测试IOS手机上APP的性能软件啊?
随机推荐
- oracle 删除某个用户下的所有对象
先存放好dropobj.sql 文件 然后登录需要删除的用户 删除前最好备份一下:(备份是在cmd中进行的) C:\Users\panfu>exp file=d:\expall.dmp log= ...
- C语言函数库分类
- vim 显示行号 临时&永久
设置vim 永久显示行号 - electrocrazy的博客 - CSDN博客https://blog.csdn.net/electrocrazy/article/details/79035216 v ...
- git clone时报错“Failed to connect to 127.0.0.1 port 2453: Connection refused”如何处理?
1. 查看git的配置 git config --global --list| grep -i proxy 如果有内容输出,那么unset配置项,如: git config --global --un ...
- Java 有双引号的字符串处理
public class Test{ public static void main(String[] args){ String str1 = "\"name\"&qu ...
- .NET Core入门程序
易百教程 https://www.yiibai.com/dotnet_core/dotnet_core_getting_started.html
- 007-guava 缓存
一.概述 Guava Cache与ConcurrentMap很相似,但也不完全一样.最基本的区别是ConcurrentMap会一直保存所有添加的元素,直到显式地移除.相对地,Guava Cache为了 ...
- Flutter利用GridView实现网格的商品布局
GridView.count 生成的是静态网格 效果: 代码: import 'package:flutter/material.dart'; void main() { runApp(MyApp() ...
- python中多层循环的一键退出
在单层循环的退出中,使用break即能退出,那么多层循环呢?机智的人们使用flag标识符的方式,例如: a=['a',1,2,3,4] b=['b',1,2,3,4] c=['c',1,2,3,4] ...
- 在 ServiceModel 客户端配置部分中,找不到引用协定“WebServiceSoap”的默认终结点元素。这可能是因为未找到应用程序的配置文件,或者是因为客户端元素找不到与此协定匹配的终结点元素(转)
按语: 在项目中实现自动升级过程,在类库中调用webservice取升级update.xml文件,添加服务调用,但在类库中调用时就出现异常,但在简单的测试工程中没有问题.解决方法采用下面介绍的方法 在 ...