用于测试应用的响应速度的方法和设备的制作方法

xiaoxiao2020-7-22  7

用于测试应用的响应速度的方法和设备的制作方法
【专利摘要】提供一种用于测试应用的响应速度的方法和设备。所述方法包括:记录开始运行被测应用的时刻作为测试开始时间点;从移动终端的屏幕的帧缓冲区中读取屏幕上的测试像素点的像素值;记录测试像素点的像素值均达到测试像素点的目标像素值的时刻作为测试结束时间点;计算测试结束时间点与测试开始时间点之间的时间差作为被测应用的响应时间。所述方法和设备能够快速测试应用的响应速度,且精确性高、通用性强、成本低。
【专利说明】用于测试应用的响应速度的方法和设备
【技术领域】
[0001]本发明涉及一种应用性能测试技术,具体地说,涉及一种用于测试应用的响应速度的方法和设备。
【背景技术】
[0002]随着移动互联网络的发展,各种移动客户端产品越来越关注产品性能的提高。其中,响应速度作为一项重要的性能指标,极大的影响着用户的体验,例如,应用的启动时间、浏览器加载网页的展现时间、输入法面板调起的时间等。快速的产品响应速度给用户带来顺畅、良好的用户体验。
[0003]目前业界还没有测量移动客户端应用响应速度的标准测试方案,市面上也没有成型的移动客户端应用响应速度测试方案,因此,对移动客户端产品响应速度的测试方案制定势在必行。以网页加载首屏展现时间为例,现有的移动客户端产品响应速度的测试方案包括:(I)在浏览器代码中加入log以计算从开始请求网页资源到页面开始渲染的时间段,即,在收到用户点击时间处记录初始时间,在内核下载、解析结束后,网页开始渲染前记录终止时间,所得时间差即为首屏展现时间;(2)查看秒表,即,从浏览器地址栏输入网址点击加载按钮开始计时,到首页开始有内容展现出来终止计时,所得时间即为首屏展现时间;
[3]采用高速摄像机,即,对浏览器加载网页全过程进行拍摄,然后慢速回放录像,找到从点击输入开始到页面有内容展现出来为止的时间段。
[0004]然而,上述现有的移动客户端产品响应速度的测试方案存在各自的缺点:(I)在浏览器代码中加入log来计算响应速度的方式固然精确,但是只能测量自己产品的响应速度性能,不能获得竞品浏览器的网页首屏展现时间性能,无法与竞品进行对比评测,因此无法评测产品性能的好坏;(2)人工查看秒表的方式是不准确的,误差大,例如,对于移动wifi网络条件下,大部分手机的完全加载时间很短,其首屏展现时间更是短于人眼的反应时间,此外,由于误差较大,需要增大测试样本与测试次数,测试人力成本较高;(3)采用高速摄像机测量响应速度的方式具有精度高的特点,但是高速摄像机价格非常昂贵,成本太高以至于难以实现。
[0005]因此,需要一种精确性高、通用性强、成本低并且速度快的应用响应速度测试方法和设备。

【发明内容】

[0006]提供本发明的目的在于至少解决上述问题和/或缺点,并至少提供下述优点。本发明提供了一种用于测试应用的响应速度的方法和设备,所述方法和设备通过从移动终端的帧缓冲区读取测试像素点的像素值,来计算从被测应用开始运行到测试像素点的像素值达到目标像素值的时间,从而得到被测应用的响应速度。
[0007]根据本发明的一方面,提供了一种用于测试应用的响应速度的方法,所述方法包括:记录开始运行被测应用的时刻作为测试开始时间点;从移动终端的屏幕的帧缓冲区中读取屏幕上的测试像素点的像素值;记录测试像素点的像素值均达到测试像素点的目标像素值的时刻作为测试结束时间点;计算测试结束时间点与测试开始时间点之间的时间差作为被测应用的响应时间。
[0008]所述方法还可包括:在测试开始之前,预先在加载被测应用的屏幕上选择预定数量的像素点作为测试像素点。
[0009]所述方法还可包括:将测试像素点在被测应用被加载完成后的屏幕上的像素值保存为测试像素点的目标像素值。
[0010]从移动终端的屏幕的帧缓冲区中读取屏幕上的测试像素点的像素值的步骤可包括:每隔预定时间间隔,从移动终端的屏幕的帧缓冲区中读取屏幕上的测试像素点的像素值。
[0011]记录测试像素点的像素值均达到测试像素点的目标像素值的时刻作为测试结束时间点的步骤可包括:在读取到测试像素点的像素值之后,将读取到的测试像素点的像素值分别与测试像素点的目标像素值进行比较;如果测试像素点的像素值没有都达到测试像素点的目标像素值,则继续执行对下一时间间隔读取到的测试像素点的像素值与测试像素点的目标像素值的比较;如果测试像素点的像素值均达到测试像素点的目标像素值,则记录当前时刻作为测试结束时间点。
[0012]根据本发明的另一方面,提供了一种用于测试应用的响应速度的设备,所述设备包括:第一时间记录单元,记录开始运行被测应用的时刻作为测试开始时间点;像素值读取单元,从移动终端的屏幕的帧缓冲区中读取屏幕上的测试像素点的像素值;第二时间记录单元,记录测试像素点的像素值均达到测试像素点的目标像素值的时刻作为测试结束时间点;响应时间计算单元,计算测试结束时间点与测试开始时间点之间的时间差作为被测应用的响应时间。
[0013]所述设备还可包括:像素点选取单元,在测试开始之前,预先在加载被测应用的屏幕上根据用户输入来选取预定数量的像素点作为测试像素点。
[0014]所述设备还可包括:像素值保存单元,将测试像素点在被测应用被加载完成后的屏幕上的像素值保存为测试像素点的目标像素值。
[0015]像素值读取单元可每隔预定时间间隔,从移动终端的屏幕的帧缓冲区中读取屏幕上的测试像素点的像素值。
[0016]在像素值读取单元读取到测试像素点的像素值之后,第二时间记录单元可将读取到的测试像素点的像素值分别与测试像素点的目标像素值进行比较,如果测试像素点的像素值没有都达到测试像素点的目标像素值,则第二时间记录单元可继续执行对下一时间间隔读取到的测试像素点的像素值与测试像素点的目标像素值的比较,如果测试像素点的像素值均达到测试像素点的目标像素值,则第二时间记录单元可记录当前时刻作为测试结束时间点。
[0017]根据本发明的方法和设备,能够支持不同被测软件和不同平台,能够测试竞品的响应速度,通用性强;可仅读取选取的测试像素点的像素值,开销仅仅是若干个整形数值,大大提高了测试速度;不需要增加精密设备就可将读取像素值的频率精确到几毫秒,从而在节省成本的同时使测试结果的误差小,精确度高;无需人工干预,也不受测试环境影响,可自动地完成测试流程,节省人力。【专利附图】

【附图说明】
[0018]通过结合附图,从实施例的下面描述中,本发明这些和/或其它方面及优点将会变得清楚,并且更易于理解,其中:
[0019]图1是示出根据本发明的示例性实施例的用于测试应用的响应速度的方法的流程图;
[0020]图2是示出根据本发明的示例性实施例的选择测试像素点的示例;
[0021]图3是示出根据本发明的示例性实施例的用于测试应用的响应速度的设备的框图。
【具体实施方式】
[0022]提供参照附图的以下描述以帮助对由权利要求及其等同物限定的本发明的实施例的全面理解。包括各种测试细节以帮助理解,但这些细节仅被视为是示例性的。因此,本领域的普通技术人员将认识到在不脱离本发明的范围和精神的情况下,可对描述于此的实施例进行各种改变和修改。此外,为了清楚和简洁,省略对公知的功能和结构的描述。
[0023]图1是示出根据本发明的示例性实施例的用于测试应用的响应速度的方法的流程图。
[0024]参照图1,在101,可记录开始运行被测应用的时刻作为测试开始时间点。根据本发明的示例性实施例,被测应用可以是浏览器应用,并可记录开始运行浏览器应用(例如,单击浏览器应用)的时刻,作为测试开始时间点。
[0025]在102,可从移动终端的屏幕的帧缓冲区(frmaebuffer)中读取屏幕上的测试像素点的像素值。这里,帧缓冲区是包括在移动终端内的包含完整帧数据的内存缓冲区,包括移动终端的屏幕上的每个像素的色彩值组成。如果移动终端具有root权限,则该移动终端可读取其帧缓冲区内的数据。
[0026]根据本发明的示例性实施例,可在测试开始之前,预先在加载被测应用的屏幕上选择预定数量的像素点作为测试像素点。这里,可根据测试需要,在被测应用被部分加载的屏幕上或者在被测应用被完全加载的屏幕上选择预定数量的像素点作为测试像素点。此夕卜,根据本发明的示例性实施例,在选择屏幕上的测试像素点时,可使用android sdk提供的pixel perfect工具准确地查看屏幕上的每个位置的像素点坐标,从而可更精确地选择屏幕上的测试像素点。随后,在完成选择测试像素点之后,将测试像素点在被测应用被加载完成后的屏幕上的像素值保存为测试像素点的目标像素值。
[0027]例如,图2是示出根据本发明的示例性实施例的选择测试像素点的示例。如图2所示,被测应用可以是浏览器应用,在测试开始之前,预先加载浏览器应用的首页(例如,新浪首页),可在浏览器应用首页加载完成之后的屏幕上选择若干个区域内的若干像素点(即,图2的箭头所指示的区域内的若干像素点)作为测试像素点,并将被选择的测试像素点在浏览器应用首页加载完成之后的屏幕上的像素值保存为被选择的测试像素点的目标像素值。本领域的技术人员容易理解,本发明的测试像素点的数量不限于上述示例,本发明的测试像素点的数量可根据测试需要由用户选择,测试像素点的数量越多,测试结果越精确。[0028]此外,根据本发明的示例性实施例,可每隔预定时间间隔,从移动终端的屏幕的帧缓冲区中读取屏幕上的测试像素点的像素值,从而可在被测应用开始运行之后获得测试像素点的实时像素值。本领域的技术人员容易理解,预定时间间隔可根据测试需要由用户选择,可达到十几毫秒甚至几毫秒,测试精确度很高,并且成本也很低。
[0029]在103,可记录测试像素点的像素值均达到测试像素点的目标像素值的时刻作为测试结束时间点。
[0030]具体地说,根据本发明的示例性实施例,由于每隔预定时间间隔可从移动终端的屏幕的帧缓冲区中读取到测试像素点的像素值,因此,在当前时间间隔读取到测试点的像素值之后,可将当前读取到的测试像素点的像素值分别与测试像素点的目标像素值进行比较,如果当前读取到的测试像素点的像素值没有都达到测试像素点的目标像素值,则继续执行对下一时间间隔读取到的测试像素点的像素值与测试像素点的目标像素值的比较,如果当前读取到的测试像素点的像素值均达到测试像素点的目标像素值,则记录当前时刻作为测试结束时间点。
[0031]本领域的技术人员容易理解,本发明的记录测试结束时间点的方法不限于上述实施例,还可使用其它任何可行的方法来记录测试结束时间点。
[0032]在104,可计算测试结束时间点与测试开始时间点之间的时间差作为被测应用的响应时间,从而能够得到测试应用的响应速度。
[0033]图3是示出根据本发明的示例性实施例的用于测试应用的响应速度的设备的框图。
[0034]参照图3,根据本发明的示例性实施例的用于测试应用的响应速度的设备300可包括第一时间记录单元301、像素值读取单元302、第二时间记录单元303和响应时间计算单元304。
[0035]第一时间记录单元301可记录开始运行被测应用的时刻作为测试开始时间点。根据本发明的示例性实施例,被测应用可以是浏览器应用,并且第一时间记录单元301可记录开始运行浏览器应用(例如,单击浏览器应用)的时刻,作为测试开始时间点。
[0036]像素值读取单元302可从移动终端的屏幕的帧缓冲区(frmaebuffer)中读取屏幕上的测试像素点的像素值。这里,帧缓冲区是包括在移动终端内的包含完整帧数据的内存缓冲区,包括移动终端的屏幕上的每个像素的色彩值组成。如果移动终端具有root权限,则该移动终端可读取其帧缓冲区内的数据。
[0037]根据本发明的示例性实施例,设备300还可包括像素点选取单元(未示出)。像素点选取单元可像素点选取单元可在测试开始之前,预先在加载被测应用的屏幕上选择预定数量的像素点作为测试像素点。这里,像素点选取单元可根据测试需要,在被测应用被部分加载的屏幕上或者在被测应用被完全加载的屏幕上选择预定数量的像素点作为测试像素点。此外,根据本发明的示例性实施例,像素点选取单元在选择屏幕上的测试像素点时,可使用android sdk提供的pixel perfect工具准确地查看屏幕上的每个位置的像素点坐标,从而可更精确地选择屏幕上的测试像素点。本领域的技术人员容易理解,本发明的测试像素点的数量不限于上述示例,本发明的测试像素点的数量可根据测试需要由用户通过像素点选取单元来选择,测试像素点的数量越多,测试结果越精确。
[0038]此外,设备300还可包括像素值保存单元(未示出)。在像素点选取单元完成选择测试像素点之后,像素值保存单元可将测试像素点在被测应用被加载完成后的屏幕上的像素值保存为测试像素点的目标像素值。
[0039]此外,根据本发明的示例性实施例,像素值读取单元302可每隔预定时间间隔,从移动终端的屏幕的帧缓冲区中读取屏幕上的测试像素点的像素值,从而可在被测应用开始运行之后获得测试像素点的实时像素值。本领域的技术人员容易理解,预定时间间隔可根据测试需要由用户选择,可达到十几毫秒甚至几毫秒,测试精确度很高,并且成本也很低。
[0040]第二时间记录单元303可记录测试像素点的像素值均达到测试像素点的目标像素值的时刻作为测试结束时间点。
[0041]具体地说,根据本发明的示例性实施例,由于像素值读取单元302每隔预定时间间隔可从移动终端的屏幕的帧缓冲区中读取到测试像素点的像素值,因此,像素值读取单元302在当前时间间隔读取到测试点的像素值之后,第二时间记录单元303可将当前读取到的测试像素点的像素值分别与测试像素点的目标像素值进行比较,如果当前读取到的测试像素点的像素值没有都达到测试像素点的目标像素值,则第二时间记录单元303继续执行对下一时间间隔读取到的测试像素点的像素值与测试像素点的目标像素值的比较,如果当前读取到的测试像素点的像素值均达到测试像素点的目标像素值,则第二时间记录单元303记录当前时刻作为测试结束时间点。
[0042]本领域的技术人员容易理解,本发明的记录测试结束时间点的方法不限于上述实施例,还可使用其它任何可行的方法来记录测试结束时间点。
[0043]响应时间计算单元304可计算由第二时间记录单元303记录的测试结束时间点与由第一时间记录单元301记录的测试开始时间点之间的时间差作为被测应用的响应时间,从而能够得到测试应用的响应速度。
[0044]本发明提供了一种用于测试应用的响应速度的方法和设备,所述方法和设备通过从移动终端的帧缓冲区读取测试像素点的像素值,来计算从被测应用开始运行到测试像素点的像素值达到目标像素值的时间,从而得到被测应用的响应速度。所述方法和设备可适用于各种应用测试场景,例如,测试手机浏览器的启动时间(即,从点击浏览器图标开始到浏览器首屏页面完全展现所用的时间)、测试手机浏览器二级link响应时间(即,从点击页面内link开始到网页有内容展现出来所用的时间)、输入法面板调起时间(从点击输入框开始到输入法面板完全展现所用的时间)等等。
[0045]所述方法和设备能够对不同被测软件和不同平台的支持,能够测试竞品的响应速度,通用性强。此外,所述方法和设备仅读取选取的测试像素点的像素值,开销仅仅是若干个整形数值,大大提高了测试速度。此外,所述方法和设备不需要增加精密设备就可将读取像素值的频率精确到几毫秒,从而在节省成本的同时使测试结果的误差小,精确度高。此夕卜,所述方法和设备无需人工干预,也不受测试环境影响,可自动地完成测试流程,节省人力。
[0046]可根据计算机程序指令来执行根据本发明的上述方法。由于这些程序指令可被包括在计算机、专用处理器或可编程或专用硬件中,因此在其中执行的指令可有利于上述的功能的执行。如本领域的技术人员所理解的,计算机、处理器或可编程硬件包括可存储或接收软件或计算机代码的存储器件,所述软件或计算机代码在被计算机、处理器或硬件访问和执行时实现在本发明中描述的方法。[0047]虽然本发明是参照其示例性的实施例被显示和描述的,但是本领域的技术人员应该理解,在不脱离由权利要求及其等同物限定的本发明的精神和范围的情况下,可以对其形式和细节进行各种改变。
【权利要求】
1.一种用于测试应用的响应速度的方法,所述方法包括: 记录开始运行被测应用的时刻作为测试开始时间点; 从移动终端的屏幕的帧缓冲区中读取屏幕上的测试像素点的像素值; 记录测试像素点的像素值均达到测试像素点的目标像素值的时刻作为测试结束时间占.计算测试结束时间点与测试开始时间点之间的时间差作为被测应用的响应时间。
2.如权利要求1所述的方法,还包括: 在测试开始之前,预先在加载被测应用的屏幕上选择预定数量的像素点作为测试像素点。
3.如权利要求2所述的方法,还包括: 将测试像素点在被测应用被加载完成后的屏幕上的像素值保存为测试像素点的目标像素值。
4.如权利要求1所述的方法,其中,从移动终端的屏幕的帧缓冲区中读取屏幕上的测试像素点的像素值的步骤包括: 每隔预定时间间隔,从移动终端的屏幕的帧缓冲区中读取屏幕上的测试像素点的像素值。
5.如权利要求4所述的方法,其中,记录测试像素点的像素值均达到测试像素点的目标像素值的时刻作为测试结束时间点的步骤包括: 在读取到测试像素点的像素值之后,将读取到的测试像素点的像素值分别与测试像素点的目标像素值进行比较; 如果测试像素点的像素值没有都达到测试像素点的目标像素值,则继续执行对下一时间间隔读取到的测试像素点的像素值与测试像素点的目标像素值的比较; 如果测试像素点的像素值均达到测试像素点的目标像素值,则记录当前时刻作为测试结束时间点。
6.一种用于测试应用的响应速度的设备,所述设备包括: 第一时间记录单元,记录开始运行被测应用的时刻作为测试开始时间点; 像素值读取单元,从移动终端的屏幕的帧缓冲区中读取屏幕上的测试像素点的像素值; 第二时间记录单元,记录测试像素点的像素值均达到测试像素点的目标像素值的时刻作为测试结束时间点; 响应时间计算单元,计算测试结束时间点与测试开始时间点之间的时间差作为被测应用的响应时间。
7.如权利要求6所述的设备,还包括: 像素点选取单元,在测试开始之前,预先在加载被测应用的屏幕上根据用户输入来选取预定数量的像素点作为测试像素点。
8.如权利要求7所述的设备,还包括: 像素值保存单元,将测试像素点在被测应用被加载完成后的屏幕上的像素值保存为测试像素点的目标像素值。
9.如权利要求6所述的设备,其中,像素值读取单元每隔预定时间间隔,从移动终端的屏幕的帧缓冲区中读取屏幕上的测试像素点的像素值。
10.如权利要求9所述的设备,其中,在像素值读取单元读取到测试像素点的像素值之后,第二时间记录单元将读取到的测试像素点的像素值分别与测试像素点的目标像素值进行比较,如果测试像素点的像素值没有都达到测试像素点的目标像素值,则第二时间记录单元继续执行对下一时间间隔读取到的测试像素点的像素值与测试像素点的目标像素值的比较,如果测试像素点的像素值均达到测试像素点的目标像素值,则第二时间记录单元记录当前时刻作为测试 结束时间点。
【文档编号】G06F11/36GK103955428SQ201410179195
【公开日】2014年7月30日 申请日期:2014年4月30日 优先权日:2014年4月30日
【发明者】张笑达, 徐志成 申请人:百度在线网络技术(北京)有限公司

最新回复(0)