1.APP性能测试的分类
- 后端服务器的性能测试
- APP客户端的性能测试
- APP稳定性测试
2.性能测试
-
性能测试关注的指标
- CPU
- 内存
- 流量
- 电量
- 启动时间
- 流畅度
-
GT工具的介绍
- 功能
- 基础性能指标测试:CPU、内存、流量、电量、流畅度
- 获取手机日志
- 进行数据抓包
- 安装
- APK安装包直接安装,只有Android
- GT SDK 集成到被测的应用,有Android和IOS
- 功能
-
GT工具的使用
-
AUT界面
- 选择被测应用
- 选择检测指标
-
参数界面
- 选择整机的检测指标
- 保存检测的数据
- 查看检测数据
-
命令
adb devices # 查看当前adb工具和手机是否连接 192.168.27.101:5555 device adb shell # 进入手机终端 adb pull 手机中文件的路径 电脑文件夹的路径
-
手机日志
- 在日志界面,点击logcat开关
- 点击保存按钮,保存日志文件
-
手机抓包
- 进入插件界面,点击抓包插件
- 直接点击开始抓包,点击停止,保存数据
-
-
CPU测试
- cpu的指标
- CPU的状态
- 用户态-处理应用程序的时间
- 系统态-处理系统内核的时间
- 空闲态-处理空闲进程的时间
- CPU的使用率
- CPU的使用率 = (用户态+系统态)/总时间
- jiffies
- 自开机依赖应用程序消耗的CPU的时间片总数
- CPU的状态
- CPU产生问题的表现
- 长时间cpu使用率在90%以上
- 手机发热,电量消耗快
- 反应变慢,引起ANR(程序无响应)
- CPU测试操作
- AUT界面-选择被测应用、配置检测指标
- 在参数界面-配置参数指标
- 在日志界面-打开日志
- AUT-启动应用,根据需求进行操作
- 参数界面-停止数据采集、保存数据
- 在日志界面-保存日志
- cpu的指标
-
内存测试
- 内存指标
- Private dirty - 私有内存-程序独占的内存,程序退出,内存释放
- PSS - 实际使用内存=私有内存+共享内存(平均)
- 内存产生的问题
- 内存泄漏-申请的内存,程序退出没有及时释放
- 内存溢出,程序申请内存时,系统已经没有空闲内存
- 内存问题的体现
- 内存泄漏 - - PSS指标持续增长
- 内存溢出 - - 程序崩溃(Crash)
- 扩展
- 一个应用程序可以由多个进程组成
- 进程是系统分配资源最小单元
- 测试内存步骤
- AUT-选择被测应用,选择观测指标PSS
- 在参数界面-选择MEM内存指标,点击开始采集
- 日志-开启日志
- 根据需求进行操作应用
- 参数界面-点击停止采集,保存内存数据
- 日志-保存日志
- 内存指标
-
流畅度测试
- 关注指标: FPS帧率 - - 一秒内GPU渲染的帧数
- 至少要达到24帧/秒,流畅度较好
- 最高是60帧/秒
- 流畅度测试步骤
- AUT选择被测应用
- 参数 - - 选择FPS监控指标,拖到悬浮窗
- 日志 - - 打开日志开关
- 根据业务需求操作APP
- 参数 - -保存FPS数据,日志—保存日志
- 关注指标: FPS帧率 - - 一秒内GPU渲染的帧数
-
流量测试
-
指标 NET
- 请求数据量大小
- 响应数据量大小
-
如何检测
- 统计你的整体数据流量的消耗
- 进行抓包,通过报文大小进行分析
-
流量测试操作步骤
- AUT - - 选择被测应用
- 参数界面 - - 选择NET
- 在插件页面 - - tcpdump插件,打开抓包的开关
- 日志 - - 打开日志
- 按照需求操作app
- 参数 - - 停止采集数据,保存NET数据、日志、抓包数据
-
优化流量的场景
- 对数据进行压缩
- 不用数据格式的采用
- 控制访问频次
- 只获取必要的数据
- 缓存机制
- 针对不同的网络类型,采取不同的传输策略
-
-
电量测试
- 电量测试的指标
- 电流、电压、电量和温度
- 测试电量消耗的场景
- 定位的功能 - - GPS定位
- 网络传输
- 手机屏幕亮度
- 锁屏和解锁的时间和次数
- 测试电量的擦操作步骤
- AUT - - 选择被测应用
- 插件 - - 选择电量测试的插件
- 日志界面 - - 开启日志开关
- 设置采样频率、选择检测的指标电流、电量、电压和温度、设置屏幕亮度。点击开始
- 根据业务需求,操作手机 - - 考虑耗电的场景
- 参数—停止采集,保存数据。日志 - - 保存日志
- 电量测试结果分析
- 和基准数据对比
- 横向对比(竞品分析)
- 电量测试的指标
-
APP启动时间测试
-
关注指标:Waittime
-
冷启动和热启动
- 冷启动 - - app后台进程被杀死,启动app
- 热启动 - - app在后台运行,启动app
-
如何通过adb命令获取启动时间
# 获取app的启动时间 adb shell am start -W 包名/Activity名 ThisTime: 1541 TotalTime: 1541 WaitTime: 1549
# 获取包名和界面名 # 先保证想获取的界面在手机的屏幕上,然后输入命令 adb shell dumpsys window windows | findstr usedApp # 学车不APP的包名 和 Activity名 com.bjcsxq.chat.carfriend/.module_main.activity.MainActivity
-
启动时间分析
ThisTime: 当前页面启动的时间 TotalTime: This Time + 公共代码运行的时间 WaitTime: Total Time + 系统分配资源消耗的时间 # 测试以WaitTime为准
-
测试启动时间结果分析
- 与基准数据分析(从产品经理那获取,和以往数据进行对比)
- 横向对比,和竞品一起测试,不超过竞品的1倍
-
3.用户体验测试
-
概念
- 以用户身份,去感知被测应用,查看应用是否好用、易用、有用等。
- 提易用性缺陷,尽量要具体,给出依据。
-
考虑的场景(关注点)
-
UI界面测试
- 和UI的效果图进行对比
-
易用性
- 是否有空数据界面引导
- 菜单层级是否过深
- 业务分支是否过多
- 业务流程步骤是否过多
- 按钮的可点击范围是否适中
- 页面中是否有可返回按钮
-
横竖屏
- 横竖屏能否正常切换
- APP中有表格数据的时候,因为横竖屏的显示宽度不一样
-
兼容手机辅助功能
- 放大字体
- 反色
- 语音切换
- 多点触控
-
4.稳定性测试
- 概念
- 对app长时间进行无规则,无序的操作,查看app是否闪退崩溃(crash),无响应(NAR)
- 测试方式
- Monkey测试
- 测试的时机
- 测试后期,已经没有太多bug,项目比较稳定,上线之前,进行Monkey测试
5.你是如何测试APP?
- 测试策略
- 进行业务功能测试 – 首要
- 兼容性测试
- 安装、卸载和升级测试
- 交叉事件
- PUSH消息测试
- 性能测试
- CPU
- 内存
- 电量
- 流量
- 流畅度
- 启动速度
- 用户体验测试
- 稳定性测试
- 项目上线后的跟踪
- 跟踪用户的反馈信息
- Bug反馈
- 复现bug,如果是bug,提bug,回滚
- 复现bug,如果不是,忽略
- 意见和建议
- 反馈给产品,决定是否在后续版本优化
卸载和升级测试
- 反馈给产品,决定是否在后续版本优化
- Bug反馈
- 交叉事件
- PUSH消息测试
- 性能测试
- CPU
- 内存
- 电量
- 流量
- 流畅度
- 启动速度
- 用户体验测试
- 稳定性测试
- 跟踪用户的反馈信息
- 项目上线后的跟踪
- 跟踪用户的反馈信息
- Bug反馈
- 复现bug,如果是bug,提bug,回滚
- 复现bug,如果不是,忽略
- 意见和建议
- 反馈给产品,决定是否在后续版本优化
- Bug反馈
- 线上处理bug
- 跟踪用户的反馈信息
来源:CSDN
作者:limy_liu
链接:https://blog.csdn.net/limy_liu/article/details/103940941