非功能测试,更多的关注用户体验
场景测试还包括 跨域性测试,比如app在国外是否可以正常运行
用户维度:
- 崩溃(弱网,Crash)
- 卡顿(掉帧,cpu)
- 响应慢(启动时间,交互响应,h5加载)
- 发热(cpu,mem,io,network,gps等硬件使用)
- 掉电快(硬件占用)
- 兼容性问题(机型覆盖,回归)
技术纬度:
1)崩溃
自动遍历测试、monkey测试、横竖屏切换、快进快退app、服务端返回值字段缺失
2)卡顿
卡顿测试、内存泄漏测试、method profile
3)响应慢
冷热启动、界面切换、h5性能测试
4)发热
method profile(主要)、gc统计、io统计、流量统计、硬件使用统计、耗电量分析
5)兼容性测试、健壮性测试
兼容性测试、自动化测试、自动遍历测试、monkey测试
常用的测试方案:
Android:
- ddms:只支持java老版本,Google已经不维护了
- android studio(Google主要维护的工具)
- hook
- 代码插桩:开发在框架层埋点
IOS:
- instruments
- hook
- 代码插桩
响应时间
app启动:首次安装启动、冷启动(什么缓存也没有,从创建进程开始)、暖启动、热启动
app交互:事件响应、内部加载速度、首屏渲染
接口性能:dns、http/https、download、json
h5性能:cache、资源加载、dom、page
冷启动(一般只测):Google标准:不能超过5s
暖启动:2s
热启动:1.5s
冷启动测试:
1、连接设备,以mac的mumu模拟器为例(前提安装好adb)
下载mumu模拟器-->终端输入 adb connect 127.0.0.1:5555(win命令adb connect 127.0.0.1:7555) --> adb devices 查看是否连接成功
2、安装想要调试的包
adb install 包路径
3、查看当前设备所有 已安装的包,并找到想要调试的包
adb shell pm list packages
4、找到要调试的包中,哪个方法是用来启动app的
adb shell "logcat | grep START"
5、启动app
ThisTime:启动activity的时间
TotalTime:多个activity切换的话,表示总时间
WaitTime:总启动时间(不能超过5s)
6、其他命令:
package=com.haodf.android
清理缓存数据:adb shell pm clear $package
停止进程:adb shell am force-stop $package
启动app:adb shell am start -S -W $package/.activity.SplashActivity
获取数据:adb logcat | grep -i displayed