?
测试场景:
1.APP启动慢;
2.页面加载慢;
关键词:体验差,打开慢,用户吐槽
测试方法:
1.Android?Device??Monitor?过滤关键字Display
2.adb?shellam?start?-W?-n??+包名/Activity
3.程序代码插桩;
4.高速摄像机+QuickTime?Player
5.自动化工具+图像识别
测试方法介绍及实际案例操作讲解:
一、Android?Device??Monitor?(ddms)过滤关键字Display
测试条件:
1.jdk
2.有配置SDK;
3.测试apk要Debug?APK?包
4.Android?Device?Monitor?可以正常打开
测试方法:
1.通过logcat 日志输出过滤Display关键字,查看日志输出关于相应页面Activity的打开时间;
缺点:
1.要是同一个activity名字是无法测试的;
2.app如果没有重新加载,也是无法测试的;
3.不是真正用户感知到的页面加载时间;
4.需要debug?测试apk
注意:
1.Android Device monitor 连接不稳定,当没有出现日志的时候,可以断开USB连接,再重新连接手机;
2.monitor 日志的输出跟手机系统有很大关系,有的手机是输入关键词displayed 是无法打印出页面加载时间,如华为nova7pro就不行;小米跟谷歌手机就可以
二、adb?shellam?start?-W?-n??+包名/Activity
测试条件:
1.jdk
2.有配置SDK
测试方法:
1.捕捉要测试的启动页面的Activity,如果有debug测试apk包,可以通过android Deviced Monitor 通过display 关键字捕获Activity,如果不是的话,通过命令adb shell dumpsys window | findstr mCurrentFocus 或者 adb shell "dumpsys window | grep mCurrentFocus"?获取到当前页面Activity。
2.通过命令adb shellam start -W -n +包名/Activity 启动页面,确认下手机页面跳转,然后dos下会显示启动时间,总共有三个,具体判断标准如下:启动时间参考如果只关心某个应用自身启动耗时,参考TotalTime;如果关心系统启动应用耗时,参考WaitTime;如果关心应用有界面Activity启动耗时,参考ThisTime。根据需求获取相应的时间
其中需要注意这边有一个LauchState状态,这个是代表冷启动(cold)还是暖启动
(hot),这个两个区别就是app进程在不在,具体还有一个warm?温启动,就是页面切换到后台放久一点就可以把
cold start :应用完全从头启动(第一次安装前启动或清除数据)
warm start:
1)用户在主actiivty点击了back键退出了应用(没有调用Precess。kill(myPid))这时的app进程还活着,用户此时又点击了桌面的启动图标,app进程不需要重新启动?但是actiivty需要重新创建
2)由于系统内存紧张?app进程被杀了?但是系统的back?stack还保留着活动?此时用户启动app?
hot start:进程存在activity也没有销毁(按下home键)此时再回到app 还有情况就是系统内存紧张调用了activity的onTrimMemory(), 然后activity需要重新创建view 并实现渲染绘制同时还需要实例化业务对象
warm start跟host start 是时间区别不大;
优点:
1.测试方式简便,易于掌握;
缺点:
1.需要对加载三个时间概念理解要清晰;
2.不是真正用户感知到的页面加载时间;
三、4399AT
测试条件:
1.jdk
2.sdk
3.node
4.appium
5.4399AT
测试步骤:
1.通过adb命令把要确认的启动页面截图;
2.把截图的图片,放在画图软件,然后点击重新调整大小,然后选择像素,水平为400,然后截取大面积的动态元素进行特征图,然后保存;
3.通过自动化脚本api中的TimeCheck和配合4399AT工具运行进行页面时间确认;
4.通过报告中的report-source的设备名中的screenshot进行相关页面数据查看;
注意:
1.截图取的元素记得面积需要够大并且元素特征要明显。不然会影响准确性;
优点:
1.真实的用户感受到页面启动或者加载的时间;
2.全自动控制,避免了人为操作误差,比较有统一性;
3.截图的频率1s在13-18张左右,误差在60-100ms之间,可知的误差;
缺点:
1.环境配置相对复杂;
2.需要编写脚本;
3.需要编程基础;
测试标准:
1.测试多次求平均值,然后对比标准
2.竞品/新旧版本对比;
测试APP启动时间参考标准
Cold启动5s以下;
Warm 启动 2s以下;
Hot 启动1.5s以下;
总结:
三个测试方法弊端都是无法确认是否哪里出问题,类似我们找Bug,最终还是需要开发定位,可通过systemTrace软件定位;
以上就是整体对于团队内训一个简单记录,希望对大家有所谓帮助。如对您有帮助,欢迎转载,点赞,分享。
往期好文:
一个三十六岁测试管理者的职业感悟
AI自动化测试就这样被实现了(一)
要想app隐私获取不被工信部下架,就得掌握这个测试方法!
软件测试,漏测了怎么办?