本发明属于数据处理领域,尤其涉及一种页面开启耗时的测试方法及测试系统。
背景技术:
使用浏览器访问互联网,是计算机网络技术的基础应用之一。诸多第三方应用,如社交软件、直播软件、游戏软件等,都是基于浏览器提供的页面进行数据的请求和访问。因此,在第三方应用进行设计与开发时,对网页的响应性能进行测试,都是非常重要的环节。
传统的响应性能测试方案,常见如系统调试信息和录屏分帧。其中,系统调试信息,指系统会记录每个组件(activity)的打开时间,并通过调试(androiddebugbridge,adb)命令来获取该时间(thistime),比如输出thistime:882。录屏分帧,需要先录制页面打开过程的视频,然后再把视频按照一定时间间隔(假设时间间隔为t)分成一个一个的图片,再从分得的图片中,找出整个页面打开过程的图片数n,那么整个页面的打开耗时为n*(t-1)。
传统技术的缺点在于:系统调试信息,过于依赖于页面的实现方式,只能统计组件开启的页面,而无法统计通过网页视窗(webview)开启的页面,具有很大的局限性。录屏分帧,需要每次录制视屏再分帧,非常消耗系统资源,计算过程复杂,且统计效率低。
技术实现要素:
本发明实施例提供一种页面开启耗时的测试方法及测试系统,旨在提高测试效率,降低对系统资源的消耗,且不受页面实现方式的限制。
为解决上述技术问题,本发明实施例提供以下技术方案:
一种页面开启耗时的测试方法,包括:
根据页面测试指令,获取并缓存页面的初始像素数组,并获取初始像素数组对应的获取时间,以生成为第一时间戳;
每隔预设时间间隔后,获取并缓存页面的当前像素数组,直到所述当前像素数组与当前像素数组的前一像素数组中的像素值完全相同,并获取当前像素数组对应的获取时间,以生成第二时间戳;以及
通过第一时间戳和第二时间戳生成页面开启耗时。
为解决上述技术问题,本发明实施例还提供以下技术方案:
一种页面开启耗时的测试系统,包括:
初始模块,用于根据页面测试指令,获取并缓存页面的初始像素数组,并获取初始像素数组对应的获取时间,以生成为第一时间戳;
间隔模块,用于每隔预设时间间隔后,获取并缓存页面的当前像素数组,直到所述当前像素数组与当前像素数组的前一像素数组中的像素值完全相同,并获取当前像素数组对应的获取时间,以生成第二时间戳;以及
耗时模块,用于通过第一时间戳和第二时间戳生成页面开启耗时。
本发明实施例提供的页面开启耗时的测试方法及测试系统,基于帧缓冲区(framebuffer)技术,获取页面的像素数组从触发到稳定不变所需的时间,进而计算页面开启耗时,不仅操作简单,对系统资源的消耗低,且测试速度快,不受页面实现方式等因素的限制,具有良好的兼容性。
附图说明
下面结合附图,通过对本发明的具体实施方式详细描述,将使本发明的技术方案及其它有益效果显而易见。
图1是本发明实施例提供的页面开启耗时的测试方法的流程示意图;
图2是本发明实施例提供的页面开启耗时的测试方法的另一流程示意图;
图3是本发明实施例提供的像素数组的数据结构示意图;
图4是本发明实施例提供的页面开启耗时的测试系统的模块示意图;
图5是本发明实施例提供的页面开启耗时的测试系统的另一模块示意图;
图6是本发明实施例提供的页面开启耗时的测试方法及测试系统的硬件环境示意图。
具体实施方式
请参照图式,其中相同的组件符号代表相同的组件,本发明的原理是以实施在一适当的运算环境中来举例说明。以下的说明是基于所例示的本发明具体实施例,其不应被视为限制本发明未在此详述的其它具体实施例。
在以下的说明中,本发明的具体实施例将参考由一部或多部计算机所执行的步骤及符号来说明,除非另有述明。因此,这些步骤及操作将有数次提到由计算机执行,本文所指的计算机执行包括了由代表了以一结构化型式中的数据的电子信号的计算机处理单元的操作。此操作转换该数据或将其维持在该计算机的内存系统中的位置处,其可重新配置或另外以本领域技术人员所熟知的方式来改变该计算机的运作。该数据所维持的数据结构为该内存的实体位置,其具有由该数据格式所定义的特定特性。但是,本发明原理以上述文字来说明,其并不代表为一种限制,本领域技术人员将可了解到以下所述的多种步骤及操作亦可实施在硬件当中。
本文所使用的术语「模块」、「单元」可看做为在该运算系统上执行的软件对象。本文所述的不同组件、模块、引擎及服务可看做为在该运算系统上的实施对象。而本文所述的装置及方法优选的以软件的方式进行实施,当然也可在硬件上进行实施,均在本发明保护范围之内。
请参阅图1,图1是本发明实施例提供的页面开启耗时的测试方法的流程示意图。所述测试方法可应用各类操作系统的页面,如linux系统、安卓系统、或苹果系统。
所述页面开启耗时的测试方法,包括如下步骤:
在步骤s101中,根据页面测试指令,获取并缓存页面的初始像素数组,并获取初始像素数组对应的获取时间,以生成为第一时间戳。
具体而言,本步骤根据页面测试指令,从帧缓冲区(framebuffer)中读取初始像素数组。
所述帧缓冲区,用于缓存完整的帧数据,以便视频输出设备对视频显示设备进行驱动。以linux系统为例,帧缓冲区被默认在/dev/graphics/fb0路径下。所述帧数据,是每一静止画面的像素点的数据,以数组形式进行展现。
可以理解的是,所述第一时间戳(timestamp)t1,即为测试开始的时间。
在步骤s102中,每隔预设时间间隔后,获取并缓存页面的当前像素数组,直到所述当前像素数组与当前像素数组的前一像素数组中的像素值完全相同,并获取当前像素数组对应的获取时间,以生成第二时间戳。
具体而言,本步骤可执行为:
(1)在预设时间间隔后,获取并缓存页面的当前像素数组。
其中,所述时间间隔的设置,取决于显示屏幕的刷新频率。以目前手机常用的刷新频率为每秒60次为例,即,每帧的间隔为16.7毫秒。在本步骤中,可将时间间隔设置为16.7毫秒,既可以保障每次屏幕的变化,又不会因为更新频率太高而消耗系统资源。
(2)对比所述当前像素数组与当前像素数组的前一像素数组中的像素值完全相同。
可以理解的是,如果显示屏幕变化,则帧缓冲区中的帧数据必然会发生变化;相反,如果显示屏幕没有变化,那么帧缓冲区中的帧数据也是不变的。因此,在本步骤中,通过对比当前缓存的像素数组是否与之前缓存的像素数组发生变化,来确定网页是否完全打开。
其中,当完全相同时执行步骤(3),当不完全相同时执行步骤(4)。
(3)获取当前像素数组对应的获取时间,以生成第二时间戳。
可以理解的是,在当前像素数组与其前一像素数组中的像素值全部相同时,表示网页已全部打开,则记录当前的时间作为第二时间戳t2。
(4)将所述当前像素数组更新为前一像素数组,并返回执行步骤(2),直至生成第二时间戳。
举例而言,比如:获取初始像素数组,并生成第一时间戳t1;在第一个时间间隔内获取第二像素数组,对比结果为第二像素数组与初始像素数组不同;在第二个时间间隔内获取第三像素数组,对比结果为第三像素数组与第二像素数组相同,则根据获取第三像素数组的时间生成第二时间戳t2。
在步骤s103中,通过第一时间戳和第二时间戳生成页面开启耗时。
具体而言,页面开启耗时(t)=第二时间戳(t2)-第一时间戳(t1)。
可以理解的是,每隔预设时间间隔t0,才读取一次像素数组。因此计算的页面开启耗时与实际的页面开启耗时相比,会存在一定的计算误差。但计算误差会被控制在预设时间间隔之内。但由于时间间隔通常会非常小,比如10-20毫秒,因此可被忽略不计。
本发明实施例提供的页面开启耗时的测试方法,基于帧缓冲区技术,获取页面的像素数组从测试触发到稳定不变所需的时间,进而计算页面开启耗时,不仅操作简单,对系统资源的消耗低,且测试速度快,不受页面实现方式等因素的限制,具有良好的兼容性。
请参阅图2,图2是本发明实施例提供的页面开启耗时的测试方法的另一流程示意图。所述测试方法可应用各类操作系统的页面,如linux系统、安卓系统、或苹果系统。
所述页面开启耗时的测试方法,包括如下步骤:
在步骤s201中,根据页面测试指令,从帧缓冲区获取并缓存页面的初始像素数组。
具体而言,本步骤包括:
(1)接收页面测试指令。
(2)响应所述页面测试指令,以获取显示屏幕的分辨率、和刷新频率。
其中,所述分辨率包括水平像素数和垂直像素数,所述分辨率用于确定初始像素数组的数据格式。可以理解的是,首先,可以所述根据分辨率确定页面的像素个数,通常是分辨率与像素个数为1:1的关系;并进一步确定像素数组的格式。
请参阅图3,所示为像素数组的数据结构示意图。其中,帧缓冲区32的帧数据与手机31的显示屏幕上的像素值的一一对应。以分辨率为480*800的手机31来说,帧缓冲区32就是一个480*800的数组。其中,像素值是用32位的整数表示。
其中,所述刷新频率用于决定时间间隔,即根据所述刷新频率计算时间间隔,并将所述时间间隔作为预设时间间隔。比如,目前手机常用的刷新频率为每秒60次。可将公式设置为:时间间隔=1/刷新频率,则计算时间间隔后,约为16.7毫秒。如此既可以保障每次屏幕的变化,又不会因为更新频率太高而消耗系统资源。
(3)按照所述数据格式,从帧缓冲区获取并缓存页面的初始像素数组。
所述帧缓冲区,用于缓存完整的帧数据,以便视频输出设备对视频显示设备进行驱动。以linux系统为例,帧缓冲区被默认在/dev/graphics/fb0路径下。所述帧数据,是每一静止画面的像素点的数据,以数组形式进行展现。
在步骤s202中,获取初始像素数组对应的获取时间,以生成为第一时间戳。
可以理解的是,所述第一时间戳t1,即为测试开始的时间。
在步骤s203中,在预设时间间隔后,获取并缓存页面的当前像素数组。
在步骤s204中,对比所述当前像素数组与当前像素数组的前一像素数组中的像素值完全相同。
可以理解的是,如果显示屏幕变化,则帧缓冲区中的帧数据必然会发生变化;相反,如果显示屏幕没有变化,那么帧缓冲区中的帧数据也是不变的。因此,在本步骤中,通过对比当前缓存的像素数组是否与之前缓存的像素数组发生变化,来确定网页是否完全打开。
当完全相同时,执行步骤s205;当不完全相同时,执行步骤s206。
在步骤s205中,获取当前像素数组对应的获取时间,以生成第二时间戳。
可以理解的是,当初始像素数组与第二像素数组中的像素值全部相同时,表示网页已打开,记录当前的时间作为第二时间戳t2。
在步骤s206中,将所述当前像素数组更新为前一像素数组,并返回步骤s203,直至生成第二时间戳。
举例而言,比如:获取初始像素数组,并生成第一时间戳t1;在第一个时间间隔内获取第二像素数组,对比第二像素数组与初始像素数组中的像素值,对比结果为全部或部分不同;在第二个时间间隔内继续获取第三像素数组,对比第三像素数组与第二像素数组中的像素值,对比结果为全部相同,则将获取第三像素数组的时间,作为第二时间戳t2。
在步骤s207中,通过第一时间戳、第二时间戳、和时间间隔,生成页面开启耗时。
具体而言,本步骤包括:
(1)计算所述第二时间戳(t2)和所述第一时间戳(t1)的差值,得到所述页面开启耗时(t),即t=t2-t1。
(2)标注计算误差,所述计算误差在所述预设时间间隔t0之内。
可以理解的是,每隔预设时间间隔t0,才读取一次像素数组。因此计算的页面开启耗时与实际的页面开启耗时相比,会存在一定的计算误差。但计算误差会被控制在预设时间间隔之内。但由于时间间隔通常会非常小,比如10-20毫秒,因此可被忽略不计。
在步骤s208中,判断所述页面开启耗时是否小于标准耗时。
可以理解的是,用户对于不同类型的应用,其可接受的等待时间不同,因此,标准耗时会因应用类型的不同而有所差异。比如,以社交类第三方应用为例,经过测试得知,用户的可接受的等待时间为1分钟,则将标准耗时设置为1分钟。
其中,若所述页面开启耗时小于所述标准耗时,则执行步骤s209;若所述页面开启耗时不小于所述标准耗时,则执行步骤s210。
在步骤s209中,输出测试通过。
在步骤s210中,输出测试失败。
可以理解的是,无论是新应用上线之前、还是应用的更新版本上线之前,都会对其页面开启耗时进行测试。当测试失败后,测试人员会进一步对页面所加载的内容进行分析,直至通过响应性能测试为止。
本发明实施例提供的页面开启耗时的测试方法,基于帧缓冲区技术,获取页面的像素数组从测试触发到稳定不变所需的时间,进而计算页面开启耗时,不仅操作简单,对系统资源的消耗低,且测试速度快,不受页面实现方式等因素的限制,具有良好的兼容性。
请参阅图4,图4是本发明实施例提供的页面开启耗时的测试系统的模块示意图。所述测试系统可应用各类操作系统的页面,如linux系统、安卓系统、或苹果系统。
所述页面开启耗时的测试系统400,包括:存储器41和处理器42,用于分别存储和执行初始模块43、间隔模块44、和耗时模块45中的操作指令。
其中,所述初始模块43,用于根据页面测试指令,从帧缓冲区(framebuffer)410中获取并缓存页面的初始像素数组,并获取初始像素数组对应的获取时间,以生成为第一时间戳。
其中,所述帧缓冲区410属于存储器41,用于缓存完整的帧数据,以便视频输出设备对视频显示设备进行驱动。以linux系统为例,帧缓冲区被默认在/dev/graphics/fb0路径下。所述帧数据,是每一静止画面的像素点的数据,以数组形式进行展现。
可以理解的是,所述第一时间戳(timestamp)t1,即为测试的开始时间。
所述间隔模块44,连接于所述初始模块43,用于每隔预设时间间隔后,获取并缓存页面的当前像素数组,直到所述当前像素数组与当前像素数组的前一像素数组中的像素值完全相同,并获取当前像素数组对应的获取时间,以生成第二时间戳。
其中,所述间隔模块44,包括:存储单元441、对比单元442、循环单元443、和第二时间戳单元444。
具体而言,存储单元441,用于在预设时间间隔后,获取并缓存页面的当前像素数组。
其中,所述时间间隔的设置,取决于显示屏幕的刷新频率。以目前手机常用的刷新频率为每秒60次为例,即,每帧的间隔为16.7毫秒。在存储单元441中,可将时间间隔设置为16.7毫秒,既可以保障每次屏幕的变化,又不会因为更新频率太高而消耗系统资源。
对比单元442,连接于存储单元441,用于对比所述当前像素数组与当前像素数组的前一像素数组中的像素值完全相同。
可以理解的是,如果显示屏幕变化,则帧缓冲区中的帧数据必然会发生变化;相反,如果显示屏幕没有变化,那么帧缓冲区中的帧数据也是不变的。因此,在对比单元442中,通过对比当前缓存的像素数组是否与之前缓存的像素数组发生变化,来确定网页是否完全打开。
循环单元443,连接于对比单元442和存储单元441,用于当不完全相同时,将所述当前像素数组更新为前一像素数组,并通知所述存储模块在预设时间间隔后,获取并缓存页面的当前像素数组。
举例而言,比如:获取初始像素数组,并生成第一时间戳t1;在第一个时间间隔内获取第二像素数组,对比结果为第二像素数组与初始像素数组不同;在第二个时间间隔内获取第三像素数组,对比结果为第三像素数组与第二像素数组相同,则根据获取第三像素数组的时间生成第二时间戳t2。
第二时间戳单元444,连接于对比单元442,用于当完全相同时,获取当前像素数组对应的获取时间,以生成第二时间戳。
可以理解的是,在当前像素数组与其前一像素数组中的像素值全部相同时,表示网页已全部打开,则记录当前的时间作为第二时间戳t2。
所述耗时模块45,连接于所述初始模块43和所述间隔模块44,用于通过第一时间戳和第二时间戳生成页面开启耗时。
具体而言,页面开启耗时(t)=第二时间戳(t2)-第一时间戳(t1)。
可以理解的是,每隔预设时间间隔t0,才读取一次像素数组。因此计算的页面开启耗时与实际的页面开启耗时相比,会存在一定的计算误差。但计算误差会被控制在预设时间间隔之内。但由于时间间隔通常会非常小,比如10-20毫秒,因此可被忽略不计。
本发明实施例提供的页面开启耗时的测试系统,基于帧缓冲区技术,获取页面的像素数组从测试触发到稳定不变所需的时间,进而计算页面开启耗时,不仅操作简单,对系统资源的消耗低,且测试速度快,不受页面实现方式等因素的限制,具有良好的兼容性。
请参阅图5,图5是本发明实施例提供的页面开启耗时的测试系统的另一模块示意图。所述测试系统可应用各类操作系统的页面,如linux系统、安卓系统、或苹果系统。
所述页面开启耗时的测试系统500,包括:存储器51和处理器52,用于分别存储和执行初始模块53、设置模块54、间隔模块55、耗时模块56、和测试模块57中的操作指令。
所述初始模块53,根据页面测试指令,从帧缓冲区510获取并缓存页面的初始像素数组。
其中,所述初始模块53包括:指令接收单元531、分辨率单元532、数据格式单元533、和第一时间戳单元534。
具体而言,指令接收单元531,用于接收页面测试指令。
分辨率单元532,连接于指令接收单元531,用于响应所述页面测试指令,以获取显示屏幕的分辨率,所述分辨率包括水平像素数和垂直像素数,所述分辨率用于确定初始像素数组的数据格式。可以理解的是,首先,可以所述根据分辨率确定页面的像素个数,通常是分辨率与像素个数为1:1的关系;并进一步确定像素数组的格式。
请参阅图3,所示为像素数组的数据结构示意图。其中,帧缓冲区32的帧数据与手机31的显示屏幕上的像素值的一一对应。以分辨率为480*800的手机31来说,帧缓冲区32就是一个480*800的数组。其中,像素值是用32位的整数表示。
数据格式单元533,连接于分辨率单元532,用于按照所述数据格式,获取并缓存页面的初始像素数组。
其中,所述帧缓冲区510,属于存储器51的一部分,用于缓存完整的帧数据,以便视频输出设备对视频显示设备进行驱动。以linux系统为例,帧缓冲区被默认在/dev/graphics/fb0路径下。所述帧数据,是每一静止画面的像素点的数据,以数组形式进行展现。
第一时间戳单元534,连接于数据格式单元533,用于获取所述初始像素数组对应的获取时间,以生成为第一时间戳。
可以理解的是,所述第一时间戳t1,即为测试开始的时间。
设置模块54,连接于初始模块53、和间隔模块55,用于设置时间间隔。
其中,所述设置模块54包括:刷新频率单元541和间隔设置单元542。
具体而言,所述刷新频率单元541,用于响应所述页面测试指令,获取显示屏幕的刷新频率。
所述间隔设置单元542,连接于所述刷新频率单元541,用于根据所述刷新频率计算时间间隔,并将所述时间间隔作为预设时间间隔。
其中,所述刷新频率用于决定时间间隔,即根据所述刷新频率计算时间间隔,并将所述时间间隔作为预设时间间隔。比如,目前手机常用的刷新频率为每秒60次。可将公式设置为:时间间隔=1/刷新频率,则计算时间间隔后,约为16.7毫秒。如此既可以保障每次屏幕的变化,又不会因为更新频率太高而消耗系统资源。
所述间隔模块55,连接于所述初始模块53和设置模块54,用于每隔预设时间间隔后,获取并缓存页面的当前像素数组,直到所述当前像素数组与当前像素数组的前一像素数组中的像素值完全相同,并获取当前像素数组对应的获取时间,以生成第二时间戳。
其中,所述间隔模块55包括:存储单元551、对比单元552、循环单元553、和第二时间戳单元554。
具体而言,存储单元551,用于在预设时间间隔后,获取并缓存页面的当前像素数组。
其中,所述时间间隔的设置,取决于显示屏幕的刷新频率。以目前手机常用的刷新频率为每秒60次为例,即,每帧的间隔为16.7毫秒。在存储单元551中,可将时间间隔设置为16.7毫秒,既可以保障每次屏幕的变化,又不会因为更新频率太高而消耗系统资源。
对比单元552,连接于存储单元551,用于对比所述当前像素数组与当前像素数组的前一像素数组中的像素值完全相同。
可以理解的是,如果显示屏幕变化,则帧缓冲区中的帧数据必然会发生变化;相反,如果显示屏幕没有变化,那么帧缓冲区中的帧数据也是不变的。因此,在对比单元552中,通过对比当前缓存的像素数组是否与之前缓存的像素数组发生变化,来确定网页是否完全打开。
循环单元553,连接于对比单元552和存储单元551,用于当不完全相同时,将所述当前像素数组更新为前一像素数组,并通知所述存储模块551在预设时间间隔后,继续获取并缓存页面的当前像素数组。
举例而言,比如:获取初始像素数组,并生成第一时间戳t1;在第一个时间间隔内获取第二像素数组,对比结果为第二像素数组与初始像素数组不同;在第二个时间间隔内获取第三像素数组,对比结果为第三像素数组与第二像素数组相同,则根据获取第三像素数组的时间生成第二时间戳t2。
第二时间戳单元554,连接于对比单元552,用于当完全相同时,获取当前像素数组对应的获取时间,以生成第二时间戳。
可以理解的是,在当前像素数组与其前一像素数组中的像素值全部相同时,表示网页已全部打开,则记录当前的时间作为第二时间戳t2。
耗时模块56,连接于初始模块53和间隔模块55,用于通过第一时间戳、第二时间戳、和时间间隔,生成页面开启耗时。
其中,所述耗时模块56包括:差值单元561、和误差单元562。
具体而言,差值单元561,用于计算所述第二时间戳(t2)和所述第一时间戳(t1)的差值,得到所述页面开启耗时(t),即t=t2-t1。
误差单元562,用于标注计算误差。其中,所述计算误差在所述预设时间间隔t0之内。
可以理解的是,每隔预设时间间隔t0,才读取一次像素数组。因此计算的页面开启耗时与实际的页面开启耗时相比,会存在一定的计算误差。但计算误差会被控制在预设时间间隔之内。但由于时间间隔通常会非常小,比如10-20毫秒,因此可被忽略不计。
测试模块57,连接于耗时模块56,用于判断所述页面开启耗时是否小于标准耗时,并输出测试结果。
其中,所述测试模块57包括:标准判断单元571、和结果输出单元572。
具体而言,标准判断单元571,用于判断所述页面开启耗时是否小于标准耗时。
可以理解的是,用户对于不同类型的应用,其可接受的等待时间不同,因此,标准耗时会因应用类型的不同而有所差异。比如,以社交类第三方应用为例,经过测试得知,用户的可接受的等待时间为1分钟,则将标准耗时设置为1分钟。
结果输出单元572,连接于标准判断单元571,用于当所述页面开启耗时小于所述标准耗时,输出测试通过;以及当所述页面开启耗时不小于所述标准耗时,输出测试失败。
可以理解的是,无论是新应用上线之前、还是应用的更新版本上线之前,都会对其页面开启耗时进行测试。当测试失败后,测试人员会进一步对页面所加载的内容进行分析,直至通过响应性能测试为止。
本发明实施例提供的页面开启耗时的测试系统,基于帧缓冲区技术,获取页面的像素数组从测试触发到稳定不变所需的时间,进而计算页面开启耗时,不仅操作简单,对系统资源的消耗低,且测试速度快,不受页面实现方式等因素的限制,具有良好的兼容性。
相应的,本发明实施例还提供一种终端设备,用于展示页面开启耗时的测试方法及测试系统的硬件环境示意图。如图6所示,所述终端设备用于执行图1-2中的页面开启耗时的测试方法、或运行图4-5中的页面开启耗时的测试系统。所述终端设备600包括:一个或者一个以上处理核心的处理器601、一个或一个以上计算机可读存储介质的存储器602、输入单元603、短距离无线传输(wifi)模块604、显示屏幕605、以及电源606等部件。
其中,存储器602用于进一步提供帧缓冲区。所述帧缓冲区,用于缓存帧数据,以便对显示屏幕605进行驱动。以linux系统为例,帧缓冲区被默认在/dev/graphics/fb0路径下。
本领域技术人员可以理解,上述结构并不构成对终端设备600的限定,可以包括比上述更多或更少的部件、组合某些部件、或不同的部件布置。其中:
具体在本实施例中,在终端设备600中,处理器601会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器602中,并由处理器601来运行存储在存储器602中的应用程序,从而实现各种功能,如下:根据页面测试指令,获取并缓存页面的初始像素数组,并获取初始像素数组对应的获取时间,以生成为第一时间戳;每隔预设时间间隔后,获取并缓存页面的当前像素数组,直到所述当前像素数组与当前像素数组的前一像素数组中的像素值完全相同,并获取当前像素数组对应的获取时间,以生成第二时间戳;通过第一时间戳和第二时间戳生成页面开启耗时。
优选的,所述处理器601还可以用于:接收页面测试指令;响应所述页面测试指令,以获取显示屏幕的分辨率,所述分辨率包括水平像素数和垂直像素数,所述分辨率用于确定初始像素数组的数据格式;按照所述数据格式,获取并缓存页面的初始像素数组;获取所述初始像素数组对应的获取时间,以生成为第一时间戳。
优选的,所述处理器601还可以用于:获取显示屏幕的刷新频率;根据所述刷新频率计算时间间隔,并将所述时间间隔作为预设时间间隔。
优选的,所述处理器601还可以用于:在预设时间间隔后,获取并缓存页面的当前像素数组;对比所述当前像素数组与当前像素数组的前一像素数组中的像素值完全相同;当不完全相同时,将所述当前像素数组更新为前一像素数组,并返回步骤在预设时间间隔后,获取并缓存页面的当前像素数组;当完全相同时,获取当前像素数组对应的获取时间,以生成第二时间戳。
优选的,所述处理器601还可以用于:计算所述第二时间戳和所述第一时间戳的差值,得到所述页面开启耗时,其中,耗时的计算误差在所述预设时间间隔之内。
优选的,所述处理器601还可以用于:判断所述页面开启耗时是否小于标准耗时;若所述页面开启耗时小于所述标准耗时,则测试通过;若所述页面开启耗时不小于所述标准耗时,则测试失败。
本发明实施例提供的终端设备,基于帧缓冲区技术,获取页面的像素数组从测试触发到稳定不变所需的时间,进而计算页面开启耗时,不仅操作简单,对系统资源的消耗低,且测试速度快,不受页面实现方式等因素的限制,具有良好的兼容性。
本发明实施例提供的所述终端设备,与上文实施例中的页面开启耗时的测试方法及测试系统属于同一构思。
需要说明的是,对本发明所述页面开启耗时的测试方法而言,本领域普通技术人员可以理解实现本发明实施例中的全部或部分流程,是可以通过计算机程序来控制相关的硬件来完成,所述计算机程序可存储于一计算机可读取存储介质中,如存储在终端设备的存储器中,并被该终端设备内的至少一个处理器执行,在执行过程中可包括如所述信息分享方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储器(rom,readonlymemory)、随机存取记忆体(ram,randomaccessmemory)等。
对本发明实施例的所述页面开启耗时的测试方法系统而言,其各功能模块可以集成在一个处理芯片中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中,所述存储介质譬如为只读存储器,磁盘或光盘等。
以上对本发明实施例所提供的一种页面开启耗时的测试方法、测试系统及终端设备进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。