一种采集应用性能数据的方法及装置与流程

文档序号:11918184阅读:199来源:国知局
本发明涉及终端
技术领域
:,具体而言,涉及一种采集应用性能数据的方法及装置。
背景技术
::目前,终端上都安装有浏览器,浏览器的性能指标主要有网速、启动速度和下载速度等。在对浏览器进行性能测试时,需要采集浏览器的性能数据,以根据采集的性能数据确定浏览器的性能指标。当前,浏览器客户端配置有自带的截屏软件,浏览器客户端通过该截屏软件不停地对当前显示的页面进行截屏,截取到的多副页面图像及每幅页面图像对应的截取时间即为采集的性能数据。分析采集的性能数据即可得到浏览器的性能指标。例如,若采集启动速度对应的性能数据,当浏览器客户端启动时,通过截屏软件不停地截取当前显示的页面,直到截取到浏览器客户端的主界面对应的页面图像时停止截屏,分析出从开始启动到截取到主界面对应的页面图像所用的时间段,该时间段即可表示浏览器客户端的启动速度。上述通过浏览器自带的截屏软件来采集性能数据,需要实时地截屏,占用大量的系统资源,截屏速度慢,误差很大且效率很低,而且受终端的系统版本及硬件性能影响很大。技术实现要素:有鉴于此,本发明实施例的目的在于提供一种采集应用性能数据的方法及装置,通过独立的采集设备中的摄像模块来采集待测终端中的待测应用的界面图像,避免了通过应用自带的截屏软件来采集性能数据。第一方面,本发明实施例提供了一种采集应用性能数据的方法,所述方法包括:通过摄像模块对启动了待测应用并执行了预设操作的待测终端进行拍摄,记录拍摄时间;根据拍摄得到的图像,获取所述待测应用对应的界面图像;根据所述待测应用的界面图像及所述拍摄时间生成所述待测应用的性能数据。结合第一方面,本发明实施例提供了上述第一方面的第一种可能的实现方式,其中,所述根据拍摄得到的图像,获取所述待测应用对应的界面图像,包括:根据拍摄得到的图像中每个像素点的灰度值或颜色值,从所述图像中确定出所述待测终端的屏幕边界;根据确定的所述屏幕边界,从所述图像中截取出所述待测终端的屏幕图像作为所述待测应用对应的界面图像。结合第一方面的第一种可能的实现方式,本发明实施例提供了上述第一方面的第二种可能的实现方式,其中,所述根据拍摄得到的图像中每个像素点的灰度值或颜色值,从所述图像中确定出所述待测终端的屏幕边界,包括:从拍摄得到的图像的四周边缘开始检测每个像素点的灰度值或颜色值;当检测到灰度值或颜色值首次满足预设突变条件时,将首次满足所述预设突变条件的像素点组成的轮廓确定为所述待测终端的边界;从所述待测终端的边界开始检测像素点的灰度值或颜色值;当检测到灰度值或颜色值再次满足所述预设突变条件时,将再次满足所述预设突变条件的像素点组成的轮廓确定为所述待测终端的屏幕边界。结合第一方面,本发明实施例提供了上述第一方面的第三种可能的实现方式,其中,所述获取所述待测应用对应的界面图像之前,还包括:通过所述摄像模块拍摄多幅所述待测终端的图像,根据多幅所述待测终端的图像中每个像素点的灰度值或颜色值,确定所述待测终端的屏幕边界;相应地,所述根据拍摄得到的图像,获取所述待测应用对应的界面图像,包括:根据确定的所述屏幕边界,从拍摄得到的图像中截取出所述待测终端的屏幕图像作为所述待测应用对应的界面图像。结合第一方面,本发明实施例提供了上述第一方面的第四种可能的实现方式,其中,所述根据所述待测应用的界面图像及所述拍摄时间生成所述待测应用的性能数据之前,还包括:从内存中获取已采集的性能数据中的图像,通过相似度对比算法分别计算所述待测应用的界面图像与获取的每个图像之间的相似度;判断所述每个图像中是否存在相似度高于预设阈值的图像,如果是,则丢弃所述待测应用的界面图像;如果所述每个图像中不存在相似度高于预设阈值的图像,则执行所述根据所述待测应用的界面图像及所述拍摄时间生成所述待测应用的性能数据的操作。结合第一方面,本发明实施例提供了上述第一方面的第五种可能的实现方式,其中,所述根据所述待测应用的界面图像及所述拍摄时间生成所述待测应用的性能数据之后,还包括:将所述性能数据存储在内存中;实时监测所述待测应用执行所述预设操作的过程,当监测到所述待测应用停止执行所述预设操作时,控制所述摄像模块停止对所述待测终端进行拍摄。结合第一方面的第五种可能的实现方式,本发明实施例提供了上述第一方面的第六种可能的实现方式,其中,所述控制所述摄像模块停止对所述待测终端进行拍摄之后,还包括:从内存中获取所述待测应用对应的性能数据,根据获取的性能数据包括的界面图像和拍摄时间,确定所述待测应用中所述预设操作对应的性能指标。结合第一方面,本发明实施例提供了上述第一方面的第七种可能的实现方式,其中,所述通过摄像模块对启动了待测应用并执行了预设操作的待测终端进行拍摄之前,还包括:通过开源计算机视觉库opencv驱动摄像模块,创建摄像任务线程。结合第一方面,本发明实施例提供了上述第一方面的第八种可能的实现方式,其中,所述通过摄像模块对启动了待测应用并执行了预设操作的待测终端进行拍摄之前,还包括:建立与所述待测终端之间的通信连接,通过所述通信连接发送控制指令给所述待测终端,控制所述待测终端中的待测应用执行预设操作。第二方面,本发明实施例提供了一种采集应用性能数据的装置,所述装置包括摄像模块、控制模块和性能分析模块;所述控制模块,用于控制所述摄像模块对启动了待测应用并执行了预设操作的待测终端进行拍摄,记录拍摄时间;所述性能分析模块,用于根据所述摄像模块拍摄得到的图像,获取所述待测应用对应的界面图像,根据所述待测应用的界面图像及所述拍摄时间生成所述待测应用的性能数据。结合第二方面,本发明实施例提供了上述第二方面的第一种可能的实现方式,其中,所述性能分析模块包括:确定单元,用于根据所述摄像模块拍摄得到的图像中每个像素点的灰度值或颜色值,从所述图像中确定出所述待测终端的屏幕边界;截取单元,用于根据所述确定单元确定的所述屏幕边界,从所述图像中截取出所述待测终端的屏幕图像作为所述待测应用对应的界面图像。结合第二方面的第一种可能的实现方式,本发明实施例提供了上述第二方面的第二种可能的实现方式,其中,所述确定单元包括:检测子单元,用于从所述摄像模块拍摄得到的图像的四周边缘开始检测每个像素点的灰度值或颜色值;确定子单元,用于当所述检测子单元检测到灰度值或颜色值首次满足预设突变条件时,将首次满足所述预设突变条件的像素点组成的轮廓确定为所述待测终端的边界;所述检测子单元,还用于从所述待测终端的边界开始检测像素点的灰度值或颜色值;所述确定子单元,还用于当所述检测子单元检测到灰度值或颜色值再次满足所述预设突变条件时,将再次满足所述预设突变条件的像素点组成的轮廓确定为所述待测终端的屏幕边界。结合第二方面,本发明实施例提供了上述第二方面的第三种可能的实现方式,其中,所述控制模块,还用于控制所述摄像模块拍摄多幅所述待测终端的图像;所述性能分析模块,还用于根据所述摄像模块拍摄的多幅所述待测终端的图像中每个像素点的灰度值或颜色值,确定所述待测终端的屏幕边界;根据确定的所述屏幕边界,从所述拍摄得到的图像中截取出所述待测终端的屏幕图像作为所述待测应用对应的界面图像。结合第二方面,本发明实施例提供了上述第二方面的第四种可能的实现方式,其中,所述性能分析模块还包括:相似度计算单元,用于从内存中获取已采集的性能数据中的图像,通过相似度对比算法分别计算所述待测应用的界面图像与获取的每个图像之间的相似度;判断单元,用于判断所述每个图像中是否存在相似度高于预设阈值的图像;丢弃单元,用于当所述判断单元判断出所述每个图像中存在相似度高于预设阈值的图像时,丢弃所述待测应用的界面图像;生成单元,用于当所述判断单元判断出所述每个图像中不存在相似度高于预设阈值的图像时,执行所述根据所述待测应用的界面图像及所述拍摄时间生成所述待测应用的性能数据的操作。结合第二方面,本发明实施例提供了上述第二方面的第五种可能的实现方式,其中,所述装置还包括:存储模块,用于将所述性能数据存储在内存中;所述控制模块,还用于实时监测所述待测应用执行所述预设操作的过程,当监测到所述待测应用停止执行所述预设操作时,控制所述摄像模块停止对所述待测终端进行拍摄。结合第二方面的第五种可能的实现方式,本发明实施例提供了上述第二方面的第六种可能的实现方式,其中,所述装置还包括:性能指标确定模块,用于从内存中获取所述待测应用对应的性能数据,根据获取的性能数据包括的界面图像和拍摄时间,确定所述待测应用中所述预设操作对应的性能指标。结合第二方面,本发明实施例提供了上述第二方面的第七种可能的实现方式,其中,所述控制模块,还用于通过开源计算机视觉库opencv驱动摄像模块,创建摄像任务线程。结合第二方面,本发明实施例提供了上述第二方面的第八种可能的实现方式,其中,所述控制模块,还用于建立与所述待测终端之间的通信连接,通过所述通信连接发送控制指令给所述待测终端,控制所述待测终端中的待测应用执行预设操作。在本发明实施例提供的方法及装置中,通过摄像模块对启动了待测应用并执行了预设操作的待测终端进行拍摄,记录拍摄时间;根据拍摄得到的图像,获取待测应用对应的界面图像;根据待测应用的界面图像及拍摄时间生成待测应用的性能数据。本发明的执行 主体为独立于待测终端之外的采集设备,通过独立的采集设备中的摄像模块来拍摄待测终端的图像,进而得到待测应用的界面图像,避免了通过待测终端中的应用自带的截屏软件来采集性能数据,在采集性能数据时不占用待测终端的系统资源,因此截屏速度快、误差小而效率高,且不会受待测终端的系统版本和硬件性能的影响。为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。附图说明为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。图1A示出了本发明实施例1所提供的一种采集设备的示意图;图1B示出了本发明实施例1所提供的一种采集应用性能数据的方法流程图;图1C示出了本发明实施例1所提供的摄像模块对手机进行拍摄得到的图像;图1D示出了本发明实施例1所提供的从拍摄的手机的图像中获取的浏览器的界面图像;图1E示出了本发明实施例1所提供的浏览器的性能数据的示意图;图2示出了本发明实施例2所提供的一种采集应用性能数据的装置结构示意图。具体实施方式下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。考虑到相关技术中通过终端中浏览器自带的截屏软件来采集性能数据,需要实时地截屏,占用大量的系统资源,截屏速度慢,误差很大且效率很低,而且受终端的系统版本及硬件性能影响很大。基于此,本发明实施例提供了一种采集应用性能数据的方法及装置。下面通过实施例进行描述。实施例1本发明实施例提供了一种采集应用性能数据的方法。该方法的执行主体为独立于待测终端之外的采集设备,该采集设备上配置有摄像模块,该摄像模块可以为摄像头等。本发明实施例通过独立于待测终端之外的采集设备来采集待测终端上的待测应用的性能数据,从而避免在采集性能数据的过程中占用待测终端的系统资源,以及避免性能数据的采集受待测终端的系统版本和硬件性能的影响。待测终端可以为手机、PAD(PortableAndroidDevice,平板电脑)或PC(PersonalComputer,个人计算机)等。待测应用可以为 安装在待测终端上的应用程序,如浏览器、视频播放器和社交应用等。待测应用的性能指标包括启动速度、网速和下载速度等。在通过采集设备的摄像模块来采集待测终端中的待测应用的性能数据之前,将待测终端放置在采集设备的摄像模块的拍摄区域内,且待测终端位于摄像模块的拍摄区域的中心位置,并将拍摄区域的拍摄焦点对准待测终端,保持待测终端的屏幕与摄像模块的拍摄镜头平行,摄像模块与待测终端之间的位置关系如图1A采集设备的示意图中所示。本发明实施例通过opencv(opensourcecomputervisionlibrary,开源计算机视觉库)驱动摄像模块,创建摄像任务线程,后续摄像模块通过该摄像任务线程来拍摄图像。在采集待测应用的不同性能指标对应的性能数据之前,待测应用需要先执行待测指标对应的操作。例如,在采集浏览器的启动速度对应的性能数据之前,浏览器需要先执行启动操作;在采集浏览器的网速对应的性能数据之前,浏览器需要先执行访问网页的操作;在采集浏览器的下载速度对应的性能数据之前,浏览器需要先执行下载操作。在本发明实施例中,设置启动操作、访问网页的操作及下载操作等为预设操作。在通过采集设备中的摄像模块来采集待测终端中的待测应用的性能数据之前,用户可以通过手动触发待测应用执行预设操作,如用户点击待测终端中浏览器的图标,触发浏览器执行启动操作。采集设备可以与待测终端之间建立通信连接,通过该通信连接实时监测待测终端中的待测应用是否执行了预设操作,当监测到待测应用执行预设操作时,通过本发明实施例步骤101-103的操作来采集待测应用的性能数据。上述通过用户来触发待测应用执行预设操作的方式,由于需要人工干预,采集应用性能数据的自动化程度较低,所以本发明实施例提供了一种全自动的启动待测应用执行预设操作的方式,以提高采集应用性能数据的自动化程度。全自动的启动方式包括:采集设备建立与待测终端之间的通信连接,通过该通信连接发送控制指令给待测终端,控制待测终端中的待测应用执行预设操作。上述控制指令中包括待测应用的标识和用于指示预设操作的指示信息。待测应用的标识可以为待测应用的名称或编号等,用于指示预设操作的指示信息可以为在采集终端与待测终端中预先设置的指示符或事件指令。采集设备与待测终端之间的通信连接可以为蓝牙、红外或Wi-Fi(Wireless-Fidelity,无线保真)等无线连接,也可以为通过有线线缆或USB(UniversalSerialBus,通用串行总线)接口等建立的有线连接。待测终端接收到采集设备发送的控制指令后,根据控制指令携带的待测应用的标识和预设操作的指示信息,触发待测应用执行该指示信息指示的预设操作。待测终端还通过与采集设备之间的通信连接发送执行成功的指示信息给采集设备,采集设备接收到该执行成功的指示信息时确定待测终端中的待测应用开始执行预设操作。通过上述全自动的启动方式来启动待测终端执行预设操作,避免了采集性能数据过程中的人工干预,可以通过扩展采集设备包括的摄像模块的数量来同时采集多个待测终端中的待测应用的性能数据,实现性能数据的批量采集。而且应用的性能指标也会受安装该应用的终端的性能的影响,为了提高确定应用性能指标的准确性,需要检测同一应用在不同终端上的性能,通过上述扩展了多个摄像模块的采集设备,可以实现同时采集同一待测应用在多个不同待测 终端上的性能数据,从而提高确定该待测应用的性能指标的效率和准确性。当采集设备通过通信连接发送控制指令给待测终端时,或者当采集设备通过该通信连接接收到待测终端发送的执行成功的指示信息时,如图1B所示,通过步骤101-103的操作来采集待测应用的性能数据。步骤101:通过摄像模块对启动了待测应用并执行了预设操作的待测终端进行拍摄,记录拍摄时间。通过摄像模块对应的摄像任务线程对启动了待测应用并执行了预设操作的待测终端进行拍摄。拍摄得到的图像可以划分为背景部分和待测终端的图像部分,而待测终端的图像部分又可分为屏幕图像部分和待测终端的边框部分。其中,在确定待测应用的性能指标时,背景部分和待测终端的边框部分的参考价值不大,可以忽略,而屏幕图像部分的参考价值很大,因此为了缩减性能数据的数据量,以及提高性能数据的准确性,本发明实施例中在采集应用性能数据时主要采集屏幕图像部分。在本发明实施例中,以待测终端为手机及待测应用为浏览器为例进行说明,如图1C所示,对启动了浏览器的手机进行拍摄得到的图像中包括背景部分、手机边框部分和手机屏幕图像部分。步骤102:根据拍摄得到的图像,获取待测应用对应的界面图像。由于拍摄得到的图像中待测终端的屏幕图像部分在确定性能指标中的参考性很高,且在待测应用执行预设操作时,待测终端的屏幕上显示的界面即为待测应用对应的界面,所以在本发明实施例中 获取待测应用对的界面图像,即为从拍摄得到的图像中获取待测终端的屏幕图像。获取待测应用对应的界面图像的操作,具体包括:根据拍摄得到的图像中每个像素点的灰度值或颜色值,从图像中确定出待测终端的屏幕边界;根据确定的屏幕边界,从拍摄得到的图像中截取出待测终端的屏幕图像作为待测应用对应的界面图像。因为拍摄的图像中包括背景部分、待测终端的边框部分和屏幕图像部分,通常背景部分的颜色与待测终端的边框颜色不同,而待测终端的边框颜色与屏幕的颜色也不相同。所以在确定待测终端的屏幕边界时,可以根据拍摄的图像中的像素点的灰度值或颜色值来确定,具体包括:从拍摄得到的图像的四周边缘开始检测每个像素点的灰度值或颜色值;当检测到灰度值或颜色值首次满足预设突变条件时,将首次满足预设突变条件的像素点组成的轮廓确定为待测终端的边界;从待测终端的边界开始检测像素点的灰度值或颜色值;当检测到灰度值或颜色值再次满足预设突变条件时,将再次满足预设突变条件的像素点组成的轮廓确定为待测终端的屏幕边界。由于背景部分的颜色与待测终端的边框颜色不同,因此在背景部分与待测终端的边框颜色的临界位置,像素点的灰度值和颜色值会发生很大变化。而待测终端的边框颜色与屏幕的颜色不相同,则在待测终端的边框与屏幕的临界位置的像素点的灰度值和颜色值也会发生很大变化。而且由于待测终端的边框的颜色一般为单一颜色,如白色或黑色等,所以待测终端的边框图像包括的每个像素点的灰度值都相同,且颜色值也都相同。同样地,待测终端的屏幕的边缘 的颜色也一般为单一颜色,所以屏幕图像的边缘的每个像素点的灰度值也都相同,且颜色值也都相同。在本发明实施例中由于待测终端位于摄像模块的拍摄区域的中心位置,所以在拍摄得到的图像中待测终端的图像位于中间位置,因此在检测待测终端的边框及屏幕边界时可以从拍摄得到的图像的四周边缘开始检测,检测外侧一圈像素点的灰度值或颜色值,与这一圈相邻的内侧一圈像素点的灰度值或颜色值的差别。预设突变条件可以为内侧一圈像素点中有超过预设个数的像素点的灰度值与外侧一圈像素点的灰度值不同且该超过预设个数的像素点中每个像素点的灰度值近似相等。或者,预设突变条件可以为内侧一圈像素点中有超过预设个数的像素点的灰度值与外侧一圈像素点的颜色值不同且该超过预设个数的像素点中每个像素点的颜色值近似相等。上述确定待测终端的屏幕边界的方式是以背景部分与待测终端的边框的颜色不同为前提进行确定的,因为只有当背景部分与待测终端的边框的颜色不同时,摄像模块拍摄的图像中才会存在待测终端的边界和屏幕边界两个边界线。但是当背景部分与待测终端的边框的颜色相同或相近时很难检测出待测终端的边界,因此在本发明实施例中通过上述方式检测拍摄得到的图像中像素点的颜色值或灰度值,当检测出两次满足预设突变条件时,将第二次满足预设突变条件的像素点组成的轮廓作为待测终端的屏幕边界。而当只检测出一次满足预设突变条件时,将该次满足预设突变条件的像素点组成的轮廓作为待测终端的屏幕边界。在本发明实施例中,可以通过上述方式在获取待测应用对应的界面图像时来确定待测终端的屏幕边界,也可以在获取待测应用对应的界面图像之前,甚至在步骤101通过摄像模块对启动了待测应 用并执行了预设操作的待测终端进行拍摄之前,先确定待测终端的屏幕边界。具体地,通过摄像模块拍摄多幅待测终端的图像,根据多幅待测终端的图像中每个像素点的灰度值或颜色值,确定待测终端的屏幕边界。根据多幅待测终端的图像中每个像素点的灰度值或颜色值来确定的具体操作,也是根据预设突变条件来进行检测,在此不再赘述。另外通过多副待测终端的图像来确定屏幕边界可以提高确定的屏幕边界的准确性。确定的屏幕边界可以为屏幕的四条边的位置、屏幕的对角线的位置或屏幕的四个顶点的位置等。相应地,通过上述方式事先确定出待测终端的屏幕边界后,可以根据确定的屏幕边界,直接从拍摄得到的图像中截取出待测终端的屏幕图像作为待测应用对应的界面图像。如此在后续多次采集该待测终端上的不同待测应用的性能数据时,不必在每次获取待测应用的界面图像时都重复确定屏幕边界,提高了采集性能数据的效率。如图1C所示的拍摄的手机的图像,通过上述方式从该拍摄的手机的图像中获取的浏览器的界面图像如图1D所示。在本发明实施例中,对于不同的性能指标,获取的待测应用的界面图像包括的图像内容不同。例如,对于启动速度,获取的界面图像中包括待测应用从开始启动至完成启动过程中的界面图;对于网速,则获取的界面图像中包括从开始访问一网页至完全显示该网页过程中的页面图;对于下载速度,获取的界面图像中包括从开始下载文件至完成下载过程中的下载进度条的图像。获取到待测应用的界面图像之后,通过如下步骤103的操作来生成待测应用的性能数据。步骤103:根据待测应用的界面图像及拍摄时间生成待测应用的性能数据。由于启动速度、网速和下载速度等性能指标都与时间相关,如启动速度可以为待测应用从开始启动至完成启动所用的时间,下载速度与从开始下载文件至下载完成所用的时间及该文件的大小相关,网速与待测应用从开始访问一个网页至完全显示该网页所用的时间及该网页的大小相关。所以在本发明实施例中,生成待测应用的性能数据可以为将待测应用的界面图像及拍摄时间组成待测应用的性能数据。生成待测应用的性能数据之后,还将该待测应用的标识及该性能数据对应存储在内存中,以便于后续根据性能数据分析待测应用的性能指标。在本发明实施例中,可以直接将待测应用的界面图像及拍摄时间组成待测应用的性能数据。还可以对该界面图像进行重命名处理,将该界面图像的名称重命名为该拍摄时间,然后将重命名之后的界面图像作为该待测应用的性能数据。另外,还可以记录待测终端中的待测应用开始执行预设操作的时间作为启动时间,然后在生成性能数据时,计算拍摄时间与该启动时间的时间差,将该时间差和界面图像组成待测应用的性能数据,或者将该界面图像重命名为该时间差,再将重命名后的界面图像作为待测应用的性能数据。但是由于采集设备的摄像模块采集图像的频率很高,若摄像模块采用现有的普通摄像头,则一般每30毫秒就可以采集一幅图像,若摄像模块采用比普通摄像头更精密的摄像头,则采集图像的频率更高,因此采集的界面图像中很可能存在相同的图像,为了节省存储性能数据所需的内存空间,减少设备硬盘的读写次数,以及提高根据性能数据分析性能指标的效率,本发明实施例中,在根据采集 的待测应用的界面图像生成性能数据之前,还可以先对采集的界面图像进行去重处理。具体包括:从内存中获取已采集的性能数据中的图像,通过相似度对比算法分别计算待测应用的界面图像与获取的每个图像之间的相似度;判断每个图像中是否存在相似度高于预设阈值的图像,如果是,则丢弃待测应用的界面图像;如果每个图像中不存在相似度高于预设阈值的图像,则执行根据待测应用的界面图像及拍摄时间生成待测应用的性能数据的操作。在本发明实施例中,通过opencv2的相似度对比算法来获取待测应用的界面图像与内存中已采集的每个图像之间的相似度。如果该界面图像与内存中已采集的一幅图像之间的相似度大于预设阈值,则表明该界面图像与内存中的该幅图像为近似图像,则丢弃该界面图像,以避免内存中出现重复的图像。如果该界面图像与内存中的任一图像之间的相似度均小于或等于预设阈值,则表明内存中没有与该界面图像相似的图像,根据该界面图像及记录的拍摄时间生成待测应用的性能数据,然后将该待测应用的标识及该性能数据存储在内存中。如图1E所示,以待测终端为手机及待测应用为浏览器为例,采集手机上的浏览器的网速。采集的性能数据包括T1、preT2和T2,T1为名称是2831.jpg的界面图像,preT2为名称是3055.jpg的界面图像,T2为名称是3087.jpg的图像。其中,2831、3055和3087分别为T1、preT2和T2与启动时间之间的时间差,且时间单位为毫秒,T1所示为浏览器刚显示出用户可识别的内容,preT2则为浏览器的当前屏中充满内容之前的状态,T2为浏览器的当前屏中充满内容的状态。如图1E所示T2与preT2之间仅相隔32毫秒,从T2中 可以获知显示的图像的大小,根据图像的大小及显示这些图像所用的时间32毫秒,即可计算出浏览器的网速。通过上述步骤101-103的操作,在待测终端上的待测应用执行预设操作的过程中采集待测应用的界面图像,在此过程中还通过与待测终端之间的通信连接实时监测待测应用执行预设操作的过程,当监测到待测应用停止执行预设操作时,控制摄像模块停止对待测终端进行拍摄。至此完成了对待测应用执行该预设操作过程中的性能数据的采集。完成性能数据的采集之后,还从内存中获取待测应用对应的性能数据,根据获取的性能数据包括的界面图像和拍摄时间,确定待测应用中预设操作对应的性能指标。由于本发明实施例通过独立于待测终端以外的采集设备来采集性能数据,不占用待测终端的系统资源,所以本发明实施例的应用场景非常广泛。本发明实施例还可以采集待测终端的开机性能数据,通过摄像模块拍摄待测终端从执行开机操作至显示待测终端主界面过程中的界面图像。还可以采集待测终端中一应用调用另一应用的调用性能数据,通过摄像模块采集从触发一应用调用另一应用的操作至显示另一应用的界面的图像,如采集浏览器调用社交应用的性能数据。本发明实施例的应用广泛,并不限制于本发明实施例已介绍的场景,对于其它未介绍的场景在此不一一详述。在本发明实施例中,通过摄像模块对启动了待测应用并执行了预设操作的待测终端进行拍摄,记录拍摄时间;根据拍摄得到的图像,获取待测应用对应的界面图像;根据待测应用的界面图像及拍摄时间生成待测应用的性能数据。本发明的执行主体为独立于待测终端之外的采集设备,通过独立的采集设备中的摄像模块来拍摄 待测终端的图像,进而得到待测应用的界面图像,避免了通过待测终端中的应用自带的截屏软件来采集性能数据,在采集性能数据时不占用待测终端的系统资源,因此截屏速度快、误差小而效率高,且不会受待测终端的系统版本和硬件性能的影响。实施例2参见图2,本发明实施例提供了一种采集应用性能数据的装置,该装置用于执行上述实施例1提供的采集应用性能数据的方法。该装置具体包括:摄像模块201、控制模块202和性能分析模块203;控制模块202,用于控制摄像模块201对启动了待测应用并执行了预设操作的待测终端进行拍摄,记录拍摄时间;性能分析模块203,用于根据摄像模块201拍摄得到的图像,获取待测应用对应的界面图像,根据待测应用的界面图像及拍摄时间生成待测应用的性能数据。拍摄得到的图像可以划分为背景部分和待测终端的图像部分,而待测终端的图像部分又可分为屏幕图像部分和待测终端的边框部分。其中,在确定待测应用的性能指标时,背景部分和待测终端的边框部分的参考价值不大,可以忽略,而屏幕图像部分的参考价值很大,因此为了缩减性能数据的数据量,以及提高性能数据的准确性,本发明实施例中在采集应用性能数据时主要采集屏幕图像部分。由于在待测应用执行预设操作时,待测终端的屏幕上显示的界面即为待测应用对应的界面,所以在本发明实施例中获取待测应用对的界面图像,即为从拍摄得到的图像中获取待测终端的屏幕图像。上述性能分析模块203通过确定单元和截取单元来获取待测应用对应的界面图像。确定单元,用于根据摄像模块201拍摄得到的图像中每个像素点的灰度值或颜色值,从图像中确定出待测终端的屏幕边界;截取单元,用于根据确定单元确定的屏幕边界,从图像中截取出待测终端的屏幕图像作为待测应用对应的界面图像。因为拍摄的图像中包括背景部分、待测终端的边框部分和屏幕图像部分,通常背景部分的颜色与待测终端的边框颜色不同,而待测终端的边框颜色与屏幕的颜色也不相同。所以确定单元在确定待测终端的屏幕边界时,可以根据拍摄的图像中的像素点的灰度值或颜色值来确定。确定单元具体通过检测子单元和确定子单元来确定屏幕边界。检测子单元,用于从摄像模块201拍摄得到的图像的四周边缘开始检测每个像素点的灰度值或颜色值;确定子单元,用于当检测子单元检测到灰度值或颜色值首次满足预设突变条件时,将首次满足预设突变条件的像素点组成的轮廓确定为待测终端的边界;检测子单元,还用于从待测终端的边界开始检测像素点的灰度值或颜色值;确定子单元,还用于当检测子单元检测到灰度值或颜色值再次满足预设突变条件时,将再次满足预设突变条件的像素点组成的轮廓确定为待测终端的屏幕边界。在本发明实施例中,性能分析模块203在获取待测应用对应的界面图像时来确定待测终端的屏幕边界,也可以在性能分析模块203获取待测应用对应的界面图像之前,甚至在控制模块202控制摄像模块对启动了待测应用并执行了预设操作的待测终端进行拍摄之前,先确定待测终端的屏幕边界。控制模块202,还用于控制摄像模块201拍摄多幅待测终端的图像;相应地,性能分析模块203,还用于根据摄像模块201拍摄的多幅待测终端的图像中每个像素点的灰度值或颜色值,确定待测终端的屏幕边界;根据确定的屏幕边界,从拍摄得到的图像中截取出待测终端的屏幕图像作为待测应用对应的界面图像。由于摄像模块201采集图像的频率很高,若摄像模块201采用现有的普通摄像头,则一般每30毫秒就可以采集一幅图像,若摄像模块201采用比普通摄像头更精密的摄像头,则采集图像的频率更高,因此采集的界面图像中很可能存在相同的图像,为了节省存储性能数据所需的内存空间,减少设备硬盘的读写次数,以及提高根据性能数据分析性能指标的效率,在性能分析模块203根据采集的待测应用的界面图像生成性能数据之前,还可以先对采集的界面图像进行去重处理。性能分析模块203通过如下相似度计算单元、判断单元、丢弃单元和生成单元来进行去重处理。相似度计算单元,用于从内存中获取已采集的性能数据中的图像,通过相似度对比算法分别计算待测应用的界面图像与获取的每个图像之间的相似度;判断单元,用于判断每个图像中是否存在相似度高于预设阈值的图像;丢弃单元,用于当判断单元判断出每个图像中存在相似度高于预设阈值的图像时,丢弃待测应用的界面图像;生成单元,用于当判断单元判断出每个图像中不存在相似度高于预设阈值的图像时,执行根据待测应用的界面图像及拍摄时间生成待测应用的性能数据的操作。当判断单元判断出每个图像中不存在相似度高于预设阈值的图像,且生成单元生成性能数据之后,还通过存储模块来存储生成的性能数据。存储模块,用于将性能数据存储在内存中。在采集待测应用的界面图像的过程中,控制模块202,还用于实时监测待测应用执行预设操作的过程,当监测到待测应用停止执行预设操作时,控制摄像模块201停止对待测终端进行拍摄。至此完成了对待测应用执行该预设操作过程中的性能数据的采集。完成性能数据的采集之后,还通过性能指标确定模块来确定待测应用的性能指标。性能指标确定模块,用于从内存中获取待测应用对应的性能数据,根据获取的性能数据包括的界面图像和拍摄时间,确定待测应用中预设操作对应的性能指标。在本发明实施例中,控制模块202在控制摄像模块201进行拍摄之前,控制模块202,还用于通过开源计算机视觉库opencv驱动摄像模块201,创建摄像任务线程。在采集待测应用的不同性能指标对应的性能数据之前,待测应用需要先执行待测指标对应的操作。在本发明实施例中,设置启动操作、访问网页的操作及下载操作等为预设操作。控制模块202在控制摄像模块201来采集待测终端中的待测应用的性能数据之前,用户可以通过手动触发待测应用执行预设操作,如用户点击待测终端中浏览器的图标,触发浏览器执行启动操作。上述通过用户来触发待测应用执行预设操作的方式,由于需要人工干预,采集应用性能数据的自动化程度较低,所以本发明实施例中控制模块202还可以控制待测终端启动待测应用执行预设操作,以提高采集应用性能数据的自动化程度。控制模块202,还用于建立与待测终端之间的通信连接,通过通信连接发送控制指令给待测终端,控制待测终端中的待测应用执行预设操作。通过控制模块202来控制启动待测终端执行预设操作,避免了采集性能数据过程中的人工干预,可以通过扩展摄像模块201的数量来同时采集多个待测终端中的待测应用的性能数据,实现性能数据的批量采集。而且应用的性能指标也会受安装该应用的终端的性能的影响,为了提高确定应用性能指标的准确性,需要检测同一应用在不同终端上的性能,通过上述扩展了多个摄像模块201的采集设备,可以实现同时采集同一待测应用在多个不同待测终端上的性能数据,从而提高确定该待测应用的性能指标的效率和准确性。在本发明实施例中,通过摄像模块对启动了待测应用并执行了预设操作的待测终端进行拍摄,记录拍摄时间;根据拍摄得到的图像,获取待测应用对应的界面图像;根据待测应用的界面图像及拍摄时间生成待测应用的性能数据。本发明的执行主体为独立于待测终端之外的采集设备,通过独立的采集设备中的摄像模块来拍摄待测终端的图像,进而得到待测应用的界面图像,避免了通过待测终端中的应用自带的截屏软件来采集性能数据,在采集性能数据时不占用待测终端的系统资源,因此截屏速度快、误差小而效率高,且不会受待测终端的系统版本和硬件性能的影响。本发明实施例所提供的采集应用性能数据的装置可以为设备上的特定硬件或者安装于设备上的软件或固件等。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的模块、装置和单元的具体工作过程,均可以参考上述方法实施例中的对应过程。在本申请所提供的几个实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、 随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
:的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1