第一次写博客(2018-06-30),欢迎小伙伴们指点补充~~~

一:基础知识

1、手动查看页面卡顿情况:

①开发者选项-GPU呈现模式分析-柱状图

②调试GPU过度绘制:观察页面的层:

蓝色代表一层,白色代表没有过度绘制,绿色代表一个焦点三层,红色四层、深红色6层以上(最卡)。一般情况下不存在四层以上的。

所以判断的标准是:不应该超过4,3层的不能超过屏幕的1/4浅蓝色最棒,基本不会卡顿

2、帧数知识

16.67ms以内一次正常,如果一帧不到16.67,也会等待16.67才执行下一帧;

流畅的帧数/总共用的帧数(总的帧数+额外等待的帧数)=流畅度得分(满分60)

3、命令行下获取的帧数耗时:

一行的加和就是一帧渲染的耗时,有时候是3个字段(Draw、Prepaare、Process、Execute)

图1-1:数据起始位置:

图1-3:数据结束为止(红杠标识的行,代码中会用到)

二:导致页面卡顿的2点原因:

加载数据过多、页面绘制的东西太多(过度绘制)

三:查看帧数耗时的命令:

adb -s FEJC34BEKJXR1A4 shell dumpsys gfxinfo com.android.browser

其中FEJC34BEKJXR1A4为测试包的序列号名,如图1-3所示:

四:实现代码:

#coding:utf-8
#FPS测试,满分60,要避免动作不流畅的最低是30,要避免动作不流畅的最低是30
import os
import time
counter =10
#通过包名与activity名,获取帧数(查看之前记得滑动APP界面,以便获取数据)
content = os.popen("adb -s FEJC34BEKJXR1A4 shell dumpsys gfxinfo com.android.browser")
#读取行数
data = content.readlines()
print data
start = 0
end = 0
i = 0
#为获得帧数据,先找具有代表性的开始行与结束行的字段“Draw"、"View hierarchy:"
for line in data:if "Draw" in line:start = iprint ("start:",start)if "View hierarchy:" in line:end = iprint ("end",end)i = i+1
#精确定位帧数据的开始行与结束行
result = data[start+1:end-1]
print result
#未操作所测试的APP时,没有数据
if len(result) == 0:print "没有数据,请操作app哈哈哈"

else:badcount = 0      #还的帧数(超时16.67的帧数)
    addwait = 0       #额外等待的帧数
    for l in result:#用""代替"\r\n",去掉"\r\n"
        l = l.replace("\r\n","")print "l=" ,ldatalist = l.split("\t")     #以"\t"对数据进行切片
        print "datalist=",datalist#对每行帧数据进行加和操作
        sum = float(datalist[1]) + float(datalist[2]) + float(datalist[3]) #+ float(datalist[4])
        print sumif (sum - 16.67) > 0:badcount = badcount + 1
            # 将float类型转化为整型,若sum=32,则addwait=1,若addwait=34,则addwait=2
            addwait = addwait + int(sum/16.67)#计算公式:流畅的帧数/总共用的帧数(总的帧数+额外等待的帧数)=流畅度得分(满分60)
        fpssorce = (len(result) - badcount)*60/(len(result)+addwait)print "fpsscore is %d" % int(fpssorce)#好啦,完毕

APP性能测试-FPS测试相关推荐

  1. APP性能测试——流量测试(二)

    续上文:APP性能测试--流量测试(一),上篇文章介绍了如何通过代理工具抓网络请求,通过代理抓包我们可以抓到http和https请求的详细信息,由于代理我们需要连接wifi,很难抓取到4G网络下的流量 ...

  2. APP性能测试——流量测试(一)

    写在前面:         第一期主要介绍如何通过anyproxy工具进行流量测试,二期介绍如何通过adb 命令实时监控wifi.4G下的上行以及下行流量值.         app的流量测试是性能测 ...

  3. APP性能测试--帧率测试

    一.FPS帧率测试概念 60fps作为衡量标准,即要求每一帧刷新的时间小于16ms,这样才能保证滑动中平滑的流畅度. 二.测试子项 界面过度绘制 屏幕滑动帧速率 屏幕滑动平滑度 三.测试方法 [1] ...

  4. APP性能测试--功耗测试

    一.功耗测试基础 移动设备的电池电量是非常有限的,保持持久的续航能力尤为重要.另外,android的很多特性都比较耗电(如屏幕,GPS,sensor传感器,唤醒机制,CPU,连网等的使用),我们必须要 ...

  5. APP性能测试--内存测试

    一. 内存占用 对于智能手机而言,内存大小是固定的:因此,如果单个app的内存占用越小,手机上可以安装运行的app就越多:或者说app的内存占用越小,在手机上运行就会越流畅.所以说,内存占用的大小,也 ...

  6. APP性能测试--流量测试

    一.流量测试基本概念  目前的网络类型包含2G\3G\4G\wifi,其中还有不同运营商的区分,我们在APP的使用中经常遇到大资源,重复请求,调用响应慢,调用失败等各种情况.在不同的网络类型之下,我们 ...

  7. 如何进行app性能测试,app性能测试应关注的测试点

    随着智能化生活的推进,我们生活中不可避免的要用到很多程序app.有的APP性能使用感很好,用户都愿意下载使用,而有的APP总是出现卡顿或网络延迟的情况,那必然就降低了用户的好感.所以APP性能测试对于 ...

  8. 如何做好APP性能测试?

    随着智能化生活的推进,我们生活中不可避免的要用到很多程序app.有的APP性能使用感很好,用户都愿意下载使用,而有的APP总是出现卡顿或网络延迟的情况,那必然就降低了用户的好感.所以APP性能测试对于 ...

  9. app性能测试工具总结(7)

    前面讲述过app性能测试需要测试哪些和通过python脚本来执行adb命令,获取数据,当然这只是一种方式下面来看下依赖工具怎么测试, 先说有哪些工具,具体怎么用法,希望各位去找其他的资料,这个不难,工 ...

  10. APP性能测试——基于手机的专项测试

    转载自http://bbs.51testing.com/thread-1199231-1-2.html 我之前的APP性能测试是基于服务端的,这里收藏一个基于手机的专项测试. Android篇 性能测 ...

最新文章

  1. 人工智能在电力系统的应用(PPT)
  2. java收费对.net_网上订货商城系统是怎么收费的?大概需要多少费用?
  3. 设计模式 之 设计的 六大原则(1)单一职责原则
  4. linux shell sed中使用变量
  5. C/C++中extern关键字
  6. 各个会议期刊论文录取情况
  7. python中常见的运行时错误_17个常见的Python运行时错误
  8. C++:C++在图片特定区域之外产生随机数
  9. Nginx进行流量限制的解决方案
  10. 《Python Cookbook 3rd》笔记(1.19):转换并同时计算数据
  11. CoreLocation框架--监测方向/地磁传感器
  12. pcl中set程序_PCL中分割方法的介绍(3)
  13. tinymce引入后未显示_讷河华宁电子QJZ1-1600/3300主控制及显示总成101系统用
  14. AlphaGo真的赢了么?
  15. 软件工程师证书怎么考_2020年想考一个证书,考一级造价工程师还是考咨询工程师?...
  16. android smsmanager发送短信,Android使用SmsManager实现短信发送功能
  17. 电脑无法复制粘贴怎么办的解决方法
  18. 笔记本cpu天梯图2021最新版
  19. 洛谷 P4238 【模板】多项式乘法逆
  20. 水果店营销技巧与方法,水果店营销模式和技巧

热门文章

  1. 视频教程-屏幕录像专家录制超清视频教程-Windows
  2. Python3迅雷vip账号批量抓取导入excel中
  3. tomato(番茄)固件的简单设置截图
  4. linux 网络检测工具有哪些,Linux系统下常用的网络测速工具有哪些
  5. Java环境变量配置与adb环境变量配置
  6. AndroidStudio一键国际化方案
  7. Netty实战《原理》
  8. 【GMSK+FPGA】基于verilog的GMSK调制系统设计
  9. apdu 移动sim_SIM之APDU指令格式 | 学步园
  10. 车载Android应用开发入门指南(必看)