FPS 和丢帧率可以在一定程度上作为 APP 流畅度的一项衡量标准,本文介绍利用 adb shell dumpsys gfxinfo 命令获取软件渲染加载过程的数据,进行计算从而获取测试结果。 手机屏幕刷新率是固定的,FPS 则是一直变化的,怎么才能保证能够运行流畅呢?从几个例子来看吧。 表示把一帧数据发送到屏幕上排版显示实际花费的时间,其实是实际显示帧数据的后台缓存区与前台缓冲区交换后并将前台缓冲区的内容显示到屏幕上的时间 将上面的四个时间加起来就是绘制一帧所需要的时间,如果超过了16.67就表示掉帧了 Android 定义了流畅度的数据标准 所以这个数据在测试时作为一种对比和相对衡量标准,也可根据需求自定义标准。
本文为霍格沃兹测试学院学员学习笔记,进阶学习文末加群。 FPS 和丢帧率可以在一定程度上作为 APP 流畅度的一项衡量标准,本文介绍利用 adb shell dumpsys gfxinfo 命令获取软件渲染加载过程的数据,进行计算从而获取测试结果。 手机屏幕刷新率是固定的,FPS 则是一直变化的,怎么才能保证能够运行流畅呢?从几个例子来看吧。 其实是实际显示帧数据的后台缓存区与前台缓冲区交换后并将前台缓冲区的内容显示到屏幕上的时间 将上面的四个时间加起来就是绘制一帧所需要的时间,如果超过了16.67就表示掉帧了 说明 Android 定义了流畅度的数据标准 更多技术文章分享及测试资料
本文为霍格沃兹测试学院学员学习笔记,进阶学习文末加群。 FPS 和丢帧率可以在一定程度上作为 APP 流畅度的一项衡量标准,本文介绍利用 adb shell dumpsys gfxinfo 命令获取软件渲染加载过程的数据,进行计算从而获取测试结果。 手机屏幕刷新率是固定的,FPS 则是一直变化的,怎么才能保证能够运行流畅呢?从几个例子来看吧。 其实是实际显示帧数据的后台缓存区与前台缓冲区交换后并将前台缓冲区的内容显示到屏幕上的时间 将上面的四个时间加起来就是绘制一帧所需要的时间,如果超过了16.67就表示掉帧了 说明 Android 定义了流畅度的数据标准 所以这个数据在测试时作为一种对比和相对衡量标准,也可根据需求自定义标准。
01 前言 最近做的一次测试,没有涉及到高深的技术,不过里面用到的一个excel技巧还挺通用的,也希望读者能从这次测试用到的思路中收益~ 如果老板让读者测试APP在大数量下的流畅度,文章中的一些思路就可能用得到了 但由于第一次测试时固定了sql脚本,所以每次更新也只需要半小时即可导入完成。 2. 竞品,需要到对方官网下载试用版本。初步测试发现,对方导入信息做了数量级的限制,且操作也复杂、耗时。 往期精选 Editors' Choice 测试任务计划与跟踪 项目总览表 测试实施方法论 作者介绍: 多年的软件测试领域工作经历,曾在大型外资、民营企业、互联网企业带领测试团队负责多个大型项目的系统测试 ,需求分析与管理,质量管理等工作; 对各种软件研发模式下测试流程体系的建设,测试思维与技术的应用,测试自动化框架建设,有自己独立的见解,原创可落地的方法论; 在测试团队建设、人才培养,团队管理方面有着丰富的经验 ; 热爱软件测试领域工作,常参加或服务于软件测试沙龙、国内测试公益项目,喜欢研究国内外测试领域的发展与变化;
作者:陈帅 团队:腾讯移动品质中心TMQ 一、背景介绍 UI流畅度测试,是笔者设计整个框架的最初的痛点,前述的耗电、内存等属于框架拓展功能。 但执行了多轮测试后,发现存在一些问题: 1、原方案测试流畅度依赖于ROOT手机,如果需要对某款手机做专门评测,存在局限; 2、由于是借助GT方案收集SM数据,UI驱动中需要先拉起被测应用,以确保GT 1、表格体现 如下SM值大的范围占比越高,代表流畅度性能越好。 用户使用一个APP,对于静态页面,一般流程是看一个页面,然后点击某处,等待响应,再接着看,以此循环。 8520_1509093836896.png] 图十一SM评分对比 算法代码: [1509093611683_7688_1509093846576.png] 图十二SM换算评分算法代码 总结,流畅度测试三要素
1、动手之前先弄清设备和平台 在测试设计之初,测试人员首先会考虑的是测试的环境,也就是确定App究竟需要运行在什么样的设备和平台上。 用户在任何时间任何地点都可以打开App使用,这意味着App对于不同网络,以及网络变化的情况都能进行处理。因此,在测试时,要考虑弱网、无网、飞行模式、各种网络切换下的测试场景。 3、考虑多任务和意外情况处理 测试人员在设计和测试App的时候考虑到App被别的程序或者用户切换到后台时,需要进行什么操作。 8、对于既有Web版本又有App版本的App要减少依赖 很多App开发时都已经先有了Web的版本,而App只是把Web的内容展示在移动设备上,这就会让App的很多功能依赖于Web事先实现的方式 9、开展分层测试和探索性测试 10、APP安全测试 测试App请求中是否包含了明文的用户信息,测试App的请求是否加密,测试SQLite数据库的存储是否安全,利用一些其他工具对app进行安全测试 11、善用log去分析和定位问题 app
1、动手之前先弄清设备和平台 在测试设计之初,测试人员首先会考虑的是测试的环境,也就是确定App究竟需要运行在什么样的设备和平台上。 用户在任何时间任何地点都可以打开App使用,这意味着App对于不同网络,以及网络变化的情况都能进行处理。因此,在测试时,要考虑弱网、无网、飞行模式、各种网络切换下的测试场景。 3、考虑多任务和意外情况处理 测试人员在设计和测试App的时候考虑到App被别的程序或者用户切换到后台时,需要进行什么操作。 8、对于既有Web版本又有App版本的App要减少依赖 很多App开发时都已经先有了Web的版本,而App只是把Web的内容展示在移动设备上,这就会让App的很多功能依赖于Web事先实现的方式 9、开展分层测试和探索性测试 10、APP安全测试 测试App请求中是否包含了明文的用户信息,测试App的请求是否加密,测试SQLite数据库的存储是否安全,利用一些其他工具对app进行安全测试 11、善用log去分析和定位问题 app
二、流畅度指标定义 流畅度,简单说就是度量用户使用APP体验的一部分,它是用户快速、无阻碍使用APP的一项体验指标。主要包括三方面内容:稳、快、质。 三、流畅度监控方案 在流畅度监控体系中,对于不流畅感知因子,进行单项分析及挖掘,旨在在迭代优化的同时,维持或提升已有的用户体验。 并与AB实验系统打通,业务、技改类需求都可以在AB系统中配置流畅度观测指标,比对业务或技改需求对流畅度的指标影响,作为实验是否通过的考量指标。 四、流畅度治理实践 在APP流畅度治理上,主要从页面启动加载速度,长列表卡顿治理,页面加载闪动三个方面进行了诸多优化实践,这些优化并没有涉及高大上的底层引擎优化技术,也没有复杂的数学理论基础,更没有重复造轮子 回顾近半年中文酒店APP流畅度实践,整个过程艰辛,也时刻伴随着焦虑。流畅度每一点的进步都不是一蹴而就,轻易达成的。
二、流畅度指标定义 流畅度,简单说就是度量用户使用APP体验的一部分,它是用户快速、无阻碍使用APP的一项体验指标。主要包括三方面内容:稳、快、质。 三、流畅度监控方案 在流畅度监控体系中,对于不流畅感知因子,进行单项分析及挖掘,旨在在迭代优化的同时,维持或提升已有的用户体验。 并与AB实验系统打通,业务、技改类需求都可以在AB系统中配置流畅度观测指标,比对业务或技改需求对流畅度的指标影响,作为实验是否通过的考量指标。 四、流畅度治理实践 在APP流畅度治理上,主要从页面启动加载速度,长列表卡顿治理,页面加载闪动三个方面进行了诸多优化实践,这些优化并没有涉及高大上的底层引擎优化技术,也没有复杂的数学理论基础,更没有重复造轮子 回顾近半年中文酒店APP流畅度实践,整个过程艰辛,也时刻伴随着焦虑。流畅度每一点的进步都不是一蹴而就,轻易达成的。
前文我们分析了通过测量应用的帧率FPS并不能准确评价App的流畅度(如何量化Android应用的“卡”? 流畅度原理&定义篇),FPS较低并不能代表当前App在UI上界面不流畅,而1s内VSync这个Loop运行了多少次更加能说明当前App的流畅程度。 将流畅度后面小方框勾选(表示需要记录SM值到log文件),然后点击右个角“Gather & Warning”下小红圈(表示开始记录数值)。 4、启动App,开始做相关的测试。 如何有效利用SM值判断App流畅度? 确定了使用SM值来评估手机App的流畅度后,我们会开始进行一个产品在不同场景,以及多个产品间在相同场景下的测试对比。 将测试结果按卡顿和流畅分段,对每个卡顿区间段打分 之前参考了一篇游戏流畅度评分的文章,该文章结合FPS平均值和卡顿的程度以及频率,对游戏整体流畅度打分。但是普通App和游戏的区别比较大。
IT之家 8 月 2 日消息 外媒 Windows Latest 报道,微软画图和照片 App 的视觉更新已经公布,展示了一个与Windows 11 设计语言相匹配的新的现代界面。 微软画图抛弃了传统的 Ribbon 菜单,采用了类似于新的文件资源管理器的流畅标头,而且与 Windows 11 操作系统的其他部分一致。 正如你在图片中所看到的,Windows 11 的画图应用现在具有简化的工具栏。现有的功能区界面已被新的流畅标头所取代,它带有所有重要的选项,如“文件”、“编辑”、画笔等。 新的 Windows 11 应用程序即将推出 微软将在未来几周内开始为 Windows 11 推出更新的库应用程序,以获得消费者的反馈。 微软还计划在 Insider 计划的 Dev 开发频道发布 Windows 11 22H2(明年的功能更新),但新功能可能不包括在初始构建版本中。
再好的服务器,再好的配置也无法改变用户设备配置不统一的问题,用户配置不统一会造成视频卡顿、直播延迟大、音画不同步、开屏流畅度低等问题,想要解决以上问题,可以在直播源码上下手,提高用户的使用流畅度。 部分追求直播画面的直播,可以采用软解码,保证直播画质的清晰度。一般直播源码中包含硬解码和软解码两种。 直播APP源码 (2).JPG 除了解码方式会影响到视频开屏流畅度外,CDN节点的覆盖面积也会影响。 直播源码开屏流畅度除了在编解码方式上改变外,物理距离的影响也很大,因此在源码开发时不仅要选对编码方式还要考虑到节点服务器的覆盖问题。
,用来量化流畅度。 我们把这个转速叫做流畅度。 3、从FPS&丢帧到流畅度(SM: SMoothness) 实际上在很多Android的App中,很少有需要不断地去绘制的场景,很多时候页面都是静态的。 流畅度(SM: SMoothness):和丢帧相对,在VSync机制中1s内Loop运行的次数。 可以在Choreographer的回调FrameCallback中,按秒计数表示当前App的流畅程度,即流畅度SM(SMoothness)。 本文属于【MIG专项测试组】开篇文,后续还会继续跟大家分享关于流畅度的测试验证数学建模评分等方法,欢迎大家关注! 不总结哪来经验,不分享经验何用?
上一篇流畅度概念向大家详细地描述了VSync机制和Choreographer编舞者的用法。 可能所讲解的内容偏向理论概念,因此这篇是流畅度优化实操,整篇主要分三层,UI层、代码逻辑层、IO层来讲述各个优化点,其中还会穿插多个辅助检测插件。可谓干货满满,希望对大家有用。 可能存在一部分的测试甚至开发的同学不知道什么是过度绘制? 而在主线程中进行长时间和频繁的IO操作,对流畅度是有非常大的影响的,对于网络请求在安卓4.0之后,就已经不能在主线程进行网络操作了,否则程序会出现crash,因此我们对IO层的操作要进行监控。 流畅度优化经验总结 最后我来总结一下通篇对流畅度优化上的经验: UI布局优化 使用LinearLayout代替RelativeLayout,因为LinearLayout性能上稍微好一点 如果复杂的布局,
WeTest远程调试2.0 — 云真机今天正式上线,WeTest云真机是腾讯内部最新的游戏测试技术,远程调试性能大大提升,为广大开发者解决了3大难题: 1、 测试机少,购买手机会花费大量的人力、物力。 毫秒级时延,游戏画面更流畅 稳定极速的远程操作体验、享受“零”延迟的快感。 史上最流畅的云端手游测试,就在WeTest平台(http://wetest.qq.com/),快来体验一下吧! ►欢迎小伙伴们与我们多交流沟通,我们会收集大家的意见,不断优化完善,提供更优质的服务!
前言 1、准备 开发者账号 自从 Xcode7 出来之后,一般的真机测试不需要开发者账号,也就不需要看这篇教程,只有 app 具有 “推送” 等功能的时候,要真机测试就必须要开发者账号和设置证书 待测试的项目 2、真机测试步骤 1) 创建 App ID 2) 创建证书请求文件(CSR 文件) 3) 根据 CSR 创建开发者证书(CER)(开发、测试用的 Develope 证书) 4) 添加设备 2、填写信息创建 app ID 第一个选项:明确的 app id 与项目中的 Bundle Identifier 相对应,如果你打算将应用程序中加入 Game Center,或在应用中使用应用内购买 第二个选项:通用 app id 可以在所有不需要明确 id 的 app 中使用,淘宝上卖的真机调试证书就是这个 2、创建证书请求文件(CSR 文件) CSR 文件主要用于绑定你的电脑的 然后点击导出 填好名字和储存位置,点击储存 填写该 P12 文件证书的密码,点 “好” 然后生成 P12 文件 其实 P12 文件不仅是真机测试的时候用,上架的时候也会用
也希望这篇列表流畅度优化的文章能够给大家带来一点点启示。 和上一篇综述性质的文章不同,这一篇文章工程实用性更强一些,更多的是一些优化技术细节。 文中讨论了许多可能影响列表流畅度的因素,由于2018 WWDC里面讲述了大量的关于性能优化相关的内容,因此本文也在相关的内容里面加入2018 WWDC的性能优化部分。 但是希望大家在优化过程中,要结合自己的项目具体问题具体分析,因为本文讨论的影响流畅度的因素,可能并不是你的应用流畅性不佳的瓶颈,根据我的经验,大部分流畅的问题都是业务逻辑导致的,反倒什么离屏渲染啊之类大家耳熟能详的流畅度的影响因素在实际项目中并没有想象的那么大 卡顿产生的原因 在总体原则篇中提到,五大原则中的其中一个就是要理解优化任务的底层运行机制,因为只有深入了解底层机制才能更好的有针对性的提出更优的解决方案,所以在进行列表流畅度优化前,我们一定要弄清楚一个 特别是对于一些资讯类应用,这部分耗时相当大,对流畅度的影响也十分明显。对此可以自定义文本控件,用TextKit或最底层的CoreText对文本异步绘制。
各位觉得自己常用APP最低流畅网速是多少呢? 国庆期间回家几天,路上在高铁上也玩了不少手机,突然对弱网测试这个词感慨颇多。 弱网测试,属于健壮性测试的内容,就是测试软件在网络较弱的情况下,各种日常操作会不会因为网络延迟和中断等极端情况造成数据丢失、数据错乱、使用障碍等等BUG。 为什么要做呢? 微信 总体讲微信的流畅度是最高的,我主要也是用微信看看文章(没有视频),朋友圈、聊聊天(文字居多),整个过程除了朋友圈以及聊天中的图片不容易加载高清的以外,其他感知不大。 在地网速情况下,开屏广告依然流畅,大概是缓存的素材,毕竟APP广告好久才换一次。在部分基础功能使用上也比较流畅,主要是模块切换。但最重要的是,千万别打开H5页面,包括不限于活动页面。 后记 我特意针对这些APP(除了手机营业厅)做了个简单的测试,大概需要2Mb/s的速度才能满足这些APP比较流畅的使用,有兴趣的同学可以用工具自己测试一下常用APP的最低流畅网速是多少。
在视频拍摄阶段,用户最关注视频的清晰度和流畅度。这其中的优化包括几个环节: 1、预览帧率的提升摄像头采集到数据直到呈现到屏幕上,采用GPU驱动渲染,保证渲染的实时性,减少延迟和丢帧的情况。 3、针对低端机型 定义最优适配 移动终端机型复杂度极高,硬件能力、性能、屏幕分辨率等等指标千差万别,如果想要最大限度保证低端机上的视频质量,就要在提升清晰度和流畅度的时候,降低分辨率。
设备环境:macos 测试对象:Android-app 使用 Homebrew 安装docker brew cask install docker 在终端搜索Battery Historian相关的镜像 使用此选项进行短时间测试(3-4小时)。 采集报告前将battery统计状态重置,重置命令结束后断开usb,测试结束后用获取报告命令导出统计文件包: adb shell dumpsys batterystats --reset 执行上面两条命令后 ,相当于清理了battery记录的日志,点开了微信、后置相机、今日头条运行一段时间,然后导出报告 adb bugreport bugreport.zip 或者下面的命令,加上包名,测指定的app(包名com.example.android.sunshine.app shell dumpsys batterystats > bugreport.txt adb shell dumpsys batterystats>com.example.android.sunshine.app