app性能测试
solopi 工具+监控性能数据
实时监控所选项的各类数据的变化 性能测试就是记录性能数据 从而去分析是否是存在有异常 使用工具去监控数据 查看录制数据
可以持续使用两个小时去查看性能的使用情况
重点是对拿到的数据去进行分析
内存数据查看
性能指标有如下内容:
cpu 内存 流畅度 流量 电量 启动速度 稳定性
性能测试:
内存:是在app进行使用的时候会占用手机中多大的内存空间
一直存储,如果不去释放 就会出现越存储越多的情况 如果存储到一定的程度就会出现崩溃
正常情况下存储就会释放 是一个有增有减的过程
有异常:就是内存在持续的增长
存在私有内存和实际使用内存两种情况
私有的意思就是独占内存
正常情况下查看的是实际使用内存
常见的内存出现的问题一共有两种:内存泄漏和内存溢出
内存一直在增长就是出现了内存泄漏
内存持续增长但是突然降为0---内存溢出oom 会提示某某程序停止运行
停止运行了--可能就是由于内存泄漏引起的
下图是一张异常曲线图
内存溢出是由于内存泄漏导致的 内存空间不够停止运行出现内存溢出
可能会有内存泄漏,但是不一定有内存溢出
有内存溢出一定有内存泄漏
内存泄漏是内存曲线持续增长的过程 即使有减少,那也是增的远比减的多
降低的部分能说明是在回收,只不过是回收的力度不够 减的过程叫做回收
正常的内存图:
crush--崩溃 anr--闪退
我们要去判断内存的一个走势 看趋势
应用停止运行可能是发生了内存溢出
cpu数据查看
一个手机中多个程序在运行但是不会出错
启动时占用CPU,之后会释放 每一个都会占用一个时间片
红色的曲线是正常的,有增有减是最正常的,增的时候占用CPU,减的时候释放CPU
若长期处于基线上面,就是不正常的,会出现手机卡顿,手机发烫的现象,而且电量消耗也是比较大的
首先是要有一个规定的基线,偶尔超出线是可以的,但是不能长期超线,否则是不满足性能的需求的
如果没有基线,那么90%是一个不可超越的值
手机特别烫的时候一般都特别的卡顿 可以进行杀进程来调整和减缓
在做性能测试的时候,最好不要开太多的程 否则会造成一定的干扰
流量和电量消耗
移动数据是需要进行收费的
测试上传和下载会消耗多少流量
测试流量的前提一定是要有安装流量卡的 测试流量一定是在真机测试
测试的时候是根据工具直接进行监控的
打开应用,然后去查看后台的测试数据的变化
测试:持续运行多少个小时,查看消耗多少的流量
测试的时候可以分开场景去测试,单独的登录操作会消耗多少的流量
这样根据某个动作去执行时间
借助工具去监控
也要去查看电量的消耗情况
两者都必须要用真机去测试 测试电量一定是在没有充电的情况下
优化:
面试题:打开页面比较慢,请问如何去优化?
首先可以对数据进行压缩 打开页面比较大,一定是数据量是比较大的,所以加载的比较慢
可以采用不同的数据格式
为了防止暴力点击,因为点击一次对应的一次请求,可以控制访问的一个频次
还有就是获取必要数据,例如拍照,只要环境一变化,就在拍照;所以在这种情况下流量消耗就比较大
除此之外还可以增加一些缓存机制:在播放视频的时候,提前缓存,不是实时缓存,否则会出现一直在加载,影响用户的体验感
可以针对不同的网络去设置不同的访问策略,例如在WiFi的情况下可以适当放宽,在4G的网络条件下就会受到一些限制
常见的耗电量较大的场景:
CPU的占量过大,也会使电量消耗过大
调用GPS定位,也会使耗电量增大 WiFi环境下的网络传输 屏幕亮度过大时
和竞品去对比!!!比他要好
一般的硬件测试都是需要进行拆机的,这样的成本是比较高的
使用软件工具去检测
测试结果分析可以和基准线去对比 以以往数据积累
可以进行横向对比,拉上竞品一起测试,目前多数采用这个方法
要比竞品好
获取启动时间
离线状态启动叫做冷启动 如果是在后台运行时去启动叫做热启动
冷启动和热启动的时间是不一样的
如何去获取启动时间???
-W 获取时间
流畅度
动画:单位时间内播放一张图片就形成了动画
单位时间内能播放多少图片就是流畅度
帧率:1s内能给用户展示多少图片
帧率越大 代表的流畅度是越好的
要让大脑觉得动作是连续的,至少是每秒10-12帧的速度 流畅--每秒24帧 这样看起来才是流畅的
60帧的流畅度是最佳的 游戏测试--效率高 不会低于60
设备离线和找不到设备 都可以重启模拟器解决
连接多个设备
稳定性测试
monkey测试容易出现问题 收集日志 提供给研发,是有效的数据作为是测试结果
长时间使用 产品持续运行多久 检验产品质量
monkey可以模拟触摸,点击和滑动,使用monkey去执行这些命令和操作
monkey可以模拟人类的操作来去运行 不需要复杂的思路
要去打印日志
常用的APP命令格式
adb命令基础操作命令
常用的APP命令格式(启动时间 内存 CPU 安装 卸载 流量 抓取日志)
命令:工具的执行不够的话可以使用adb来替换
写自动化脚本就可以使用adb命令
adb命令是安卓的调试的命令 开发和测试都常用的命令
adb可以用来安装卸载软件 管理安卓软件 启动测试 抓取操作日志
adb的环境准备
adb uninstall xxx
获取包名