IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 全方位讲解APP启动时间不同测试方法记录分享 -> 正文阅读

[开发测试]全方位讲解APP启动时间不同测试方法记录分享

?

测试场景:
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隐私获取不被工信部下架,就得掌握这个测试方法!

软件测试,漏测了怎么办?

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-07-22 14:29:45  更:2021-07-22 14:31:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/2 1:16:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码