19 用户体验测试/专项测试

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(最稳定)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意⚠️:正常测试应使用真机,不用模拟器,(演示使用模拟器&不清除数据)
在这里插入图片描述
👆开启电量收集

电量数据收集

对手机进行随机操作或自动化测试脚本等

长时间操作
在这里插入图片描述
数据下载在这里插入图片描述
uptime开机时间
在这里插入图片描述
导入数据

在这里插入图片描述
用模拟器导入的数据非常少

👇真机数据10min 左右

在这里插入图片描述

  • 屏幕:
    在这里插入图片描述
  • 每段时间当前app:

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

  • wifi:在这里插入图片描述
  • 广播:在这里插入图片描述
  • Wi-Fi开启情况:在这里插入图片描述
  • 电量:在这里插入图片描述
  • 后台进程:
    在这里插入图片描述
  • 温度:
    在这里插入图片描述
  • historian:
    在这里插入图片描述
    在这里插入图片描述

19-6 健壮性测试

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
盲点:随机操作(monkey等)

网络不佳:弱网+盲点

数据不通:无网,飞行模式测试

在这里插入图片描述
打开安卓模拟器

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
-s 根据时间轴进行操作
-s 100 执行100个时间序列

  • 如果某次操作崩溃了,从头返回上次执行场景,重复执行100个时间序列,可以复现
  • 一般将时间数调的特别大,比如20000,让app自动跑,跑半个小时,看app有无异常状况,如果30min无异样,比较稳定,则认为app健壮性比较完好
  • 如果想操作更详细一些,可以使用Appcrawler指定具体范围,对具体范围内的app或对app中具体某个模块进行测试
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卢思小姐姐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值