测测APP app性能测试怎么测
我们关注的特殊性能:
1.注重资源消耗(CPU、内存、流量、功耗)
2.启动耗时(冷启、热启)(这也是很多云测时使用的指标)
3.主页加载时间
4.内存泄漏、抖动、卡顿、页面渲染(FPS)
今天只总结资源消耗,先说说。CPU
普遍的apk性能测试主要有以下七类
1、响应
2、内存
3、cpu
4、FPS (app使用的流畅度)
5、GPU过度渲染
6、耗电
7、耗流
(app除了这些性能测试外,还将继续更新手机版本号、屏幕分辨率、稳定性、安全性等的兼容性… 这里就不解释流量测试和这些一起更新了。 )
一、响应软件的响应时间和速度直接影响用户体验。如果一个软件不能加载,它将直接影响软件的日常生活和保留。因此,对于一个软件来说,响应速度测试是必不可少的。
1.冷启动:首次启动:app时间间隔(只是启动时间,不包括页面加载)
2.热启动:非首次启动:非首次启动:非首次启动:非首次启动:非首次启动:非首次启动app时间间隔(只是启动时间,不包括页面加载)
3.完全启动:从启动到主页完全加载的时间间隔
4.有网启动:从发起跳转到页面完全加载的时间间隔
5.无网启动:从启动跳转到页面完全加载的时间间隔
(项目主要测试重点是冷启动和热启动)
1、使用adb命令
1) 冷启动
adb shell am stat -W packageName/ActivityName(绝对路径,第一Activity)
含义:
ThisTime: 该Activity启动耗时;
TotalTime: 应用自身启动耗时, ThisTime 应用application等待资源启动时间;
WaitTime: 系统启动应用耗时, TotalTime 系统资源启动时间
2)热启动:按back按钮后再启动adb命令
测试标准:冷启动时间不超过1.5s, 热启动不超过1s.
3)完全启动,无网启动,可通过有网启动chales抓包来获取启动的时间
chales除截取请求外,还可进行单接口压测,修改请求参数并发出请求,模拟无网、弱网、2G,3G,4G等。能解决app许多专项测试。
需要使用限制网络条件chales一个功能: Thottle Setting
启动时间可以通过设置网速和抓包获得,但有一定的误差。在项目中,只需测试冷启动和热启动。
2、使用AndoidStudio的Andoid Monito,检查手机日志系统输出
Andoid Monito共有五个模块:logcat, memoy, cpu, netwok,GPU
我们可以通过logcat获取应用程序的响应时间(如何使用,介绍内存)
cpu我们应该分为三种情况:
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核,
问题:现在手机是多核的,所以这个值不会太准确。我该怎么办?
经验:一般来说,当我测试这个值时,我会收集几次,寻求平均值
以上数据太多,我们也可以使用以下命令top命令,获取单个数据
adb shell dumpsys cpuinfo |gep packagename
2.内存篇
内存的方式和cpu类似地,我们通过多次收集获得内存值,看看内存是否异常,以及如何获得内存值
如何获取内存,使用命令
1.adb shell dumpsys meminfo
2.adb shell meminfo PID
手机的运行速度与内存有很大关系。我记得我以前的同事可以研究这个内存,并成立了一个特殊的小组。可以看出,水仍然很深,我知道一点,关注几个需要理解的指标:
vss,虚拟内存 ,每个应用程序都有一个java虚拟机,系统会分配一个内存,每个操作都会控制内存的大小,但不会大于最大限度,虚拟内存就会消失,我们更关心
Rss 物理内存(包括共享库内存),应用实际占用的内存,
pss实际使用的物理内存(共享占用内存的比例分配) 如果有三个过程,那么过程的消耗应该除以3,这意味着一个
USS 在这个过程中独自占用内存
USS对于一个过程开始时的内存泄漏,这是一个程序启动时会产生的虚拟内存,一旦程序过程被杀死,它将被释放
我觉得这个博主更好。我只是皮毛。https://blog.csdn.net/bigconvience/aticle/details/35553983
n多次测试内存
使用PID查看方式:
我们关注的是:Heap size 是实际使用的内存 Heap alloc :是实际分配值
问题:但你可以发现alloc<size 为什么会这样?我还能理解吗?他们用一句话解释说:过程中使用的是虚拟内存,远远大于物理内存。我现在还不太懂。
内存我们还可以查看他的单个应用程序最大的内存限制
adb shell getpop |gep heapgowthlimit
另一种方法:我们也可以使用它pocank工具可以查看内存值
3.流量大神说可以用adb shell cat/poc/“ PID ”/net/dev 查看流量数的命令
然而,我认为这是不准确的。我获得流量的方法是抓住包,在操作中查看流量的消耗wieshok这个工具来帮忙
以上可能是他提到的内容和他自己的理解
总结:
性能测试有两种方法:1.竞品分析 2.版本对比 这是许多公司现在使用的一种方式
在说一句:腾讯的GT还是很好用的,可以在网上下载,试试
原文链接:https://blog.csdn.net/testMange/aticle/details/116991049
发布于:2023-08-26,除非注明,否则均为
原创文章,转载请注明出处。