CN106802935B - 一种页面流畅度的测试方法和装置 - Google Patents
一种页面流畅度的测试方法和装置 Download PDFInfo
- Publication number
- CN106802935B CN106802935B CN201611247434.7A CN201611247434A CN106802935B CN 106802935 B CN106802935 B CN 106802935B CN 201611247434 A CN201611247434 A CN 201611247434A CN 106802935 B CN106802935 B CN 106802935B
- Authority
- CN
- China
- Prior art keywords
- image frame
- page
- frame
- fluency
- time
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3612—Software analysis for verifying properties of programs by runtime analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
Abstract
本发明实施例公开了一种页面流畅度的测试方法和装置;本发明实施例采用加载待测试页面的页面数据,该页面数据包括多个图像帧,然后,确定当前待绘制的目标图像帧,并为该目标图像帧注册对应的回调函数,在开始对该目标图像帧进行绘制时,调用该回调函数,通过该回调函数记录该图像帧的起始绘制时间,根据该目标图像帧的起始绘制时间、以及历史图像帧的起始绘制时间,获取反映页面流畅度的参数。该方案可以提高页面流畅度测试的准确性和效率。
Description
技术领域
本发明涉及通信技术领域,具体涉及一种页面流畅度的测试方法和装置。
背景技术
目前,页面的流畅度成为衡量移动终端系统、或者移动终端应用(如浏览器)好坏的重要指标。页面的流畅度越来越受到用户和技术人员的重视。
目前,移动终端页面的流畅度测试方法主要包括:通过数据线将移动终端连接至PC(个人电脑),在移动终端上使用指定浏览器打开被测页面,在PC上使用指定工具远程调试页面,在时间线(TimeLine)中获取反应页面流畅度的参数。
由于目前页面流畅度测试方法需要远程调试页面,对页面本身性能有一定影响,因此,会导致页面流畅度的测试不准确。另外,还由于目前页面流畅度测试方法测试方式需要人工介入,降低了页面流畅度的测试效率。
发明内容
本发明实施例提供一种页面流畅度的测试方法和装置,可以提高页面流畅度测试的准确性和效率。
本发明实施例提供一种页面流畅度的测试方法,包括:
加载待测试页面的页面数据,所述页面数据包括多个图像帧;
确定当前待绘制的目标图像帧,并为所述目标图像帧注册对应的回调函数;
在开始对所述目标图像帧进行绘制时,调用所述回调函数;
通过所述回调函数记录所述目标图像帧的起始绘制时间;
根据所述目标图像帧的起始绘制时间、以及历史图像帧的起始绘制时间,获取反映页面流畅度的参数,所述历史图像帧为之前已经绘制的所述页面数据中的图像帧。
相应的,本发明实施例还提供一种页面流畅度的测试装置,包括:
加载单元,用于加载待测试页面的页面数据,所述页面数据包括多个图像帧;
注册单元,用于确定当前待绘制的目标图像帧,并为所述目标图像帧注册对应的回调函数;
调用单元,用于在开始对所述目标图像帧进行绘制时,调用所述回调函数;
记录单元,用于通过所述回调函数记录所述目标图像帧的起始绘制时间;
参数获取单元,用于根据所述目标图像帧的起始绘制时间、以及历史图像帧的起始绘制时间,获取反映页面流畅度的参数,所述历史图像帧为之前已经绘制的所述页面数据中的图像帧。
本发明实施例采用加载待测试页面的页面数据,该页面数据包括多个图像帧,然后,确定当前待绘制的目标图像帧,并为该目标图像帧注册对应的回调函数,在开始对该目标图像帧进行绘制时,调用该回调函数,通过该回调函数记录该目标图像帧的起始绘制时间,根据该目标图像帧的起始绘制时间、以及历史图像帧的起始绘制时间,获取反映页面流畅度的参数;由于该方案无需对页面进行远程调试,排除了远程调试对页面性能的干扰,因此可以提高页面流畅度测试的准确性,并且由于该方案无需人工介入即可实现对页面流畅度的测试,因此,还可以提高页面流畅度测试的速度和效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的页面流畅度的测试方法的流程图;
图2是本发明实施例提供的页面流畅度的测试方法的另一流程图;
图3是本发明实施例提供的页面流畅度的测试方法的又一流程图;
图4a是本发明实施例提供的页面流畅度的测试装置的结构示意图;
图4b是本发明实施例提供的页面流畅度的测试装置的另一结构示意图;
图5是本发明实施例提供的终端的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种页面流畅度的测试方法和装置。以下将分别进行详细说明。
实施例一、
本实施例将从页面流畅度的测试装置的角度进行描述,该页面流畅度的测试装置具体可以集成在终端中,该终端可以为手机、平板电脑等终端设备。
一种页面流畅度的测试方法,包括:采用加载待测试页面的页面数据,该页面数据包括多个图像帧,然后,确定当前待绘制的目标图像帧,并为该目标图像帧注册对应的回调函数,在开始对该目标图像帧进行绘制时,调用该回调函数,通过该回调函数记录该图像帧的起始绘制时间,根据该目标图像帧的起始绘制时间、以及历史图像帧的起始绘制时间,获取反映页面流畅度的参数。
如图1所示,该页面流畅度的测试方法的流程图具体可以如下:
100、加载待测试页面的页面数据,该页面数据包括多个图像帧。
比如,可以通过浏览器加载待测试页面的页面数据。该图像帧为页面数据中的图像帧数据,这里简称图像帧。在需要展示被测试页面时,即可以通过绘制模块对图像帧数据进行绘制,并展示绘制的图像。
其中,被测试页面的类型可以为多种,比如可以为HTML(HyperText MarkupLanguage,超文本标记语言)页面、H5(HTML5)页面等等。
101、确定当前待绘制的目标图像帧,并为该目标图像帧注册对应的回调函数。
实际应用中,本实施例可以按照一定的顺序来确定当前待绘制的目标图像帧,比如,在每个图像帧设置了编号之后,可以按照编号从小到大的顺序来确定当前待绘制的目标图像帧。
本实施例中为图像帧注册对应的回调函数,通过系统函数为该图像帧注册对应的回调函数(可记为callback)。比如可以通过window.requestAnimationFrame()注册一个回调函数。
其中,window.requestAnimationFrame()是用来在当前帧绘制之前,通知浏览器调用一个指定的函数。window.requestAnimationFrame()的优势,在于充分利用显示器的刷新机制,比较节省系统资源。显示器有固定的刷新频率60Hz,也就是说,每秒最多只能重绘60次,requestAnimationFrame的基本思想就是与这个刷新频率保持同步,利用这个频率进行帧重绘。
其中,回调函数可以为一个通过函数指针调用的函数。如果将函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。
回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。
102、在开始对该目标图像帧进行绘制时,调用该回调函数。
103、通过该回调函数记录该目标图像帧的起始绘制时间。
比如,通过该回调函数记录一个时间戳,该时间戳即为当前图像帧的起始绘制时间。
本实施例中,如果每次开始都对图像帧进行绘制时,即循环执行步骤101-103,都会调用回调函数记录图像帧的起始绘制时间,那么在所有图像帧绘制完毕后就可以得到一个时间戳序列:如T1、T2、……Ti……Tn,其中Ti表示图像帧i的起始绘制时间。
104、根据该目标图像帧的起始绘制时间、以及历史图像帧的起始绘制时间,获取反映页面流畅度的参数,该历史图像帧为之前已经绘制的该页面数据中的图像帧。
本实施例中,历史图像帧为当前时刻之前页面数据中已绘制的图像帧,比如,页面数据包括n帧,当前图像帧为第i个图像帧,假设从第1个图像帧开始绘制,那么历史图像帧即为第i-1个图像帧……第1个图像帧的至少一个图像帧。优选地,该历史图像帧可以为与目标图像帧相邻的历史图像帧,如第i-1个图像帧。
其中,页面流畅度可以为页面滑动流畅度等,该参数可以为衡量或者反映页面滑动流畅度的指标。比如,反映页面流畅度的参数可以包括帧率、掉帧数、帧率与标准帧率之间的帧率比值等等。
本实施例中,获取反映页面流畅度的参数的方式可以有多种,如下:
(1)、基于图像帧的绘制时长(即绘制耗时)获取反映页面流畅度的参数;
也即步骤“根据该目标图像帧的起始绘制时间、以及历史图像帧的起始绘制时间”可以包括:
根据目标图像帧与上一图像帧的起始绘制时间,获取上一图像帧的绘制时长;
根据该绘制时长获取反映页面流畅度的参数。其中,上一图像帧为上一次已绘制的图像帧。比如,页面数据包括:图像帧1、图像帧2……图像帧n,从图像帧1向图像帧n绘制时;如果当前图像帧为帧i时,那么上一图像帧为帧i-1。
具体地,可以获取当前图像帧(即目标图像帧)与上一图像帧的起始绘制时间之差,该时间差为上一图像帧的绘制时长。
比如,当前待绘制的目标图像帧为帧i时,可以获取帧i的起始绘制时间Ti,获取帧i的上一图像帧即帧i-1的起始绘制时间Ti-1,那么此时,帧i-1的绘制时长△Ti-(i-1)=Ti-Ti-1。
优选地,可以根据图像帧的绘制时长获取图像帧的帧率(FPS),即每秒绘制的帧数,然后,根据该帧率获取反映页面流畅度的参数。
其中,可以通过以下公式来计算FPS:
FPS=1s/△t,△t为图像帧的绘制时长。
比如,当帧i-1的绘制时长△Ti-(i-1)=Ti-Ti-1时,可以通过上面的公式得到:FPS=1s/△Ti-(i-1)。
实际应用中,由于帧率(FPS)可以直接反映页面流畅度(如页面滑动流畅度),FPS越大即每秒帧数越多,则页面越流畅,反之则越卡顿。此时,反映页面流畅度的参数可以包括帧率,也即将该帧率直接作为获取反映页面流畅度的参数。
此外,还可以获取帧率FPS与标准帧率FPS标准之间的帧率比例LF,以反映页面流畅度。其中,标准帧率可以根据实际需求设定,如FPS标准=60hz等。也即步骤“根据该帧率获取反映页面流畅度的参数”可以包括:获取该帧率与标识帧率之间的阵列比例,此时反映页面流畅度的参数可以包括该帧率比例。
实际应用中,反映页面流畅度的参数可以包括帧率FPS、和/或帧率FPS与标准帧率FPS标准之间的帧率比例LF。具体地,参数选用可以根据实际需求设定。
优选地,还可以根据该绘制时长和图像帧的标准绘制时长获取掉帧数,并将该掉帧数也作为反映页面流畅度的参数。
其中,图像帧的标准绘制时长可以以一定的标准帧率FPS标准为参考来获取,具体地,可以通过以下公式计算标准绘制时长:
T标准=1000ms/FPS标准;其中,T标准为图像帧的标准绘制时长,即标准耗时。
比如,当FPS标准=60hz时,可以通过上述公式计算得到T标准=1000ms/60hz=16.6ms。该标准帧率FPS标准可以根据实际需求设定。本实施例中,掉帧数dropCount可以基于获取的图像帧的绘制时长与标识绘制时长得到。比如,可以通过以下公式得到:
掉帧数dropCount=△t/T标准;其中,T标准为图像帧的标准绘制时长,△t为图像帧的绘制时长。
比如,当T标准=16.6ms时,可以通过以下公式得到掉帧数:
dropCount=△t/16.6ms。
本实施例的测试方法中,在得到掉帧数之后,可以直接将掉帧数作为反映页面流畅度的参数。此外,为了更精确度地反映页面流畅度,还可以获取在一定时间段(如一分钟)内掉帧数dropCount出现的次数,即一定时间段内掉帧数dropCount对应的掉帧率。此时,反映页面流畅度参数可以包括在预设时间段内掉帧数dropCount对应的掉帧率。
比如,可以获取在一段时间内掉1帧、掉2帧、掉3帧等出现的次数。
实际应用中,反映页面流畅度的参数可以包括:掉帧数dropCount、和/或掉帧数dropCount对应的掉帧率。
另外,在一些实施例中,在获取每个图像帧的绘制时长△Ti-(i-1)后,还可以通过计算其他性能指标衡量页面流畅度,例如:每一帧绘制时长的方差、标准差等等。
此时,步骤“根据该目标图像帧的起始绘制时间、以及历史图像帧的起始绘制时间,获取反映页面流畅度的参数”,可以包括:
根据图像帧的绘制时长和历史图像帧的绘制时长,获取图像帧绘制时长的方差和/或标准差。此时,反映页面流畅度的参数还可以包括图像帧绘制时长的方差和/或标准差。
比如,在经过多次计算后可以得到每一图像帧的绘制时长:△T2-1、△T3-4、……△Ti-(i-1)……△Tn-(n-1)。,此时,便可以根据该时长序列计算方差S和/或S’标准差。
(2)、基于当前已绘制的图像帧的帧数获取反映页面流畅度的参数;
也即,步骤“,根据该目标图像帧的起始绘制时间、以及历史图像帧的起始绘制时间,获取反映页面流畅度的参数”可以包括:
获取目标图像帧的起始绘制时间、与起始图像帧的起始绘制时间之间的时间差;
当该时间差大于或等于预设阈值时,根据当前已绘制图像帧的累积帧数,获取反映页面流畅度的参数;
根据当前图像帧更新该起始图像帧。
其中,起始图像帧为页面数据中第一个被绘制的图像帧,比如可以为待测试页面的第一个图像帧,即帧1,起始图像帧可以根据实际需求设定,也可以设置为第二个图像帧等;本实施例在获取反映页面流畅度的参数之后,还可以根据当前图像帧更新该起始图像帧。具体地,可以将当前图像帧设置为起始图像帧。
本实施例中,预设阈值可以根据实际需求设定,比如,预设阈值可以为1s,若时间差大于或等于1s,此时,当前已绘制图像帧的累积帧数即为图像帧的帧率FPS。实际应用中,由于帧率(FPS)可以直接反映页面流畅度(如页面滑动流畅度),FPS越大即每秒帧数越多,则页面越流畅,反之则越卡顿。此时,参数可以包括帧率,也即步骤“根据当前已绘制图像帧的累积帧数,获取反映页面流畅度的参数”,可以包括:根据该累积帧数获取图像帧的帧率,并将该帧率直接作为获取反映页面流畅度的第一参数。
同样,本实施例还可以获取帧率FPS与标准帧率FPS标准之间的比例LF,以反映页面流畅度。其中,标准帧率可以根据实际需求设定,如FPS标准=60hz等。也即步骤“根据当前已绘制图像帧的累积帧数,获取反映页面流畅度的参数”可以包括:
根据当前已绘制图像帧的累积帧数获取图像帧的帧率;
获取该帧率与标识帧率之间的帧率比例。此时参数可以包括帧率FPS和/或该帧率比例。
此外,本实施例在获取第一参数的基础上,还可以基于图像帧的绘制时长获取反映页面流畅度的第二参数。即步骤“根据当前已绘制图像帧的累积帧数,获取反映页面流畅度的参数”可以包括:
根据该累积帧数获取图像帧的帧率,并将该帧率作为反映页面流畅度的第一参数;
根据该帧率和图像帧的标准绘制时长获取掉帧数,并将该掉帧数作为反映页面流畅度的第二参数。
由于FPS=1s/△t,dropCount=△t/T标准;那么dropCount=1s/(△t*T标准),因此,可以通过帧率和标准绘制时长获取掉帧数。
此外,本实施例还可以通过目标图像帧与上一图像帧的起始绘制时间得到上一帧的绘制时长,然后,基于绘制时长和图像帧的标准绘制时长获取掉帧数。也即步骤“根据该目标图像帧的起始绘制时间、以及历史图像帧的起始绘制时间,获取反映页面流畅度的参数”还可以包括:
根据目标图像帧与上一图像帧的起始绘制时间,获取上一图像帧的绘制时长;
根据该绘制时长和图像帧的标准绘制时长获取掉帧数,并将该掉帧数作为反映页面流畅度的参数。
具体地,获取掉帧数的方式可以参考上面的描述,此处不再赘述。该第二参数同样可以包括掉帧数dropCount、和/或掉帧数dropCount对应的掉帧率。
可选地,本实施例还可以对针对每个图像帧执行步骤101-104,以得到多个反映页面流畅度的参数,即反映页面流畅度的参数序列。也即本实施例方法在步骤104之后还包括:
确定该页面数据中的所有图像帧是否绘制完毕;
若否,则返回执行确定当前待绘制的图像帧的步骤,即步骤101。
本实施例方法在获取反映页面流畅度的参数之后,需要返回步骤101为下一个图像帧注册对应的回调函数,然后,在开始对下一个图像帧进行绘制时调用回调函数记录该图像帧的起始绘制时间,并基于该起始绘制时间和历史图像帧的起始绘制时间再次获取反映页面流畅度的参数。如此循环直至页面数据中所有图像帧绘制完成。因此,在所有图像帧绘制完成,可以得到一系列的反映页面流畅度的参数。
比如,当该参数为帧率FPS时,可以得到一组FPS,即FPS1、FPS2……FPSm。用户通过该一系列的FPS便可获知页面流畅度。比如,当FPS组中大于预设帧率至的FPS个数满足一定要求时,则认为页面流畅。
又比如,当参数包括帧率FPS和掉帧数dropCount时,经过多次循环可以得到一组FPS,即FPS1、FPS2……FPSm,和一组dropCount,即dropCount1、dropCount2……dropCountm;此时,用户可以通过FPS组和dropCount组来衡量页面流畅度。
由上可知,本发明实施例采用加载待测试页面的页面数据,该页面数据包括多个图像帧,然后,确定当前待绘制的目标图像帧,并为该图像帧注册对应的回调函数,在开始对该目标图像帧进行绘制时,调用该回调函数,通过该回调函数记录该目标图像帧的起始绘制时间,根据该目标图像帧的起始绘制时间、以及历史图像帧的起始绘制时间,获取反映页面流畅度的参数。该方案可以通过注册的回调函数获取每个图像帧的起始绘制时间,并基于图像帧和历史图像帧的起始绘制时间获取反映页面流畅度的参数;由于该方案无需对页面进行远程调试,排除了远程调试对页面性能的干扰,因此可以提高页面流畅度测试的准确性,并且由于该方案无需人工介入即可实现对页面流畅度的测试,因此,还可以提高页面流畅度测试的速度和效率。
此外,本发明实施例提供的测试方案与平台相关性,对于任意平台上的页面的滑动流畅度均可以有效评测。比如,在不同的移动端(iOS、Android等)上,在不同的应用或浏览器中,均可有效评测页面滑动流畅度。
实施例二、
根据实施例一所描述的方法,以下将举例作进一步详细说明。
在本实施例中,将以该测试装置具体集成终端,且参数包括帧率和掉帧数为例进行说明。
如图2所示,一种页面流畅度的测试方法,具体流程如下:
200、终端加载待测试页面的页面数据,该页面数据包括多个图像帧。
比如,可以通过浏览器加载待测试页面的页面数据。该图像帧为页面数据中的图像帧数据,这里简称图像帧。在需要展示被测试页面时,即可以通过绘制模块对图像帧数据进行绘制,并展示绘制的图像。
其中,测试页面的类型可以为多种,比如可以为HTML(HyperText MarkupLanguage,超文本标记语言)页面、H5(HTML5)页面等等。
201、终端确定当前待绘制的图像帧,并为该图像帧注册对应的回调函数。
其中,终端可以通过window.requestAnimationFrame()为图像帧注册回调函数callback。
例如,当该图像帧为帧n时,可以为帧n注册回调函数,假设帧n对应的回调函数为callback_n。
202、终端在开始对该图像帧进行绘制时,调用该回调函数。
比如,在浏览器开始对帧n进行绘制时,调用回调函数callback_n。
203、终端通过回调函数记录当前图像帧的起始绘制时间。
比如,终端通过回调函数callback_n记录当前帧n的起始绘制时间Tn。
比如,终端可以通过该回调函数记录一个时间戳,该时间戳即为当前图像帧的起始绘制时间。在经过多次循环之后,可以得到一个起始绘制时间序列,即时间戳序列:如T1、T2、……Ti……Tn,其中Ti表示图像帧i的起始绘制时间。
204、终端根据当前图像帧与上一图像帧的起始绘制时间,获取上一图像帧的绘制时长。
具体地,终端获取当前图像帧与上一图像帧的起始绘制时间之差,得到上一图形帧的绘制时长即绘制耗时。
其中,终端可以通过回调函数获取当前图像帧与上一图像帧的起始绘制时间之差,得到上一图形帧的绘制时长即绘制耗时。
比如,终端获取帧n的起始绘制时间Tn与上一个帧n-1的起始Tn-1之间的差值,该差值即为帧n-1的绘制时长。其中,△Tn-(n-1)=Tn-Tn-1,△Tn-(n-1)为帧n-1的绘制时长。
在经过多次循环后,可以得到每一图像帧的绘制时长:△T2-1、△T3-4、……△Ti-(i-1)……△Tn-(n-1)。
在一些实施例中,可以先记录图像帧的起始绘制时间,不需要马上计算出绘制时长,可以在其他时机来计算绘制时长。比如,在测试的最后阶段来计算绘制时长等。
本实施例方法还可以在获取图像帧的绘制时长之后,可以计算图像帧绘制时长的方差和/或标准差。比如,在经过多次计算后可以得到每一图像帧的绘制时长:△T2-1、△T3-4、……△Ti-(i-1)……△Tn-(n-1)。,此时,便可以根据该时长序列计算方差S和/或S’标准差。
205、终端根据该绘制时长和图像帧的标准绘制时长获取掉帧数。
实际应用中,终端可以在回调函数中根据该绘制时长和图像帧的标准绘制时长获取掉帧数。
其中,图像帧的标准绘制时长可以以一定的标准帧率FPS标准为参考来获取,具体地,可以通过以下公式计算标准绘制时长:
T标准=1000ms/FPS标准;其中,T标准为图像帧的标准绘制时长,即标准耗时。
比如,当FPS标准=60hz时,可以通过上述公式计算得到T标准=1000ms/60hz=16.6ms。该标准帧率FPS标准可以根据实际需求设定。
其中,掉帧数为反映页面流畅度的参数。该掉帧数dropCount=△t/T标准;其中,T标准为图像帧的标准绘制时长,△t为图像帧的绘制时长。
此时,掉帧数dropCount=△Tn-(n-1)/16.6ms。
本实施例在获取掉帧数之后,还可以进一步获取在预定时间段内该掉帧数出现的次数,即一定时间段内掉帧数dropCount对应的掉帧率。比如,可以获取在一段时间内掉1帧、掉2帧、掉3帧等的次数。通过掉帧数分布可以更加客观地衡量页面流畅度。
206、终端更新当前已绘制图像帧的累积帧数N。
具体地,通过加1的方式更新当前已绘制图像帧的累积帧数N。比如,通过N=N+1更新当前已绘制图像帧的累积帧数。
例如,在当前图像帧之前总共累积绘制了N=6个图像帧,此时,可将累积帧数N加1以更新当前已绘制图像帧的累积帧数,此时,当前已绘制图像帧的累积帧数为7。
207、终端获取当前图像帧的起始绘制时间、与起始图像帧的起始绘制时间之间的时间差。
比如,在初始阶段,该起始图像帧为第一个图像帧,即帧1,此时,可以获取帧n的起始绘制时间Tn与帧1的起始绘制时间T1之间的时间差,即Tn-T1。
208、终端判断该时间差是否大于或等于1s,若是,则执行步骤207,若否,则返回执行步骤200确定下一个待绘制的图像帧,并为下一个图像帧注册对应的回调函数。
比如,终端判断Tn-T1是否大于或等于1s,若是,则当前累积帧数N即为图像帧的帧率FPS。
209、终端根据累积帧数N获取图像帧的帧率FPS。
比如,帧率FPS=N。
210、终端将起始图像帧设置为当前图像帧,并将累积帧数N置零。
211、终端确定页面数据中所有图像帧是否绘制完毕,若否返回步骤201确定下一个待绘制的图像帧,并为下一个图像帧注册对应的回调函数,若是,则结束流程。
比如,当起始图像帧为帧1时,将起始图像帧设置为帧n;并重置N=0。
在callback函数逻辑最后,再次通过window.requestAnimationFrame()为下一帧注册callback,确保每帧绘制前都会调用callback函数。
实际应用中,本实施例中步骤204-210可以在callback函数中执行,即通过callback函数来实现。
比如,在步骤204-210可以在callback_n函数中执行,本实施例可以在callback_n函数中获取页面流畅度的参数,最后可以在callback_n逻辑中为下一帧n+1注册回调函数callback_n+1。也即,本实施例可以依次在每一帧的callback中为下一帧注册相应的callback。如此循环直到页面数据中所有图像帧绘制完成。
本实施例经过上述循环可以获取针对每个图像帧获取相应的加载待测试页面的页面数据,该页面数据包括多个图像帧,得到反映页面流畅度的参数序列。此时,用户可以基于该参数序列来衡量页面流畅度。
比如,当参数包括帧率FPS和掉帧数dropCount时,经过多次循环可以得到一组FPS,即FPS1、FPS2……FPSm,和一组dropCount,即dropCount1、dropCount2……dropCountm;此时,用户可以通过FPS组和dropCount组来衡量页面流畅度。
由上可知,本发明实施例采用加载待测试页面的页面数据,该页面数据包括多个图像帧,然后,确定当前待绘制的图像帧,并为该图像帧注册对应的回调函数,在开始对该图像帧进行绘制时,调用该回调函数,通过该回调函数记录该图像帧的起始绘制时间,根据该图像帧的起始绘制时间获取掉帧数和帧率,并返回确定当前待绘制的图像帧的步骤。该方案可以通过注册的回调函数获取每个图像帧的起始绘制时间,并基于图像帧的起始绘制时间获取掉帧数和帧率;由于该方案无需对页面进行远程调试,排除了远程调试对页面性能的干扰,因此可以提高页面流畅度测试的准确性,并且由于该方案无需人工介入即可实现对页面流畅度的测试,因此,还可以提高页面流畅度测试的速度和效率。
此外,该方案可以具有以下优点:
(1)、该获取掉帧数和帧率,以测试页面流畅度,相比目前仅获取帧率的测试方法来说,可以提高页面流畅度测试的精确性。
(2)、测试方案与平台相关性,对于任意平台上的页面的滑动流畅度均可以有效评测。比如,在不同的移动端(iOS、Android等)上,在不同的应用或浏览器中,均可有效评测页面滑动流畅度。
(3)、通过本实施例方法获得的页面流畅度评测数据,与用户真实使用场景的滑动体验相吻合。
(4)、在将本实施例方法应用到H5页面流畅度测试时,可以结合H5其他技术,可以将页面流畅度指标实时绘制在页面上,方便测试人员及时发现性能问题。
实施例三、
根据实施例一所描述的方法,以下将举例作进一步详细说明。
在本实施例中,将以该测试装置具体集成终端,且参数包括帧率和掉帧数为例进行说明。
如图3所示,一种页面流畅度的测试方法,具体流程如下:
300、终端加载待测试页面的页面数据,该页面数据包括多个图像帧。
比如,可以通过浏览器加载待测试页面的页面数据。该图像帧为页面数据中的图像帧数据,这里简称图像帧。在需要展示被测试页面时,即可以通过绘制模块对图像帧数据进行绘制,并展示绘制的图像。
其中,测试页面的类型可以为多种,比如可以为HTML(HyperText MarkupLanguage,超文本标记语言)页面、H5(HTML5)页面等等。
301、终端确定当前待绘制的图像帧,并为该图像帧注册对应的回调函数。
其中,终端可以通过window.requestAnimationFrame()为图像帧注册回调函数callback。
例如,当该图像帧为帧n时,可以为帧n注册回调函数,假设帧n对应的回调函数为callback_n。
302、终端在开始对该图像帧进行绘制时,调用该回调函数。
比如,在浏览器开始对帧n进行绘制时,调用回调函数callback_n。
303、终端通过回调函数记录当前图像帧的起始绘制时间。
比如,终端通过回调函数callback_n记录当前帧n的起始绘制时间Tn。
比如,终端可以通过该回调函数记录一个时间戳,该时间戳即为当前图像帧的起始绘制时间。在经过多次循环之后,可以得到一个起始绘制时间序列,即时间戳序列:如T1、T2、……Ti……Tn,其中Ti表示图像帧i的起始绘制时间。
304、终端根据当前图像帧与上一图像帧的起始绘制时间,获取上一图像帧的绘制时长。
具体地,终端获取当前图像帧与上一图像帧的起始绘制时间之差,得到图形帧的绘制时长即绘制耗时。比如,在回调函数callback_n中获取图像帧的绘制时长。
其中,终端可以通过回调函数获取当前图像帧与上一图像帧的起始绘制时间之差,得到图形帧的绘制时长即绘制耗时。
比如,终端获取帧n的起始绘制时间Tn与上一个帧n-1的起始Tn-1之间的差值,该差值即为帧n-1的绘制时长。其中,△Tn-(n-1)=Tn-Tn-1,△Tn-(n-1)为帧n-1的绘制时长。
在经过多次循环后,可以得到每一图像帧的绘制时长:△T2-1、△T3-4、……△Ti-(i-1)……△Tn-(n-1)。
在一些实施例中,可以先记录图像帧的起始绘制时间,不需要马上计算出绘制时长,可以在其他时机来计算绘制时长。比如,在测试的最后阶段来计算绘制时长等。
本实施例方法还可以在获取图像帧的绘制时长之后,可以计算图像帧绘制时长的方差和/或标准差。比如,在经过多次计算后可以得到每一图像帧的绘制时长:△T2-1、△T3-4、……△Ti-(i-1)……△Tn-(n-1)。,此时,便可以根据该时长序列计算方差S和/或S’标准差。
305、终端根据该绘制时长和图像帧的标准绘制时长获取掉帧数。
实际应用中,终端可以在回调函数中根据该绘制时长和图像帧的标准绘制时长获取掉帧数。比如,可以在callback_n中获取掉帧数。
其中,图像帧的标准绘制时长可以以一定的标准帧率FPS标准为参考来获取,具体地,可以通过以下公式计算标准绘制时长:
T标准=1000ms/FPS标准;其中,T标准为图像帧的标准绘制时长,即标准耗时。
比如,当FPS标准=60hz时,可以通过上述公式计算得到T标准=1000ms/60hz=16.6ms。该标准帧率FPS标准可以根据实际需求设定。
其中,掉帧数为反映页面流畅度的参数。该掉帧数dropCount=△t/T标准;其中,T标准为图像帧的标准绘制时长,△t为图像帧的绘制时长。
此时,掉帧数dropCount=△Tn-(n-1)/16.6ms。
本实施例在获取掉帧数之后,还可以进一步获取在预定时间段内该掉帧数出现的次数,即一定时间段内掉帧数dropCount对应的掉帧率。比如,可以获取在一段时间内掉1帧、掉2帧、掉3帧等的次数。通过掉帧数分布可以更加客观地衡量页面流畅度。
306、终端根据该绘制时长获取图像帧的帧率FPS。返回步骤301确定下一个待绘制的图像帧,并为下一个图像帧注册对应的回调函数。
具体地,终端可以通过以下公式来计算FPS:
FPS=1s/△t,△t为图像帧的绘制时长。
比如,此时FPS=1s/△Tn-(n-1)。
此外,本实施例终端还可以获取帧率FPS与标准帧率FPS标准之间的比例LF,以反映页面流畅度。
实际应用中,本实施例中步骤304-306可以在callback_n函数中执行,本实施例可以在callback_n函数中获取页面流畅度的参数,最后可以在callback_n逻辑中为下一帧n+1注册回调函数callback_n+1。也即,本实施例可以依次在每一帧的callback中为下一帧注册相应的callback。如此循环直到测试完成。
本实施例经过上述循环可以获取针对每个图像帧获取相应的加载待测试页面的页面数据,该页面数据包括多个图像帧,得到反映页面流畅度的参数序列。此时,用户可以基于该参数序列来衡量页面流畅度。
比如,当参数包括帧率FPS和掉帧数dropCount时,经过多次循环可以得到一组FPS,即FPS1、FPS2……FPSm,和一组dropCount,即dropCount1、dropCount2……dropCountm;此时,用户可以通过FPS组和dropCount组来衡量页面流畅度。
由上可知,本发明实施例采用加载待测试页面的页面数据,该页面数据包括多个图像帧,然后,确定当前待绘制的图像帧,并为该图像帧注册对应的回调函数,在开始对该图像帧进行绘制时,调用该回调函数,通过该回调函数记录该图像帧的起始绘制时间,根据该图像帧的起始绘制时间获取掉帧数和帧率,并返回确定当前待绘制的图像帧的步骤。该方案可以通过注册的回调函数获取每个图像帧的起始绘制时间,并基于图像帧的起始绘制时间获取掉帧数和帧率;由于该方案无需对页面进行远程调试,排除了远程调试对页面性能的干扰,因此可以提高页面流畅度测试的准确性,并且由于该方案无需人工介入即可实现对页面流畅度的测试,因此,还可以提高页面流畅度测试的速度和效率。
此外,该方案可以具有以下优点:
(1)、该获取掉帧数和帧率,以测试页面流畅度,相比目前仅获取帧率的测试方法来说,可以提高页面流畅度测试的精确性。
(2)、测试方案与平台相关性,对于任意平台上的页面的滑动流畅度均可以有效评测。比如,在不同的移动端(iOS、Android等)上,在不同的应用或浏览器中,均可有效评测页面滑动流畅度。
(3)、通过本实施例方法获得的页面流畅度评测数据,与用户真实使用场景的滑动体验相吻合。
(4)、在将本实施例方法应用到H5页面流畅度测试时,可以结合H5其他技术,可以将页面流畅度指标实时绘制在页面上,方便测试人员及时发现性能问题。
实施例四、
为了更好地实施以上方法,本发明实施例还提供一种页面流畅度的测试装置,如图4a所示,该页面流畅度的测试装置包括加载单元400、注册单元401、调用单元402、记录单元403、和参数获取单元404,如下:
(1)加载单元400;
加载单元400,用于加载待测试页面的页面数据,该页面数据包括多个图像帧。
比如,加载单元400,可以通过浏览器加载待测试页面的页面数据。该图像帧为页面数据中的图像帧数据,这里简称图像帧。在需要展示被测试页面时,即可以通过绘制模块对图像帧数据进行绘制,并展示绘制的图像。
其中,被测试页面的类型可以为多种,比如可以为HTML(HyperText MarkupLanguage,超文本标记语言)页面、H5(HTML5)页面等等。
(2)注册单元401;
注册单元401,用于确定目标待绘制的图像帧,并为该目标图像帧注册对应的回调函数。
其中,注册单元401可以通过系统函数如window.requestAnimationFrame()注册一个回调函数。
(3)调用单元402;
调用单元402,用于在开始对该目标图像帧进行绘制时,调用该回调函数。
(4)记录单元403;
记录单元403,用于通过该回调函数记录该目标图像帧的起始绘制时间。
比如,记录单元403用于通过该回调函数记录一个时间戳,该时间戳即为当前图像帧即目标图像帧的起始绘制时间。
(5)参数获取单元404;
参数获取单元404,用于根据该目标图像帧的起始绘制时间、以及历史图像帧的起始绘制时间,获取反映页面流畅度的参数,该历史图像帧为之前已经绘制的该页面数据中的图像帧。
本实施例中,历史图像帧为当前时刻之前页面数据中已绘制的图像帧,比如,页面数据包括n帧,当前图像帧为第i个图像帧,假设从第1个图像帧开始绘制,那么历史图像帧即为第i-1个图像帧……第1个图像帧的至少一个图像帧。优选地,该历史图像帧可以为与目标图像帧相邻的历史图像帧,如第i-1个图像帧。
其中,页面流畅度可以为页面滑动流畅度等,该参数可以为衡量或者反映页面滑动流畅度的指标。比如,反映页面流畅度的参数可以包括帧率、掉帧数、帧率与标准帧率之间的帧率比值等等。
其中,该参数获取单元404,可以包括:
第一时长获取子单元,用于根据目标图像帧与上一图像帧的起始绘制时间,获取上一图像帧的绘制时长;
参数获取子单元,用于根据该绘制时长获取反映页面流畅度的参数。
比如,该参数获取子单元,用于:根据该绘制时长获取图像帧的帧率,并根据该帧率获取反映页面流畅度的参数。
比如,该参数获取子单元,用于:
将该帧率作为反映页面流畅度的参数;
或者
获取该帧率与标准帧率之间的帧率比值,并将该帧率比值作为反映页面流畅度的参数,。
本实施例中,该参数可以包括帧率FPS、和/或帧率FPS与标准帧率FPS标准之间的比例LF。具体地,参数选用可以根据实际需求设定。又比如,该参数获取子单元,用于:根据该绘制时长和图像帧的标准绘制时长获取掉帧数,并将该掉帧数作为反映页面流畅度的参数。
此时,该参数可以包括在预设时间段内掉帧数dropCount对应的掉帧率。
其中,参数获取单元404,可以包括:
时差获取子单元,用于获取目标图像帧的起始绘制时间、与起始图像帧的起始绘制时间之间的时间差;
参数获取子单元,用于当该时间差大于或等于预设阈值时,根据当前已绘制图像帧的累积帧数,获取反映页面流畅度的第三参数;
更新子单元,用于根据目标图像帧更新该起始图像帧。
其中,参数可以包括帧率FPS和/或该比例。
可选地,该参数获取子单元,可以具体用于:
根据该累积帧数获取图像帧的帧率,并将该帧率作为反映页面流畅度的第一参数;
根据该帧率和图像帧的标准绘制时长获取掉帧数,并将该掉帧数作为反映页面流畅度的第二参数
此时,该参数可以包括FPS、掉帧数dropCount、和/或掉帧数dropCount对应的掉帧率。
可选地,参考图4b,本实施例测试装置还可以包括确定单元405,确定单元,用于在参数获取单元获取反映页面流畅度的参数之后,确定该页面数据中的所有图像帧是否绘制完毕,若否,则触发该注册单元401执行确定当前待绘制的图像帧的步骤。
本实施例还可以对针对每个图像帧计算参数,以得到多个反映页面流畅度的参数,即反映页面流畅度的参数序列。此时,可以根据一系列的反映页面流畅度的参数确定页面流畅度。提高了页面流畅度测试的准确性和客观性。
具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。
该页面流畅度的测试装置具体可以集成在终端中,该终端可以为手机、平板电脑等终端设备。
由上可知,本发明实施例的页面流畅度的测试装置通过加载单元400加载待测试页面的页面数据,该页面数据包括多个图像帧,然后,由注册单元401确定当前待绘制的目标图像帧,并为该目标图像帧注册对应的回调函数,由调用单元402在开始对该目标图像帧进行绘制时,调用该回调函数,由记录单元403通过该回调函数记录该目标图像帧的起始绘制时间,由参数获取单元404根据该目标图像帧的起始绘制时间、以及历史图像帧的起始绘制时间,获取反映页面流畅度的参数,该历史图像帧为之前已经绘制的该页面数据中的图像帧。该方案可以通过注册的回调函数获取每个图像帧的起始绘制时间,并基于图像帧的起始绘制时间获取反映页面流畅度的参数;由于该方案无需对页面进行远程调试,排除了远程调试对页面性能的干扰,因此可以提高页面流畅度测试的准确性,并且由于该方案无需人工介入即可实现对页面流畅度的测试,因此,还可以提高页面流畅度测试的速度和效率。
此外,本发明实施例提供的测试方案与平台相关性,对于任意平台上的页面的滑动流畅度均可以有效评测。比如,在不同的移动端(iOS、Android等)上,在不同的应用或浏览器中,均可有效评测页面滑动流畅度。
实施例五、
本实施例还提供了一种终端,比如,请参考图5,该终端500可以包括射频(RF,Radio Frequency)电路501、包括有一个或一个以上计算机可读存储介质的存储器502、输入单元503、显示单元504、传感器505、音频电路506、无线保真(WiFi,Wireless Fidelity)模块507、包括有一个或者一个以上处理核心的处理器508以及电源509等部件。本领域技术人员可以理解,图5中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
射频电路501可用于收发信息,或通话过程中信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器508处理;另外,将涉及上行的数据发送给基站。存储器502可用于存储软件程序以及模块。处理器508通过运行存储在存储器502的软件程序以及模块,从而执行各种功能应用以及数据处理。此外,存储器502可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器502还可以包括存储器控制器,以提供处理器508和输入单元503对存储器502的访问。
输入单元503可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,在一个具体的实施例中,输入单元503可包括触敏表面以及其他输入设备。具体地,其他输入设备可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆、指纹识别模组等中的一种或多种。
显示单元504可用于显示由用户输入的信息或提供给用户的信息以及终端的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。
终端还可包括至少一种传感器505,比如光传感器、运动传感器以及其他传感器。
音频电路506可通过扬声器、传声器提供用户与终端之间的音频接口。
处理器508是终端的控制中心,利用各种接口和线路连接整个终端的各个部分,通过运行或执行存储在存储器502内的软件程序和/或模块,以及调用存储在存储器502内的数据,执行终端的各种功能和处理数据,从而对终端进行整体监控。可选的,处理器508可包括一个或多个处理核心;优选的,处理器508可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和目标应用等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器508中。
终端还包括给各个部件供电的电源509(比如电池)。尽管未示出,终端还可以包蓝牙模块、摄像头等,在此不再赘述。
在本实施例中,终端中的处理器508会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器502中,并由处理器508来运行存储在存储器502中的应用程序,从而实现各种功能:
采用加载待测试页面的页面数据,该页面数据包括多个图像帧,然后,确定当前待绘制的目标图像帧,并为该图像帧注册对应的回调函数,在开始对该目标图像帧进行绘制时,调用该回调函数,通过该回调函数记录该图像帧的起始绘制时间,根据该目标图像帧的起始绘制时间、以及历史图像帧的起始绘制时间,获取反映页面流畅度的参数。
其中,根据所述图像帧的起始绘制时间获取反映页面流畅度的参数,包括:
根据目标图像帧与上一图像帧的起始绘制时间,获取上一图像帧的绘制时长;
根据所述绘制时长获取反映页面流畅度的参数。
比如,根据所述绘制时长获取反映页面流畅度的参数,包括:
根据所述绘制时长获取图像帧的帧率,并根据所述帧率获取反映页面流畅度的参数。
又比如,根据所述绘制时长获取反映页面流畅度的参数,包括:
根据所述绘制时长和图像帧的标准绘制时长获取掉帧数,并将所述掉帧数作为反映页面流畅度的参数。
可选地,根据所述目标图像帧的起始绘制时间、以及历史图像帧的起始绘制时间,获取反映页面流畅度的参数,包括:
获取目标图像帧的起始绘制时间、与起始图像帧的起始绘制时间之间的时间差;
当所述时间差大于或等于预设阈值时,根据当前已绘制图像帧的累积帧数,获取反映页面流畅度的参数;
根据目标图像帧更新所述起始图像帧。
由上可知,本发明实施例终端采用加载待测试页面的页面数据,该页面数据包括多个图像帧,然后,确定当前待绘制的目标图像帧,并为该目标图像帧注册对应的回调函数,在开始对该目标图像帧进行绘制时,调用该回调函数,通过该回调函数记录该目标图像帧的起始绘制时间,根据该目标图像帧的起始绘制时间、以及历史图像帧的起始绘制时间,获取反映页面流畅度的参数;由于该方案无需对页面进行远程调试,排除了远程调试对页面性能的干扰,因此可以提高页面流畅度测试的准确性,并且由于该方案无需人工介入即可实现对页面流畅度的测试,因此,还可以提高页面流畅度测试的速度和效率。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,RandomAccess Memory)、磁盘或光盘等。
以上对本发明实施例所提供的一种页面流畅度的测试方法和装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (17)
1.一种页面流畅度的测试方法,其特征在于,包括:
加载待测试页面的页面数据,所述页面数据包括多个图像帧;
确定当前待绘制的目标图像帧,并通过系统函数为所述目标图像帧注册对应的回调函数,所述系统函数为window.requestAnimationFrame();
在开始对所述目标图像帧进行绘制时,调用所述回调函数;
通过所述回调函数记录的一个时间戳作为所述目标图像帧的起始绘制时间;
根据所述目标图像帧的起始绘制时间、以及历史图像帧的起始绘制时间,获取反映页面流畅度的参数,所述历史图像帧为之前已经绘制的所述页面数据中的图像帧。
2.如权利要求1所述的测试方法,其特征在于,根据所述目标图像帧的起始绘制时间、以及历史图像帧的起始绘制时间,包括:
根据目标图像帧与上一图像帧的起始绘制时间,获取上一图像帧的绘制时长;
根据所述绘制时长获取反映页面流畅度的参数。
3.如权利要求2所述的测试方法,其特征在于,根据所述绘制时长获取反映页面流畅度的参数,包括:
根据所述绘制时长获取图像帧的帧率,并根据所述帧率获取反映页面流畅度的参数。
4.如权利要求3所述的测试方法,其特征在于,根据所述帧率获取反映页面流畅度的参数,包括:
将所述帧率作为反映页面流畅度的参数;
或者
获取所述帧率与标准帧率之间的帧率比值,并将所述帧率比值作为反映页面流畅度的参数。
5.如权利要求2所述的测试方法,其特征在于,根据所述绘制时长获取反映页面流畅度的参数,包括:
根据所述绘制时长和图像帧的标准绘制时长获取掉帧数,并将所述掉帧数作为反映页面流畅度的参数。
6.如权利要求1所述的测试方法,其特征在于,根据所述目标图像帧的起始绘制时间、以及历史图像帧的起始绘制时间,获取反映页面流畅度的参数,包括:
获取目标图像帧的起始绘制时间、与起始图像帧的起始绘制时间之间的时间差;
当所述时间差大于或等于预设阈值时,根据当前已绘制图像帧的累积帧数,获取反映页面流畅度的参数;
根据目标图像帧更新所述起始图像帧。
7.如权利要求6所述的测试方法,其特征在于,根据当前已绘制图像帧的累积帧数,获取反映页面流畅度的参数,包括:
根据所述累积帧数获取图像帧的帧率,并将所述帧率作为反映页面流畅度的第一参数;
根据所述帧率和图像帧的标准绘制时长获取掉帧数,并将所述掉帧数作为反映页面流畅度的第二参数。
8.如权利要求1-7任一项所述的测试方法,其特征在于,在获取反映页面流畅度的参数之后,还包括:
确定所述页面数据中的所有图像帧是否绘制完毕;
若否,则返回执行确定当前待绘制的目标图像帧的步骤。
9.一种页面流畅度的测试装置,其特征在于,包括:
加载单元,用于加载待测试页面的页面数据,所述页面数据包括多个图像帧;
注册单元,用于确定当前待绘制的目标图像帧,并通过系统函数为所述目标图像帧注册对应的回调函数,所述系统函数为window.requestAnimationFrame();
调用单元,用于在开始对所述目标图像帧进行绘制时,调用所述回调函数;
记录单元,用于通过所述回调函数记录的一个时间戳作为所述目标图像帧的起始绘制时间;
参数获取单元,用于根据所述目标图像帧的起始绘制时间、以及历史图像帧的起始绘制时间,获取反映页面流畅度的参数,所述历史图像帧为之前已经绘制的所述页面数据中的图像帧。
10.如权利要求9所述的测试装置,其特征在于,所述参数获取单元,包括:
第一时长获取子单元,用于根据目标图像帧与上一图像帧的起始绘制时间,获取上一图像帧的绘制时长;
参数获取子单元,用于根据所述绘制时长获取反映页面流畅度的参数。
11.如权利要求10所述的测试装置,其特征在于,所述参数获取子单元,用于:根据所述绘制时长获取图像帧的帧率,并根据所述帧率获取反映页面流畅度的参数。
12.如权利要求10所述的测试装置,其特征在于,所述参数获取子单元,用于:根据所述绘制时长和图像帧的标准绘制时长获取掉帧数,并将所述掉帧数作为反映页面流畅度的参数。
13.如权利要求9所述的测试装置,其特征在于,所述参数获取单元,包括:
时差获取子单元,用于获取目标图像帧的起始绘制时间、与起始图像帧的起始绘制时间之间的时间差;
参数获取子单元,用于当所述时间差大于或等于预设阈值时,根据当前已绘制图像帧的累积帧数,获取反映页面流畅度的第三参数;
更新子单元,用于根据目标图像帧更新所述起始图像帧,并触发所述注册单元确定当前待绘制的图像帧的步骤。
14.如权利要求13所述的测试装置,其特征在于,所述参数获取子单元,用于:
根据所述累积帧数获取图像帧的帧率,并将所述帧率作为反映页面流畅度的第一参数;
根据所述帧率和图像帧的标准绘制时长获取掉帧数,并将所述掉帧数作为反映页面流畅度的第二参数。
15.如权利要求9-14任一项所述的测试装置,其特征在于,还包括:
确定单元,用于在参数获取单元获取反映页面流畅度的参数之后,确定所述页面数据中的所有图像帧是否绘制完毕,若否,则触发所述注册单元执行确定当前待绘制的目标图像帧的步骤。
16.一种终端,其特征在于,包括存储器和处理器,所述存储器中储存有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行以下如权利要求1至8任一项所述方法中的步骤。
17.一种计算机可读存储介质,其存储有计算机程序,其中,当所述计算机程序在计算机上运行时,使得所述计算机执行如权利要求1至8任一项所述方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611247434.7A CN106802935B (zh) | 2016-12-29 | 2016-12-29 | 一种页面流畅度的测试方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611247434.7A CN106802935B (zh) | 2016-12-29 | 2016-12-29 | 一种页面流畅度的测试方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106802935A CN106802935A (zh) | 2017-06-06 |
CN106802935B true CN106802935B (zh) | 2020-08-04 |
Family
ID=58985162
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611247434.7A Active CN106802935B (zh) | 2016-12-29 | 2016-12-29 | 一种页面流畅度的测试方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106802935B (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107295082A (zh) * | 2017-06-21 | 2017-10-24 | 北京奇虎科技有限公司 | 软件运行处理方法、装置及系统 |
CN107688517B (zh) * | 2017-08-30 | 2021-01-22 | 广州视源电子科技股份有限公司 | Wpf程序卡顿检测方法和装置 |
CN107656866B (zh) * | 2017-09-06 | 2020-11-27 | 厦门美图移动科技有限公司 | 一种测试应用流畅度的方法、移动终端和计算设备 |
CN107797904B (zh) * | 2017-09-12 | 2021-12-24 | 福建天晴数码有限公司 | 一种测量响应时间的方法及终端 |
CN107678934A (zh) * | 2017-10-13 | 2018-02-09 | 北京小米移动软件有限公司 | 卡顿指标获取方法及装置 |
CN107864378A (zh) * | 2017-11-10 | 2018-03-30 | 维沃移动通信有限公司 | 一种帧率检测方法、装置、移动终端及服务器 |
CN108089935B (zh) * | 2017-11-29 | 2021-04-09 | 维沃移动通信有限公司 | 一种应用程序的管理方法及移动终端 |
CN108073485A (zh) * | 2017-12-22 | 2018-05-25 | 珠海市君天电子科技有限公司 | 终端屏幕流畅度测试方法、装置及设备 |
CN108664377B (zh) * | 2018-05-02 | 2022-02-01 | 腾讯音乐娱乐科技(深圳)有限公司 | 一种用户界面的卡顿确定方法、装置及存储介质 |
CN109144858B (zh) * | 2018-08-02 | 2022-02-25 | 腾讯科技(北京)有限公司 | 流畅度检测方法、装置、计算设备及存储介质 |
CN109522208B (zh) * | 2018-09-29 | 2022-09-02 | 中国平安人寿保险股份有限公司 | 页面流畅度测试方法及装置、计算机装置及存储介质 |
CN109753262B (zh) * | 2019-01-04 | 2022-06-28 | Oppo广东移动通信有限公司 | 帧显示处理方法、装置、终端设备及存储介质 |
CN109885501A (zh) * | 2019-03-05 | 2019-06-14 | 百度在线网络技术(北京)有限公司 | 用于测试应用的流畅度的方法和装置 |
CN110162451B (zh) * | 2019-04-22 | 2022-03-25 | 腾讯科技(深圳)有限公司 | 一种性能分析方法、装置、服务器及存储介质 |
CN110806909A (zh) * | 2019-11-01 | 2020-02-18 | 北京金山安全软件有限公司 | 一种应用程序页面掉帧信息确定方法、装置及电子设备 |
CN111444086A (zh) * | 2020-02-29 | 2020-07-24 | 上海大犀角信息科技有限公司 | 一种终端应用流畅度估计方法和系统 |
CN112306892B (zh) * | 2020-11-26 | 2022-04-12 | 深圳市房多多网络科技有限公司 | 一种页面响应时长的测试方法以及相关设备 |
CN113672468A (zh) * | 2021-08-24 | 2021-11-19 | 北京字节跳动网络技术有限公司 | 一种负载监控方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103559130A (zh) * | 2013-11-01 | 2014-02-05 | 百度在线网络技术(北京)有限公司 | 浏览器流畅度的测试方法和装置 |
CN104063286A (zh) * | 2013-03-22 | 2014-09-24 | 腾讯科技(深圳)有限公司 | 显示内容变化的流畅度测试方法及装置 |
CN104850388A (zh) * | 2014-02-13 | 2015-08-19 | 腾讯科技(深圳)有限公司 | 网页绘制方法及装置 |
CN105100784A (zh) * | 2014-04-21 | 2015-11-25 | 展讯通信(上海)有限公司 | 流畅度的测试方法及装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7664717B2 (en) * | 2006-06-09 | 2010-02-16 | Scientific Learning Corporation | Method and apparatus for building skills in accurate text comprehension and use of comprehension strategies |
CN102361484B (zh) * | 2011-07-05 | 2012-11-28 | 上海交通大学 | 被动网络性能测量系统及其页面识别方法 |
WO2014039828A2 (en) * | 2012-09-06 | 2014-03-13 | Simmons Aaron M | A method and system for reading fluency training |
CN103136102B (zh) * | 2013-02-07 | 2018-06-12 | 百度在线网络技术(北京)有限公司 | 一种Android平台的流畅度测试方法和装置 |
CN103455547B (zh) * | 2013-07-05 | 2017-03-01 | 百度在线网络技术(北京)有限公司 | 一种用于网页加载的方法及装置 |
CN104424092B (zh) * | 2013-08-22 | 2018-01-09 | 腾讯科技(深圳)有限公司 | 页面加载时长测试方法及装置 |
CN104731703B (zh) * | 2013-12-23 | 2018-03-30 | 腾讯科技(深圳)有限公司 | 基于页面操作的刷新测试方法和装置 |
CN104468698A (zh) * | 2014-10-11 | 2015-03-25 | 杭州盈高科技有限公司 | 一种跨浏览器的网页通信系统及方法 |
CN105653456B (zh) * | 2015-12-31 | 2018-09-11 | 网易(杭州)网络有限公司 | 应用程序性能测试方法、装置和系统 |
-
2016
- 2016-12-29 CN CN201611247434.7A patent/CN106802935B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104063286A (zh) * | 2013-03-22 | 2014-09-24 | 腾讯科技(深圳)有限公司 | 显示内容变化的流畅度测试方法及装置 |
CN103559130A (zh) * | 2013-11-01 | 2014-02-05 | 百度在线网络技术(北京)有限公司 | 浏览器流畅度的测试方法和装置 |
CN104850388A (zh) * | 2014-02-13 | 2015-08-19 | 腾讯科技(深圳)有限公司 | 网页绘制方法及装置 |
CN105100784A (zh) * | 2014-04-21 | 2015-11-25 | 展讯通信(上海)有限公司 | 流畅度的测试方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106802935A (zh) | 2017-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106802935B (zh) | 一种页面流畅度的测试方法和装置 | |
CN104461903B (zh) | 基于浏览器的测试客户端的方法和装置 | |
CN106528389B (zh) | 系统流畅性的性能评测方法、装置及终端 | |
CN104866409A (zh) | 内存泄露监控方法和装置 | |
CN104834597B (zh) | 应用响应时长的测量方法和系统 | |
CN111858318B (zh) | 一种响应时间的测试方法、装置、设备和计算机存储介质 | |
CN110320378B (zh) | 质控测试申请方法、装置、设备及计算机可读存储介质 | |
CN112445757A (zh) | 可视化日志存储和回溯方法、装置和计算机设备 | |
CN109976966A (zh) | 一种应用程序启动时间统计方法、装置及系统 | |
CN112416775B (zh) | 基于人工智能的软件自动化测试方法、装置及电子设备 | |
CN105988925A (zh) | 一种应用程序启动耗时的测试方法、装置及系统 | |
CN112530205A (zh) | 机场停机坪飞机状态检测方法及装置 | |
CN105446854A (zh) | 功耗检测方法、系统及终端 | |
CN104932970A (zh) | 内存泄露监控方法和装置 | |
CN114757229A (zh) | 信号处理方法、装置、电子设备及介质 | |
CN112994980B (zh) | 时延测试方法、装置、电子设备和存储介质 | |
CN113610136A (zh) | 传感器数据同步方法、装置、计算机设备和存储介质 | |
CN112685269A (zh) | 数据的获取方法、装置、电子设备及存储介质 | |
CN109962983B (zh) | 一种点击率统计方法及装置 | |
CN114510305B (zh) | 模型训练方法、装置、存储介质及电子设备 | |
CN106302821B (zh) | 一种数据请求方法及其设备 | |
EP3379431A1 (en) | Electronic device and method for capturing contents | |
CN112306892B (zh) | 一种页面响应时长的测试方法以及相关设备 | |
CN114116480A (zh) | 应用程序测试覆盖率的确定方法、装置、介质及设备 | |
CN109065145B (zh) | 心电数据处理方法、装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |