文章目录

  • 19-1 app启动性能测试
    • 1)adb logcat方法
    • 2)使用ffmpeg拆帧
  • 19-2 接口性能测试
  • 19-3 PC浏览器的性能数据获取与分析
    • 1)关键选项
    • 2)时间线关键信息
  • 19-4 系统资源分析
    • 1)cpu统计
      • GPU渲染工具
    • 2)mem统计
      • 查内存命令procstas
      • 也可以用meminfo命令
      • 提示
    • 3)网络流量分析
      • 显示网络流量命令
      • 指定应用UID命令
  • 19-5 耗电量测试
    • 安装环境
    • clone代码
  • 19-6 健壮性测试

19-1 app启动性能测试





android设计理念,利用activity降低模块耦合度

  • 1)

    • 1、调起app
    • 2、创建白窗口
    • 3、启动进程(绿色外窗口)
  • 2)创建object android 调用写的方法
  • 3)main thread主线程:加载main activity ->初始化,渲染,数据的初始化,对象的创建;开始渲染页面,渲染完成进入displayed time
  • 4)displayed time 与空白窗口对调,用户真正能控制app的时间就在这个时间开始
  • 5)other stuff 动态加载过程,页面已经显示,但未加载完全(例如雪球app的内页广告)

  • 冷启动:app完全q掉,完全启动,从开始到displayed time
  • 热启动:app在后台,直接启动
  • 暖启动:app在后台驻久了,内存被杀掉,用户此时重启app,有一些object会被保留,比热会慢一点
  • 首屏启动:加上stuff time(自己加的概念)

  • adb logcat 只能计算首屏启动之前的时间
  • 需要手工进行,比较耗时
  • 每个200ms打印pagesource
  • 硬埋点:开发在app启动时间之前加一个埋点,app启动完成之后结束埋点,数据回传到服务器,这个方法最准确,也可解决不同机型测试,但需要开发配合

1)adb logcat方法


清除缓存,停止进程,进行冷启动
-S 启动前先停掉
-W 等待activity启动完成


totaltime即为冷启动时间


2)使用ffmpeg拆帧

adb pull . 拉到本地

ffmpeg 工具可进行视频拆解

-r 10 1秒拆成10帧(1帧相当于0.1秒)——通过拆帧时间推算出每个启动用了多长时间

frames_%03d.jpg 格式化命名拆帧图片——frames开头,后面3个长度,0代表不够三个长度用0补充


19-2 接口性能测试


19-3 PC浏览器的性能数据获取与分析

  • webview:手机内嵌浏览器,可以加载小型页面,android4.4后直接采用Chrome浏览器,webview主要用来加载html
  • h5:就是html5,就是html的技术
  • webview通常采用的技术是h5,h5依托webview加载

  • 蓝线 :dom加载完全时间(图片,动图,视频等可能都没加载完全)
  • 红线:所有资源加载完全
  • disable cache:清除缓存(相当于移动端冷启动)
  • all:动态资源,静态资源全部加载
  • XHR :只加载动态资源

1)关键选项


  • 蓝线代表数据的dom出现的时间,到蓝线代表dom加载完全,可以对dom进行点击,sendkeys,但图片,动图,视频未加载完全
  • 红线后代表资源加载完全
  • Disable cache:每次刷新时,从0开始,清除缓存,相当于移动端的冷启动
  • XHR:加载动态资源,图片,CSS静态资源不会出现在悬框里

selenium中

  • xpath方式定位是在dom中查找,dom加载后即会查找
  • css方式定位是在css加载完成后查找(图片等加载完成)
  • 使用css 定位更稳定

2)时间线关键信息


双击项目即可点击时间线

  • Queueing:排队时间(数据传输过程中排队过程,队列排队0.91ms)
  • Stalled:资源在排队过程中被丢弃的时间(在队列排队中请求停止请求0.25ms)
  • Waiting(TTFB):等待服务器响应的时间(发出了一个请求,等待了25.72ms收到服务器的响应)
  • Content Download:下载资源的时间


鼠标选定拖动后可以只显示选中内容

Explanation——官网字段详细解释


Chrome62版本webview比较稳定



19-4 系统资源分析

1)cpu统计


cpu处理图形,完成后,GPU拿到图形进行绘制
中间经过Graphics中间件绘图处理工具
cpu处理过快,GPU处理过慢,出现缓存(绿色方块,队列),进行码队

如果GPU显示完整,GPU渲染过程平缓,队列也好,那么cpu一定也也没问题
因此可以借助GPU绘制工具,反观CPU状态

GPU渲染工具


  • 每个竖条都是1帧,每1帧代表一个画面
  • 绿线:看电影时fps通常为24,1s绘制24帧,android规定绘制1帧时间不要超过16ms,绿线代表16ms,超过绿线代表超过16ms,超过16ms时现象:发生卡顿




GPU拿到view之前的工作,CPU放入队列中,中间件处理的过程即为蓝色
onDraw:对图形进行绘制的函数,绘制的基础:Convert类似画布,在画布上调各种函数,比如画三角,画圆圈,而convert和绘制过程要放到ondraw函数中,如果ondraw过于负责,蓝线可能会飙高

OpenGL或其他中间件处理displaylist
较高:负载过重
页面是多层的,0,1,2,3层,反复提交某一层,可能造成view重复提交,红线过高

可到android官网查看


2)mem统计


手机room即为内存

所有RSS 相加大于实际使用的物理内存(不按比例分配)
所有PSS相加等于实际使用的物理内存
共享内存: 交互数据存放在共享内存中

查内存命令procstas

process stats进程状态

– hours 仅看3小时内的


*进程名,用户名,版本号:

  • Total综合内存情况:100%代表3个小时内完全占据了内存,说明应用在3个小时内一直在启动,没有中断过
  • Persistent长驻内存:期间一直长驻的时间
  • Imp Fg是否前台显示
  • Service是否以服务形式驻留内存
  • Top目前最高级别



也可以用meminfo命令



如果不指定包名,默认以PSS进行排序

提示

  • 同一时间total有好几个100%,同一时间有多个占内存应用,测试内存不准确,做版本对比才有意义,而不是看应用本身内存大小

3)网络流量分析

显示网络流量命令



活动接口和活动UID接口在android中未做区分,为统一数据

type:网络类型
subType:子网类型
networkID:网络ID

流量抓控以ident为单位

指定应用UID命令


指定包,过滤userID


直接输入命令报空指针异常(模拟器无效,需连接真机)


  • rb:receive bytes 接收字节数
  • rp:receive package 接收包数
  • tb:transport bytes 传输字节数
  • tp:transport package 传输包数

网络信息的内容建议查阅AndroidStuio官网或Android Developer官网进行扩展

19-5 耗电量测试




1、clone项目
2、进入目录
3、安装golang语言;编译,拉取;-d -u不运行只编译和拉取
4、go run 运行


清空
电量录制


左边:常见内容指标
黑线:所有走势代表整体耗电量变化(时间较短时看不到黑线,小时以上才能看到黑线)y轴:电量情况
x轴:时间维度

battery_level电量百分比
screen屏幕亮度

安装环境

1、下载golang
2、环境变量设置golang
3、python版本设置2.7(history依赖2.7,3.7会报错)

clone代码


不建议docker安装,项目比较老,未更新,建议手动编译





修改版本为20190513(最稳定)





注意⚠️:正常测试应使用真机,不用模拟器,(演示使用模拟器&不清除数据)

19 用户体验测试/专项测试相关推荐

  1. 用户体验与可用性测试_可用性作为用户体验的原则

    用户体验与可用性测试 Every UX Designer has his views and best practices. We all have a guide book created thro ...

  2. 怎么进行用户体验与可用性测试?

    一.以用户为中心的设计概论 UX & UCD User Experience用户体验:是指用户在使用或预计要使用某产品,系统及服务时,产生的主观感受和反应.由 战略层.范围层.结构层.框架层. ...

  3. 功能测试(八)—— APP之专项测试、性能测试、性能测试工具SoloPi

    目录 APP测试要点 目标 一.APP专项测试 1.1 兼容性 1.2 安装 1.3 卸载 1.4 升级 1.5 干扰测试(交叉事件测试) 1.6 Push推送 1.7 用户体验 二. 性能测试工具 ...

  4. houseparty不流畅_重新设计Houseparty –用户体验案例研究

    houseparty不流畅 Houseparty has become very popular during the COVID-19 period because it helps you con ...

  5. 利益相关者软件工程_如何向利益相关者解释用户体验的重要性

    利益相关者软件工程 With the ever increasing popularity of user experience (UX) design there is a growing need ...

  6. 什么是软件兼容性测试,怎么分类,做兼容性测试的测试机构有哪些?

    一.什么是兼容性测试? 很多人都知道兼容性测试,但是却很少能准确理解兼容性测试,大多都只会想到浏览器的兼容:实际兼容性还有其他内容,包括web 兼容和APP 兼容:那么下面咱们先说说什么是兼容性测试: ...

  7. 用户体验——尼尔森十大交互原则

    测试-用户体验合理性? 用户体验? 好的文章: https://www.360kuai.com/pc/95bab86be14e98bd4?cota=4&tj_url=so_rec&si ...

  8. APP测试与Web测试的测试工具不同

    不管是APP测试http://alltesting.cn/news/249.html,还是Web测试,对于测试而言,测试流程.测试思路都没有大区别.由于测试环境不一样,测试涉及的工具不同,测试方法考虑 ...

  9. 用户体验测试UE测试 User experience test

    网站体验,指的是利用网络特性,为客户提供完善的网络体验,提高客户的满意度,从而与客户建立起紧密而持续的关系. 网站体验的分类 1.感官体验:呈现给用户视听上的体验,强调舒适性. 2.交互体验:呈现给用 ...

最新文章

  1. Perl 教学 子程序
  2. Java入门系列-16-继承
  3. 三种常见字符编码简介:ASCII、Unicode和UTF-8
  4. 3.1 cat:合并文件或查看文件内容
  5. 汇总下最近没时间更新的机器学习,五一后更起来
  6. (72)Verilog HDL系统函数和任务:$display
  7. Git LFS的使用
  8. android 查看文件格式,Android-选择并查看任何类型的文件
  9. js 返回上一页面_pdf.js实战,含水印、电子签章解决方案
  10. java 开源im_开源IM项目-InChat登录接口设计与实现(基于Netty)
  11. js如何获取php中的变量的类型,js获取变量的类型
  12. android词根词缀,词根词缀记忆字典 - 好担心你们因为它的界面丑,而错过这款背单词神器 - Android 应用 - 【最美应用】...
  13. [Python]经纬度转换
  14. C++实现图片格式转换
  15. SAP Business One(SAP B1):供应商和客户如何分类
  16. Windows下使用chkdsk修复移动硬盘/磁盘
  17. “穿的越少越好”在夏天说和在冬天说是不一样的
  18. 反思学习,做更好的自己
  19. 美眉都是可爱的…… (美图)
  20. 自由 stm32f103c8t6芯片学习原理图+中文数据手册pdf

热门文章

  1. 本地电脑搭建SFTP服务器,并实现公网访问
  2. rrt算法 c语言,未知环境下改进的基于RRT算法的移动机器人路径规划
  3. STM32 网页服务器 LWIP websever ajax实时刷新 (一)
  4. ArcGIS基础:栅格分区转矢量再裁剪面图层【重分类】【栅格转面】
  5. 基于SSM+SpringBoot+Vue前后端分离的高校大学生毕业设计管理系统
  6. 【python+Selenium】Selenium使用步骤解析
  7. AdminLTE快速入门和使用(网页模板快速入门使用)
  8. StringBoot中String转JSON,JSON转Map或List
  9. ASCLL码表的区域划分
  10. JavaScript 模块化编程规范