CN105653456B - 应用程序性能测试方法、装置和系统 - Google Patents
应用程序性能测试方法、装置和系统 Download PDFInfo
- Publication number
- CN105653456B CN105653456B CN201511031372.1A CN201511031372A CN105653456B CN 105653456 B CN105653456 B CN 105653456B CN 201511031372 A CN201511031372 A CN 201511031372A CN 105653456 B CN105653456 B CN 105653456B
- Authority
- CN
- China
- Prior art keywords
- time
- data
- screen video
- performance data
- video data
- 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
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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
Abstract
本发明公开了一种应用程序性能测试方法、装置和系统,本发明通过周期性地获取应用程序测试过程中系统的性能数据,并同步采集所述系统的屏幕视频数据,依据所述性能数据被获取时的时间和所述屏幕视频数据被采集时的时间,建立所述性能数据和所述屏幕视频数据之间的关联关系,在所述屏幕视频数据中对异常的性能数据进行定位,获取所述性能数据发生异常时所关联的屏幕视频画面。测试人员可根据所述屏幕视频画面清楚地知道性能数据发生异常时应用程序的运行情况,有助于分析出性能数据波动或者性能瓶颈产生的原因,为应用程序的优化和改进提供可靠的数据分析与支持。
Description
技术领域
本发明涉及应用程序测试领域,尤其涉及一种应用程序性能测试方法、装置和系统。
背景技术
对于任何一个应用程序来说,在其开发周期中,会进行多次性能测试,性能测试的目的是为了检测开发出来的代码在目前主流或者全部设备上,是否可以正常运行,对于不能达到性能指标要求的地方,进行针对性的改进和优化。硬件设备的配置在一定程序上决定了运行程序的能力,不同设备对同一款应用程序进行性能测试可能得出不同的测试结果。高配置的设备可以允许开发者开发出更加复杂的软件,程序代码的不断更新迭代也迫使硬件设备不断提速,硬件和软件的进步是他们互相影响、互相促进的结果。
对于手机应用来说,性能测试至关重要,不仅可以反映应用程序在不同配置手机上的表现和兼容性问题,同时可以通过分析应用程序的性能测试数据来指导程序代码的开发,发现一些从表现上无法发现的程序代码缺陷。
目前比较常用的性能测试方案主要如下:通过性能检测工具对性能数据进行监控,监控单个应用程序的CPU、内存、流量、启动耗时、电量和电流等性能状态的变化,根据用户自定义配置监控的频率对性能数据进行实时显示,并生成性能数据文件。
发明内容
性能测试的目的是发现不符合性能要求的地方,并尽可能方便的找出性能瓶颈的地方,然后指导开发者进行改进和优化。如背景技术中所述,现有的性能测试方案仅对部分性能指标进行监控以获取性能数据,仅通过对性能数据的单独分析并不能获知性能数据异常时应用程序的运行情况,难以发现性能异常的原因。
本发明实施例的目的在于提供一种应用程序性能测试方法、装置和系统,通过性能数据和屏幕视频数据的对照分析,以定位出对性能数据异发生常时的屏幕显示画面。
为实现上述目的,本发明实施例提供了第一种应用程序性能测试方法,包括:
在应用程序测试过程中,每隔预设的第一时间间隔获取系统的性能数据,并记录所述性能数据被获取时的时间;
在获取所述性能数据的过程中,同步采集所述系统的屏幕视频数据,并记录所述屏幕视频数据被采集时的时间;
根据所述性能数据被获取时的时间和所述屏幕视频数据被采集时的时间,建立所述屏幕视频数据与在最接近时间内获取的所述性能数据之间的关联关系;
根据所述关联关系,在所述屏幕视频数据中对异常的性能数据进行定位,获取所述性能数据发生异常时所关联的屏幕视频画面,以对所述性能数据发生异常的原因进行分析。
优选地,所述性能数据包括帧率、CPU占用、内存占用、上下行流量、设备温度、电流强度和电量消耗中的至少一种。
优选地,所述帧率通过以下步骤获取:
获取所述系统的底层管理权限,利用所述底层管理权限调用系统服务来获取所述帧率。
优选地,所述获取所述系统的底层管理权限,利用所述底层管理权限调用系统服务来获取所述帧率,具体为:
获取所述系统的底层管理权限;
每隔预设的第二时间间隔,利用所述底层管理权限调用系统服务中的刷新帧数据获取命令,获取所述系统自开机运行到当前时间的刷新帧总数,并记录系统当前的时间;
根据先后获取的两个刷新帧总数以及与所述两个刷新帧总数分别对应的两个时间,计算所述两个时间之间的帧率;其中,所述帧率fps=(f2-f1)/(t2-t1),f1和f2为先后获取的两个刷新帧总数,t1为与f1对应的时间,t2为与f2对应的时间。
优选地,所述在获取所述性能数据的过程中,同步采集所述系统的屏幕视频数据,并记录所述屏幕视频数据被采集时的时间,具体为:
在获取所述性能数据的过程中,通过MHL转HDMI适配器将所述屏幕视频数据发送到视频采集卡,通过所述视频采集卡对所述屏幕视频数据进行采集,并记录所述屏幕视频数据被采集时的时间。
优选地,所述根据所述性能数据被获取时的时间和所述屏幕视频数据被采集时的时间,建立所述屏幕视频数据与在最接近时间内获取的所述性能数据之间的关联关系,具体为:
提取所有的性能数据被获取时的时间,并按先后顺序排列成时间戳数组;
在对所述屏幕视频数据进行播放时,获取所述屏幕视频数据已播放的时长,将所述已播放的时长与所述屏幕视频数据被采集时的时间相加,获取当前屏幕视频画面的实际采集时间;
利用二分查找算法,从所述时间戳数组中查找与所述实际采集时间最接近的时间,并获取与所述最接近的时间对应的所述性能数据,建立所述当前屏幕视频画面与获取的所述性能数据之间的关联关系。
优选地,在所述根据所述性能数据被获取时的时间和所述屏幕视频数据被采集时的时间,建立所述屏幕视频数据与在最接近时间内获取的所述性能数据之间的关联关系之后,还包括:
采用可视化工具对所述性能数据进行图表绘制,获取所述性能数据的数据图表;
根据所述关联关系,在同一页面中通过联动的方式对所述数据图表和所述屏幕视频数据进行展示。
优选地,所述方法还包括:
通过HTTP接口接收自动化测试命令,根据所述自动化测试命令对所述应用程序的测试过程进行控制。
本发明实施例还提供第二种应用程序性能测试方法,包括:
在应用程序测试过程中,每隔预设的第一时间间隔获取系统的性能数据,并记录所述性能数据被获取时的时间;
在获取所述性能数据的过程中,同步采集所述系统的屏幕视频数据,并记录所述屏幕视频数据被采集时的时间;
将所述性能数据、所述性能数据被获取时的时间、所述屏幕视频数据和所述屏幕视频数据被采集时的时间上传到服务器中,触发所述服务器根据所述性能数据被获取时的时间和所述屏幕视频数据被采集时的时间,建立所述屏幕视频数据与在最接近时间内获取的所述性能数据之间的关联关系;并根据所述关联关系,在所述屏幕视频数据中对异常的性能数据进行定位,获取所述性能数据发生异常时所关联的屏幕视频画面,以对所述性能数据发生异常的原因进行分析。
优选地,所述性能数据包括帧率、CPU占用、内存占用、上下行流量、设备温度、电流强度和电量消耗中的至少一种。
优选地,所述帧率通过以下步骤获取:
获取所述系统的底层管理权限,利用所述底层管理权限调用系统服务来获取所述帧率。
优选地,所述获取所述系统的底层管理权限,利用所述底层管理权限调用系统服务来获取所述帧率,具体为:
获取所述系统的底层管理权限;
每隔预设的第二时间间隔,利用所述底层管理权限调用系统服务中的刷新帧数据获取命令,获取所述系统自开机运行到当前时间的刷新帧总数,并记录系统当前的时间;
根据先后获取的两个刷新帧总数以及与所述两个刷新帧总数分别对应的两个时间,计算所述两个时间之间的帧率;其中,所述帧率fps=(f2-f1)/(t2-t1),f1和f2为先后获取的两个刷新帧总数,t1为与f1对应的时间,t2为与f2对应的时间。
优选地,所述在获取所述性能数据的过程中,同步采集所述系统的屏幕视频数据,并记录采集所述屏幕视频数据的时间,具体为:
在获取所述性能数据的过程中,通过MHL转HDMI适配器将所述屏幕视频数据发送到视频采集卡,通过所述视频采集卡对所述屏幕视频数据进行采集,并记录所述屏幕视频数据被采集时的时间。
优选地,所述触发所述服务器根据所述性能数据被获取时的时间和所述屏幕视频数据被采集时的时间,建立所述屏幕视频数据与在最接近时间下获取的所述性能数据之间的关联关系,具体为:
触发所述服务器提取所有的性能数据被获取时的时间,并按先后顺序排列成时间戳数组;在对所述屏幕视频数据进行播放时,获取所述屏幕视频数据已播放的时长,将所述已播放的时长与所述屏幕视频数据被采集时的时间相加,获取当前屏幕视频画面的实际采集时间;利用二分查找算法,从所述时间戳数组中查找与所述实际采集时间最接近的时间,并获取与所述最接近的时间对应的所述性能数据,建立所述当前屏幕视频画面与获取的所述性能数据之间的关联关系。
优选地,在所述触发所述服务器根据所述性能数据被获取时的时间和所述屏幕视频数据被采集时的时间,建立所述屏幕视频数据与在最接近时间内获取的所述性能数据之间的关联关系之后,还包括:
向所述服务器发送对所述性能数据和所述屏幕视频数据的查看请求,触发所述服务器采用可视化工具对所述性能数据进行图表绘制,获取所述性能数据的数据图表;并触发所述服务器根据所述关联关系,在同一页面中通过联动的方式对所述数据图表和所述屏幕视频数据进行展示。
优选地,所述方法还包括:
通过HTTP接口接收自动化测试命令,根据所述自动化测试命令对所述应用程序的测试过程进行控制。
相应地,本发明实施例提供了第一种应用程序性能测试装置,包括:
性能数据获取模块,用于在应用程序测试过程中,每隔预设的第一时间间隔获取系统的性能数据,并记录所述性能数据被获取时的时间;
屏幕视频采集模块,用于在获取所述性能数据的过程中,同步采集所述系统的屏幕视频数据,并记录所述屏幕视频数据被采集时的时间;
数据关联模块,用于根据所述性能数据被获取时的时间和所述屏幕视频数据被采集时的时间,建立所述屏幕视频数据与在最接近时间内获取的所述性能数据之间的关联关系;
定位分析模块,用于根据所述关联关系,在所述屏幕视频数据中对异常的性能数据进行定位,获取所述性能数据发生异常时所关联的屏幕视频画面,以对所述性能数据发生异常的原因进行分析。
优选地,所述性能数据包括帧率、CPU占用、内存占用、上下行流量、设备温度、电流强度和电量消耗中的至少一种。
优选地,所述性能数据获取模块包括:
帧率获取单元,用于获取所述系统的底层管理权限,利用所述底层管理权限调用系统服务来获取所述帧率。
优选地,所述帧率获取单元包括:
系统权限获取子单元,用于获取所述系统的底层管理权限;
刷新帧数据获取子单元,用于每隔预设的第二时间间隔,利用所述底层管理权限调用系统服务中的刷新帧数据获取命令,获取所述系统自开机运行到当前时间的刷新帧总数,并记录系统当前的时间;
帧率计算子单元,用于根据先后获取的两个刷新帧总数以及与所述两个刷新帧总数分别对应的两个时间,计算所述两个时间之间的帧率;其中,所述帧率fps=(f2-f1)/(t2-t1),f1和f2为先后获取的两个刷新帧总数,t1为与f1对应的时间,t2为与f2对应的时间。
优选地,所述屏幕视频采集模块包括:
采集单元,用于在获取所述性能数据的过程中,通过MHL转HDMI适配器将所述屏幕视频数据发送到视频采集卡,通过所述视频采集卡对所述屏幕视频数据进行采集,并记录所述屏幕视频数据被采集时的时间。
优选地,所述数据关联模块包括:
提取单元,用于提取所有的性能数据被获取时的时间,并按先后顺序排列成时间戳数组;
计算单元,用于在对所述屏幕视频数据进行播放时,获取所述屏幕视频数据已播放的时长,将所述已播放的时长与所述屏幕视频数据被采集时的时间相加,获取当前屏幕视频画面的实际采集时间;
查找单元,用于利用二分查找算法,从所述时间戳数组中查找与所述实际采集时间最接近的时间,并获取与所述最接近的时间对应的所述性能数据,建立所述当前屏幕视频画面与获取的所述性能数据之间的关联关系。
优选地,所述装置还包括:
图表绘制模块,用于采用可视化工具对所述性能数据进行图表绘制,获取所述性能数据的数据图表;
联动展示模块,用于根据所述关联关系,在同一页面中通过联动的方式对所述数据图表和所述屏幕视频数据进行展示。
优选地,所述装置还包括:
自动化测试模块,用于通过HTTP接口接收自动化测试命令,根据所述自动化测试命令对所述应用程序的测试过程进行控制。
相应地,本发明实施例还提供了第二种应用程序性能测试装置,包括:
性能数据获取模块,用于在应用程序测试过程中,每隔预设的第一时间间隔获取系统的性能数据,并记录所述性能数据被获取时的时间;
屏幕视频采集模块,用于在获取所述性能数据的过程中,同步采集所述系统的屏幕视频数据,并记录所述屏幕视频数据被采集时的时间;
数据上传模块,用于将所述性能数据、所述性能数据被获取时的时间、所述屏幕视频数据和所述屏幕视频数据被采集时的时间上传到服务器中,触发所述服务器根据所述性能数据被获取时的时间和所述屏幕视频数据被采集时的时间,建立所述屏幕视频数据与在最接近时间内获取的所述性能数据之间的关联关系;并根据所述关联关系,在所述屏幕视频数据中对异常的性能数据进行定位,获取所述性能数据发生异常时所关联的屏幕视频画面,以对所述性能数据发生异常的原因进行分析。
优选地,所述性能数据包括帧率、CPU占用、内存占用、上下行流量、设备温度、电流强度和电量消耗中的至少一种。
优选地,所述性能数据获取模块包括:
帧率获取单元,用于获取所述系统的底层管理权限,利用所述底层管理权限调用系统服务来获取所述帧率。
优选地,所述帧率获取单元包括:
系统权限获取子单元,用于获取所述系统的底层管理权限;
刷新帧数据获取子单元,用于每隔预设的第二时间间隔,利用所述底层管理权限调用系统服务中的刷新帧数据获取命令,获取所述系统自开机运行到当前时间的刷新帧总数,并记录系统当前的时间;
帧率计算子单元,用于根据先后获取的两个刷新帧总数以及与所述两个刷新帧总数分别对应的两个时间,计算所述两个时间之间的帧率;其中,所述帧率fps=(f2-f1)/(t2-t1),f1和f2为先后获取的两个刷新帧总数,t1为与f1对应的时间,t2为与f2对应的时间。
优选地,所述屏幕视频采集模块包括:
采集单元,用于在获取所述性能数据的过程中,通过MHL转HDMI适配器将所述屏幕视频数据发送到视频采集卡,通过所述视频采集卡对所述屏幕视频数据进行采集,并记录所述屏幕视频数据被采集时的时间。
优选地,所述数据上传模块包括:
触发单元,用于触发所述服务器提取所有的性能数据被获取时的时间,并按先后顺序排列成时间戳数组;在对所述屏幕视频数据进行播放时,获取所述屏幕视频数据已播放的时长,将所述已播放的时长与所述屏幕视频数据被采集时的时间相加,获取当前屏幕视频画面的实际采集时间;利用二分查找算法,从所述时间戳数组中查找与所述实际采集时间最接近的时间,并获取与所述最接近的时间对应的所述性能数据,建立所述当前屏幕视频画面与获取的所述性能数据之间的关联关系。
优选地,所述装置还包括:
请求发送模块,用于向所述服务器发送对所述性能数据和所述屏幕视频数据的查看请求,触发所述服务器采用可视化工具对所述性能数据进行图表绘制,获取所述性能数据的数据图表;并触发所述服务器根据所述关联关系,在同一页面中通过联动的方式对所述数据图表和所述屏幕视频数据进行展示。
优选地,所述装置还包括:
自动化测试模块,用于通过HTTP接口接收自动化测试命令,根据所述自动化测试命令对所述应用程序的测试过程进行控制。
此外,本发明实施例还提供了一种应用程序性能测试系统,包括测试端和服务器;
所述测试端上设置有如前文所述的第二种应用程序性能测试装置;
所述服务器上设置有数据关联模块和定位分析模块;
所述数据关联模块,用于根据所述性能数据被获取时的时间和所述屏幕视频数据被采集时的时间,建立所述屏幕视频数据与在最接近时间内获取的所述性能数据之间的关联关系;
所述定位分析模块,用于根据所述关联关系,在所述屏幕视频数据中对异常的性能数据进行定位,获取所述性能数据发生异常时所关联的屏幕视频画面,以对所述性能数据发生异常的原因进行分析。
与现有技术相比,本发明具有以下优点:
本发明公开了一种应用程序性能测试方法、装置和系统,本发明通过周期性地获取应用程序测试过程中系统的性能数据,并同步采集所述系统的屏幕视频数据,依据所述性能数据被获取时的时间和所述屏幕视频数据被采集时的时间,建立所述性能数据和所述屏幕视频数据之间的关联关系,在所述屏幕视频数据中对异常的性能数据进行定位,获取所述性能数据发生异常时所关联的屏幕视频画面。测试人员可根据所述屏幕视频画面清楚地知道性能数据发生异常时应用程序的运行情况,有助于分析出性能数据波动或者性能瓶颈产生的原因,为应用程序的优化和改进提供可靠的数据分析与支持。
附图说明
图1是本发明提供的应用程序性能测试方法的一个实施例的流程图;
图2是本发明提供的应用程序性能测试方法的另一个实施例的流程图;
图3是本发明提供的应用程序性能测试装置的一个实施例的结构图;
图4是本发明提供的应用程序性能测试装置的一个实施例的结构图;
图5是本发明提供的应用程序性能测试系统的一个实施例的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,是本发明提供的应用程序性能测试方法的一个实施例的流程图;
如图1所示,所述应用程序性能测试方法,包括:
S11,在应用程序测试过程中,每隔预设的第一时间间隔获取系统的性能数据,并记录所述性能数据被获取时的时间。
所述应用程序包括游戏和应用软件。在获取性能数据之前,需要在所述系统上运行待测试的应用程序,并将所述应用程序的运行至待测试部分,如游戏中的某一场景。所述性能数据包括帧率(也称为每秒传输帧数FPS,Frames Per Second)、CPU占用、内存占用、上下行流量、设备温度、电流强度和电量消耗中的至少一种。其中,所述CPU占用为被测应用程序的CPU占用时间与所有程序的CPU占用时间之比,CPU占用时间可通过读取系统文件获取。所述内存占用优选包括内存RSS(Resident Set Size)占用和内存PSS(Proportional SetSize)占用,可通过调用相应的系统服务获取。流量信息可通过调用相应的系统服务TrafficStats来获取。Android系统在设备温度发生变化时会发出广播,因此可通过广播接收器(Broadcast Receiver)来接收设备的温度。设备电流强度的变化写入到系统对应的文件中,可通过读取系统相应文件来获取。电量消耗可通过实时的电流电压来计算。在具体实施当中,可以通过自定义的选择和配置对其中的一项或多项性能数据进行测试。优选地,在测试过程中,还可以通过悬浮框的方式在屏幕上对获取的性能数据进行实时显示。
帧率对于游戏以及部分应用软件是一个非常重要性能指标,游戏在FPS低于20的时候,玩家将感觉很卡,游戏体验较差。现有技术当中通常通过在被测应用程序的代码中嵌入帧率获取代码,使用游戏引擎的API(Application Programming Interface,应用程序编程接口)接口,或者APP(Application,应用程序)框架的接口来获取帧率数据。上述现有技术方案存在以下缺点,首先,由于需要有代码的写入权限,现有的技术方案无法获取没有代码权限的第三方应用程序的帧率数据;其次,在源代码中嵌入代码,可能会影响源程序的稳定性;进一步地,现有技术方案需要依赖于游戏引擎或者APP框架的接口,在对不同的应用程序进行测试时需要编写不同的代码,当游戏引擎或者APP框架中未设置FPS数据的接口时,将无法获取FPS数据。
本实施例中所述帧率通过获取所述系统的底层管理权限(也称为su权限或者root权限),利用所述底层管理权限调用系统服务来获取,在一定程度上降低了代码编写的难度,简化了帧率数据获取的过程。具体地,可通过以下步骤实现:获取所述系统的底层管理权限;每隔预设的第二时间间隔,利用所述底层管理权限调用系统服务中的刷新帧数据获取命令,获取所述系统自开机运行到当前时间的刷新帧总数,并记录系统当前的时间;根据先后获取的两个刷新帧总数以及与所述两个刷新帧总数分别对应的两个时间,计算所述两个时间之间的帧率;其中,所述帧率fps=(f2-f1)/(t2-t1),f1和f2为先后获取的两个刷新帧总数,t1为与f1对应的时间,t2为与f2对应的时间。
进一步地,为实现自动化的性能测试,本实施例还提供了HTTP接口作为自动化测试接口,在具体实施当中,可通过所述HTTP接口接收自动化测试命令,根据所述自动化测试命令对所述应用程序的测试过程进行控制,所述自动化测试命令包括但不限于启动应用程序、设置运行场景、开始测试和暂停测试等,可实现自动化的性能数据获取。
S12,在获取所述性能数据的过程中,同步采集所述系统的屏幕视频数据,并记录所述屏幕视频数据被采集时的时间。
在一种优选的实施方式当中,可通过MHL(Mobile High-Definition Link,移动终端高清影音标准接口)转HDMI(High Definition Multimedia Interface,高清晰度多媒体接口)适配器将所述屏幕视频数据发送到视频采集卡,通过所述视频采集卡对所述屏幕视频数据进行采集,并记录所述屏幕视频数据被采集时的时间。本领域技术人员可以理解,上述实施方式仅是本发明优选的实施方式,在具体实施当中,所述屏幕视频数据也可以通过屏幕录制软件和摄像机等其他方式获取。此外,由于屏幕视频数据的采集与性能数据同步进行,因此也可以将最早的性能数据被获取时的时间作为屏幕视频数据的采集时间。
S13,根据所述性能数据被获取时的时间和所述屏幕视频数据被采集时的时间,建立所述屏幕视频数据与在最接近时间内获取的所述性能数据之间的关联关系。
在具体实施当中,可通过以下方式建立所述屏幕视频数据和所述性能数据之间的关联关系:提取所有的性能数据被获取时的时间,并按先后顺序排列成时间戳数组;在对所述屏幕视频数据进行播放时,获取所述屏幕视频数据已播放的时长,将所述已播放的时长与所述屏幕视频数据被采集时的时间相加,获取当前屏幕视频画面的实际采集时间;利用二分查找算法,从所述时间戳数组中查找与所述实际采集时间最接近的时间,并获取与所述最接近的时间对应的所述性能数据,建立所述当前屏幕视频画面与获取的所述性能数据之间的关联关系。
进一步地,还可以将所述性能数据以图表的方式进行展示,采用可视化工具echarts对所述性能数据进行图表绘制,获取所述性能数据的数据图表;并采用视频播放工具video.js对所述屏幕视频数据进行播放,根据当前屏幕视频画面与所述性能数据之间的关联关系,在同一页面中通过联动的方式对所述数据图表和所述屏幕视频数据进行展示,可直观地显示与当前屏幕视频画面对应的性能情况。
S14,根据所述关联关系,在所述屏幕视频数据中对异常的性能数据进行定位,获取所述性能数据发生异常时所关联的屏幕视频画面,以对所述性能数据发生异常的原因进行分析。
所述异常的性能数据可以为FPS过低、CPU占用过高、内存占用过高、设备温度过高等,异常数据的判定条件和具体的界定数值可根据实际需要进行设定,本发明对此不作限定。本实施例通过性能数据和屏幕视频数据的对照分析,根据二者的关联关系在所述屏幕视频数据中对性能异常的位置进行定位,获取性能数据发生异常时所关联的屏幕视频画面,可以更清楚地分析出性能数据波动或者性能瓶颈产生的原因。
参见图2,是本发明提供的应用程序性能测试方法的另一个实施例的流程图;
如图2所示,所述应用程序性能测试方法包括:
S21,在应用程序测试过程中,每隔预设的第一时间间隔获取系统的性能数据,并记录所述性能数据被获取时的时间。
S22,在获取所述性能数据的过程中,同步采集所述系统的屏幕视频数据,并记录所述屏幕视频数据被采集时的时间。
S23,将所述性能数据、所述性能数据被获取时的时间、所述屏幕视频数据和所述屏幕视频数据被采集时的时间上传到服务器中,触发所述服务器根据所述性能数据被获取时的时间和所述屏幕视频数据被采集时的时间,建立所述屏幕视频数据与在最接近时间内获取的所述性能数据之间的关联关系;并根据所述关联关系,在所述屏幕视频数据中对异常的性能数据进行定位,获取所述性能数据发生异常时所关联的屏幕视频画面,以对所述性能数据发生异常的原因进行分析。
本实施例中步骤S21和步骤S22分别与图1所示述实施例中的步骤S11和步骤S12一致,本实施例中未详述之处可参见前述实施例中的相关描述。本实施例与图1所示实施例的区别在于,本实施例中将性能数据和屏幕视频数据上传到服务器中,通过服务器上的分析平台对性能数据和屏幕视频数据进行对比分析,以提高系统的性能和数据管理的便利性。
在具体实施当中,测试端对应用程序进行测试获取所述性能数据后,将所述性能数据上传到所述服务器中,触发所述服务器提取所有的性能数据被获取时的时间,并按先后顺序排列成时间戳数组;在对所述屏幕视频数据进行播放时,获取所述屏幕视频数据已播放的时长,将所述已播放的时长与所述屏幕视频数据被采集时的时间相加,获取当前屏幕视频画面的实际采集时间;利用二分查找算法,从所述时间戳数组中查找与所述实际采集时间最接近的时间,并获取与所述最接近的时间对应的所述性能数据,建立所述当前屏幕视频画面与获取的所述性能数据之间的关联关系。
进一步地,可通过测试端或者其他电子设备中的浏览器或软件程序对服务器进行访问,向所述服务器发送对所述性能数据和所述屏幕视频数据的查看请求,触发所述服务器采用可视化工具对所述性能数据进行图表绘制,获取所述性能数据的数据图表;并触发所述服务器根据所述关联关系,在同一页面中通过联动的方式对所述数据图表和所述屏幕视频数据进行展示,以更直观地显示与当前屏幕视频画面对应的性能情况。
更进一步地,为实现自动化的性能测试,本实施例还提供了HTTP接口作为自动化测试接口,在具体实施当中,可通过所述HTTP接口接收自动化测试命令,根据所述自动化测试命令对所述应用程序的测试过程进行控制,所述自动化测试命令包括但不限于启动应用程序、设置运行场景、开始测试、暂停测试和上传数据等,可实现自动化的性能数据获取。
所述服务器可采用Python Flask和Mysql搭建,Python Flask用于提供HTTP的服务以及网页上的操作,Mysql用于存储性能数据。性能测试的目的不是为了获取性能数据和图表展示,而是为了改进游戏或者APP的性能情况,提高游戏和APP的操作体验,而性能情况在整个开发过程中会逐步迭代,在功能增加和性能优化的逐步迭代过程中,必须保证游戏和APP的性能数据是一个良好的曲线,本发明将历次的测试数据上传并存储在服务器的数据库中,便于历史数据的对比,为应用程序的改进和优化提供数据参考。
参见图3,是本发明提供的应用程序性能测试装置的一个实施例的结构图;本实施例的基本原理与图1所示实施例一致,本实施例中未详述之处可参见图1所示实施例中的相关描述。
如图3所示,所述应用程序性能测试装置,包括:
性能数据获取模块31,用于在应用程序测试过程中,每隔预设的第一时间间隔获取系统的性能数据,并记录所述性能数据被获取时的时间。
屏幕视频采集模块32,用于在获取所述性能数据的过程中,同步采集所述系统的屏幕视频数据,并记录所述屏幕视频数据被采集时的时间。
数据关联模块33,用于根据所述性能数据被获取时的时间和所述屏幕视频数据被采集时的时间,建立所述屏幕视频数据与在最接近时间内获取的所述性能数据之间的关联关系。
定位分析模块34,用于根据所述关联关系,在所述屏幕视频数据中对异常的性能数据进行定位,获取所述性能数据发生异常时所关联的屏幕视频画面,以对所述性能数据发生异常的原因进行分析。
其中,所述性能数据包括帧率、CPU占用、内存占用、上下行流量、设备温度、电流强度和电量消耗中的至少一种。
所述性能数据获取模块31包括:
帧率获取单元,用于获取所述系统的底层管理权限,利用所述底层管理权限调用系统服务来获取所述帧率。
具体地,所述帧率获取单元包括:
系统权限获取子单元,用于获取所述系统的底层管理权限;
刷新帧数据获取子单元,用于每隔预设的第二时间间隔,利用所述底层管理权限调用系统服务中的刷新帧数据获取命令,获取所述系统自开机运行到当前时间的刷新帧总数,并记录系统当前的时间;
帧率计算子单元,用于根据先后获取的两个刷新帧总数以及与所述两个刷新帧总数分别对应的两个时间,计算所述两个时间之间的帧率;其中,所述帧率fps=(f2-f1)/(t2-t1),f1和f2为先后获取的两个刷新帧总数,t1为与f1对应的时间,t2为与f2对应的时间。
所述屏幕视频采集模块32包括:
采集单元,用于在获取所述性能数据的过程中,通过MHL转HDMI适配器将所述屏幕视频数据发送到视频采集卡,通过所述视频采集卡对所述屏幕视频数据进行采集,并记录所述屏幕视频数据被采集时的时间。
所述数据关联模块33包括:
提取单元,用于提取所有的性能数据被获取时的时间,并按先后顺序排列成时间戳数组;
计算单元,用于在对所述屏幕视频数据进行播放时,获取所述屏幕视频数据已播放的时长,将所述已播放的时长与所述屏幕视频数据被采集时的时间相加,获取当前屏幕视频画面的实际采集时间;
查找单元,用于利用二分查找算法,从所述时间戳数组中查找与所述实际采集时间最接近的时间,并获取与所述最接近的时间对应的所述性能数据,建立所述当前屏幕视频画面与获取的所述性能数据之间的关联关系。
此外,图3中虽未画出,但在具体实施当中,所述应用程序性能测试装置还可以进一步包括:
图表绘制模块,用于采用可视化工具对所述性能数据进行图表绘制,获取所述性能数据的数据图表;
联动展示模块,用于根据所述关联关系,在同一页面中通过联动的方式对所述数据图表和所述屏幕视频数据进行展示。
更进一步地,所述装置还包括:
自动化测试模块,用于通过HTTP接口接收自动化测试命令,根据所述自动化测试命令对所述应用程序的测试过程进行控制。
参见图4,是本发明提供的应用程序性能测试装置的另一个实施例的结构图;本实施例的基本原理与图2所示实施例一致,本实施例中未详述之处可参见图2所示实施例中的相关描述。
如图4所示,所述应用程序性能测试装置包括:
性能数据获取模块41,用于在应用程序测试过程中,每隔预设的第一时间间隔获取系统的性能数据,并记录所述性能数据被获取时的时间。
屏幕视频采集模块42,用于在获取所述性能数据的过程中,同步采集所述系统的屏幕视频数据,并记录所述屏幕视频数据被采集时的时间。
数据上传模块43,用于将所述性能数据、所述性能数据被获取时的时间、所述屏幕视频数据和所述屏幕视频数据被采集时的时间上传到服务器中,触发所述服务器根据所述性能数据被获取时的时间和所述屏幕视频数据被采集时的时间,建立所述屏幕视频数据与在最接近时间内获取的所述性能数据之间的关联关系;并根据所述关联关系,在所述屏幕视频数据中对异常的性能数据进行定位,获取所述性能数据发生异常时所关联的屏幕视频画面,以对所述性能数据发生异常的原因进行分析。
所述性能数据包括帧率、CPU占用、内存占用、上下行流量、设备温度、电流强度和电量消耗中的至少一种。
所述性能数据获取模块41包括:
帧率获取单元,用于获取所述系统的底层管理权限,利用所述底层管理权限调用系统服务来获取所述帧率。
所述帧率获取单元包括:
系统权限获取子单元,用于获取所述系统的底层管理权限。
刷新帧数据获取子单元,用于每隔预设的第二时间间隔,利用所述底层管理权限调用系统服务中的刷新帧数据获取命令,获取所述系统自开机运行到当前时间的刷新帧总数,并记录系统当前的时间。
帧率计算子单元,用于根据先后获取的两个刷新帧总数以及与所述两个刷新帧总数分别对应的两个时间,计算所述两个时间之间的帧率;其中,所述帧率fps=(f2-f1)/(t2-t1),f1和f2为先后获取的两个刷新帧总数,t1为与f1对应的时间,t2为与f2对应的时间。
所述屏幕视频采集模块42包括:
采集单元,用于在获取所述性能数据的过程中,通过MHL转HDMI适配器将所述屏幕视频数据发送到视频采集卡,通过所述视频采集卡对所述屏幕视频数据进行采集,并记录所述屏幕视频数据被采集时的时间。
所述数据上传模块43包括:
触发单元,用于触发所述服务器提取所有的性能数据被获取时的时间,并按先后顺序排列成时间戳数组;在对所述屏幕视频数据进行播放时,获取所述屏幕视频数据已播放的时长,将所述已播放的时长与所述屏幕视频数据被采集时的时间相加,获取当前屏幕视频画面的实际采集时间;利用二分查找算法,从所述时间戳数组中查找与所述实际采集时间最接近的时间,并获取与所述最接近的时间对应的所述性能数据,建立所述当前屏幕视频画面与获取的所述性能数据之间的关联关系。
此外,图4中虽未画出,但在具体实施当中,所述应用程序性能测试装置还可以进一步包括:
请求发送模块,用于向所述服务器发送对所述性能数据和所述屏幕视频数据的查看请求,触发所述服务器采用可视化工具对所述性能数据进行图表绘制,获取所述性能数据的数据图表;并触发所述服务器根据所述关联关系,在同一页面中通过联动的方式对所述数据图表和所述屏幕视频数据进行展示。
更进一步地,所述应用程序性能测试装置还包括:
自动化测试模块,用于通过HTTP接口接收自动化测试命令,根据所述自动化测试命令对所述应用程序的测试过程进行控制。
参见图5,是本发明提供的应用程序性能测试系统的一个实施例的结构图;本实施例的基本原理与前述实施例一致,本实施例中未详述之处前述实施例中的相关描述。
如图5所示,所述应用程序性能测试系统,包括测试端51和服务器52;
所述测试端51上设置有如图4所示实施例提供的应用程序性能测试装置。所述测试端51上设置的性能获取模块511、屏幕视频采集模块512和数据上传模块513与图4所示实施例中的相应模块一致,本实施例中不再赘述,可参见图4所示实施例中的相关描述。
所述服务器52上设置有数据关联模块521和定位分析模块522。
所述数据关联模块521,用于根据所述性能数据被获取时的时间和所述屏幕视频数据被采集时的时间,建立所述屏幕视频数据与在最接近时间内获取的所述性能数据之间的关联关系。
所述定位分析模块522,用于根据所述关联关系,在所述屏幕视频数据中对异常的性能数据进行定位,获取所述性能数据发生异常时所关联的屏幕视频画面,以对所述性能数据发生异常的原因进行分析。
综上所述,本发明通过周期性地获取应用程序测试过程中系统的性能数据,并同步采集所述系统的屏幕视频数据,依据所述性能数据被获取时的时间和所述屏幕视频数据被采集时的时间,建立所述性能数据和所述屏幕视频数据之间的关联关系,在所述屏幕视频数据中对异常的性能数据进行定位,获取所述性能数据发生异常时所关联的屏幕视频画面。通过性能数据和屏幕视频数据的对照分析,根据二者的关联关系在所述屏幕视频数据中对性能异常的位置进行定位,获取性能数据发生异常时所关联的屏幕视频画面,测试人员可根据所述屏幕视频画面清楚地知道性能数据发生异常时应用程序的运行情况,有助于分析出性能数据波动或者性能瓶颈产生的原因,为应用程序的优化和改进提供可靠的数据支持。
进一步地,本发明通过获取系统的底层管理权限调取系统服务的方式来获取帧率数据,在一定程度上降低了代码编写的难度,简化了帧率数据获取的过程。
需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本发明而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (29)
1.一种应用程序性能测试方法,其特征在于,包括:
在应用程序测试过程中,每隔预设的第一时间间隔获取系统的性能数据,并记录所述性能数据被获取时的时间;
在获取所述性能数据的过程中,同步采集所述系统的屏幕视频数据,并记录所述屏幕视频数据被采集时的时间;
根据所述性能数据被获取时的时间和所述屏幕视频数据被采集时的时间,建立所述屏幕视频数据与在最接近时间内获取的所述性能数据之间的关联关系;
根据所述关联关系,在所述屏幕视频数据中对异常的性能数据进行定位,获取所述性能数据发生异常时所关联的屏幕视频画面,以对所述性能数据发生异常的原因进行分析;
其中,所述根据所述性能数据被获取时的时间和所述屏幕视频数据被采集时的时间,建立所述屏幕视频数据与在最接近时间内获取的所述性能数据之间的关联关系,具体为:
提取所有的性能数据被获取时的时间,并按先后顺序排列成时间戳数组;
在对所述屏幕视频数据进行播放时,获取所述屏幕视频数据已播放的时长,将所述已播放的时长与所述屏幕视频数据被采集时的时间相加,获取当前屏幕视频画面的实际采集时间;
利用二分查找算法,从所述时间戳数组中查找与所述实际采集时间最接近的时间,并获取与所述最接近的时间对应的所述性能数据,建立所述当前屏幕视频画面与获取的所述性能数据之间的关联关系。
2.如权利要求1所述的应用程序性能测试方法,其特征在于,所述性能数据包括帧率、CPU占用、内存占用、上下行流量、设备温度、电流强度和电量消耗中的至少一种。
3.如权利要求2所述的应用程序性能测试方法,其特征在于,所述帧率通过以下步骤获取:
获取所述系统的底层管理权限,利用所述底层管理权限调用系统服务来获取所述帧率。
4.如权利要求3所述的应用程序性能测试方法,其特征在于,所述获取所述系统的底层管理权限,利用所述底层管理权限调用系统服务来获取所述帧率,具体为:
获取所述系统的底层管理权限;
每隔预设的第二时间间隔,利用所述底层管理权限调用系统服务中的刷新帧数据获取命令,获取所述系统自开机运行到当前时间的刷新帧总数,并记录系统当前的时间;
根据先后获取的两个刷新帧总数以及与所述两个刷新帧总数分别对应的两个时间,计算所述两个时间之间的帧率;其中,所述帧率fps=(f2-f1)/(t2-t1),f1和f2为先后获取的两个刷新帧总数,t1为与f1对应的时间,t2为与f2对应的时间。
5.如权利要求1所述的应用程序性能测试方法,其特征在于,所述在获取所述性能数据的过程中,同步采集所述系统的屏幕视频数据,并记录所述屏幕视频数据被采集时的时间,具体为:
在获取所述性能数据的过程中,通过MHL转HDMI适配器将所述屏幕视频数据发送到视频采集卡,通过所述视频采集卡对所述屏幕视频数据进行采集,并记录所述屏幕视频数据被采集时的时间。
6.如权利要求1到5任一项所述的应用程序性能测试方法,其特征在于,在所述根据所述性能数据被获取时的时间和所述屏幕视频数据被采集时的时间,建立所述屏幕视频数据与在最接近时间内获取的所述性能数据之间的关联关系之后,还包括:
采用可视化工具对所述性能数据进行图表绘制,获取所述性能数据的数据图表;
根据所述关联关系,在同一页面中通过联动的方式对所述数据图表和所述屏幕视频数据进行展示。
7.如权利要求1到5任一项所述的应用程序性能测试方法,其特征在于,所述方法还包括:
通过HTTP接口接收自动化测试命令,根据所述自动化测试命令对所述应用程序的测试过程进行控制。
8.一种应用程序性能测试方法,其特征在于,包括:
在应用程序测试过程中,每隔预设的第一时间间隔获取系统的性能数据,并记录所述性能数据被获取时的时间;
在获取所述性能数据的过程中,同步采集所述系统的屏幕视频数据,并记录所述屏幕视频数据被采集时的时间;
将所述性能数据、所述性能数据被获取时的时间、所述屏幕视频数据和所述屏幕视频数据被采集时的时间上传到服务器中,触发所述服务器根据所述性能数据被获取时的时间和所述屏幕视频数据被采集时的时间,建立所述屏幕视频数据与在最接近时间内获取的所述性能数据之间的关联关系;并根据所述关联关系,在所述屏幕视频数据中对异常的性能数据进行定位,获取所述性能数据发生异常时所关联的屏幕视频画面,以对所述性能数据发生异常的原因进行分析;
其中,所述触发所述服务器根据所述性能数据被获取时的时间和所述屏幕视频数据被采集时的时间,建立所述屏幕视频数据与在最接近时间下获取的所述性能数据之间的关联关系,具体为:
触发所述服务器提取所有的性能数据被获取时的时间,并按先后顺序排列成时间戳数组;在对所述屏幕视频数据进行播放时,获取所述屏幕视频数据已播放的时长,将所述已播放的时长与所述屏幕视频数据被采集时的时间相加,获取当前屏幕视频画面的实际采集时间;利用二分查找算法,从所述时间戳数组中查找与所述实际采集时间最接近的时间,并获取与所述最接近的时间对应的所述性能数据,建立所述当前屏幕视频画面与获取的所述性能数据之间的关联关系。
9.如权利要求8所述的应用程序性能测试方法,其特征在于,所述性能数据包括帧率、CPU占用、内存占用、上下行流量、设备温度、电流强度和电量消耗中的至少一种。
10.如权利要求9所述的应用程序性能测试方法,其特征在于,所述帧率通过以下步骤获取:
获取所述系统的底层管理权限,利用所述底层管理权限调用系统服务来获取所述帧率。
11.如权利要求10所述的应用程序性能测试方法,其特征在于,所述获取所述系统的底层管理权限,利用所述底层管理权限调用系统服务来获取所述帧率,具体为:
获取所述系统的底层管理权限;
每隔预设的第二时间间隔,利用所述底层管理权限调用系统服务中的刷新帧数据获取命令,获取所述系统自开机运行到当前时间的刷新帧总数,并记录系统当前的时间;
根据先后获取的两个刷新帧总数以及与所述两个刷新帧总数分别对应的两个时间,计算所述两个时间之间的帧率;其中,所述帧率fps=(f2-f1)/(t2-t1),f1和f2为先后获取的两个刷新帧总数,t1为与f1对应的时间,t2为与f2对应的时间。
12.如权利要求8所述的应用程序性能测试方法,其特征在于,所述在获取所述性能数据的过程中,同步采集所述系统的屏幕视频数据,并记录采集所述屏幕视频数据的时间,具体为:
在获取所述性能数据的过程中,通过MHL转HDMI适配器将所述屏幕视频数据发送到视频采集卡,通过所述视频采集卡对所述屏幕视频数据进行采集,并记录所述屏幕视频数据被采集时的时间。
13.如权利要求8到12任一项所述的应用程序性能测试方法,其特征在于,在所述触发所述服务器根据所述性能数据被获取时的时间和所述屏幕视频数据被采集时的时间,建立所述屏幕视频数据与在最接近时间内获取的所述性能数据之间的关联关系之后,还包括:
向所述服务器发送对所述性能数据和所述屏幕视频数据的查看请求,触发所述服务器采用可视化工具对所述性能数据进行图表绘制,获取所述性能数据的数据图表;并触发所述服务器根据所述关联关系,在同一页面中通过联动的方式对所述数据图表和所述屏幕视频数据进行展示。
14.如权利要求8到12任一项所述的应用程序性能测试方法,所述方法还包括:
通过HTTP接口接收自动化测试命令,根据所述自动化测试命令对所述应用程序的测试过程进行控制。
15.一种应用程序性能测试装置,其特征在于,包括:
性能数据获取模块,用于在应用程序测试过程中,每隔预设的第一时间间隔获取系统的性能数据,并记录所述性能数据被获取时的时间;
屏幕视频采集模块,用于在获取所述性能数据的过程中,同步采集所述系统的屏幕视频数据,并记录所述屏幕视频数据被采集时的时间;
数据关联模块,用于根据所述性能数据被获取时的时间和所述屏幕视频数据被采集时的时间,建立所述屏幕视频数据与在最接近时间内获取的所述性能数据之间的关联关系;
定位分析模块,用于根据所述关联关系,在所述屏幕视频数据中对异常的性能数据进行定位,获取所述性能数据发生异常时所关联的屏幕视频画面,以对所述性能数据发生异常的原因进行分析;
其中,所述数据关联模块包括:
提取单元,用于提取所有的性能数据被获取时的时间,并按先后顺序排列成时间戳数组;
计算单元,用于在对所述屏幕视频数据进行播放时,获取所述屏幕视频数据已播放的时长,将所述已播放的时长与所述屏幕视频数据被采集时的时间相加,获取当前屏幕视频画面的实际采集时间;
查找单元,用于利用二分查找算法,从所述时间戳数组中查找与所述实际采集时间最接近的时间,并获取与所述最接近的时间对应的所述性能数据,建立所述当前屏幕视频画面与获取的所述性能数据之间的关联关系。
16.如权利要求15所述的应用程序性能测试装置,其特征在于,所述性能数据包括帧率、CPU占用、内存占用、上下行流量、设备温度、电流强度和电量消耗中的至少一种。
17.如权利要求16所述的应用程序性能测试装置,其特征在于,所述性能数据获取模块包括:
帧率获取单元,用于获取所述系统的底层管理权限,利用所述底层管理权限调用系统服务来获取所述帧率。
18.如权利要求17所述的应用程序性能测试装置,其特征在于,所述帧率获取单元包括:
系统权限获取子单元,用于获取所述系统的底层管理权限;
刷新帧数据获取子单元,用于每隔预设的第二时间间隔,利用所述底层管理权限调用系统服务中的刷新帧数据获取命令,获取所述系统自开机运行到当前时间的刷新帧总数,并记录系统当前的时间;
帧率计算子单元,用于根据先后获取的两个刷新帧总数以及与所述两个刷新帧总数分别对应的两个时间,计算所述两个时间之间的帧率;其中,所述帧率fps=(f2-f1)/(t2-t1),f1和f2为先后获取的两个刷新帧总数,t1为与f1对应的时间,t2为与f2对应的时间。
19.如权利要求15所述的应用程序性能测试装置,其特征在于,所述屏幕视频采集模块包括:
采集单元,用于在获取所述性能数据的过程中,通过MHL转HDMI适配器将所述屏幕视频数据发送到视频采集卡,通过所述视频采集卡对所述屏幕视频数据进行采集,并记录所述屏幕视频数据被采集时的时间。
20.如权利要求15到19任一项所述的应用程序性能测试装置,其特征在于,所述装置还包括:
图表绘制模块,用于采用可视化工具对所述性能数据进行图表绘制,获取所述性能数据的数据图表;
联动展示模块,用于根据所述关联关系,在同一页面中通过联动的方式对所述数据图表和所述屏幕视频数据进行展示。
21.如权利要求15到19任一项所述的应用程序性能测试装置,其特征在于,所述装置还包括:
自动化测试模块,用于通过HTTP接口接收自动化测试命令,根据所述自动化测试命令对所述应用程序的测试过程进行控制。
22.一种应用程序性能测试装置,其特征在于,包括:
性能数据获取模块,用于在应用程序测试过程中,每隔预设的第一时间间隔获取系统的性能数据,并记录所述性能数据被获取时的时间;
屏幕视频采集模块,用于在获取所述性能数据的过程中,同步采集所述系统的屏幕视频数据,并记录所述屏幕视频数据被采集时的时间;
数据上传模块,用于将所述性能数据、所述性能数据被获取时的时间、所述屏幕视频数据和所述屏幕视频数据被采集时的时间上传到服务器中,触发所述服务器根据所述性能数据被获取时的时间和所述屏幕视频数据被采集时的时间,建立所述屏幕视频数据与在最接近时间内获取的所述性能数据之间的关联关系;并根据所述关联关系,在所述屏幕视频数据中对异常的性能数据进行定位,获取所述性能数据发生异常时所关联的屏幕视频画面,以对所述性能数据发生异常的原因进行分析;
其中,所述数据上传模块包括:
触发单元,用于触发所述服务器提取所有的性能数据被获取时的时间,并按先后顺序排列成时间戳数组;在对所述屏幕视频数据进行播放时,获取所述屏幕视频数据已播放的时长,将所述已播放的时长与所述屏幕视频数据被采集时的时间相加,获取当前屏幕视频画面的实际采集时间;利用二分查找算法,从所述时间戳数组中查找与所述实际采集时间最接近的时间,并获取与所述最接近的时间对应的所述性能数据,建立所述当前屏幕视频画面与获取的所述性能数据之间的关联关系。
23.如权利要求22所述的应用程序性能测试装置,其特征在于,所述性能数据包括帧率、CPU占用、内存占用、上下行流量、设备温度、电流强度和电量消耗中的至少一种。
24.如权利要求23所述的应用程序性能测试装置,其特征在于,所述性能数据获取模块包括:
帧率获取单元,用于获取所述系统的底层管理权限,利用所述底层管理权限调用系统服务来获取所述帧率。
25.如权利要求24所述的应用程序性能测试装置,其特征在于,所述帧率获取单元包括:
系统权限获取子单元,用于获取所述系统的底层管理权限;
刷新帧数据获取子单元,用于每隔预设的第二时间间隔,利用所述底层管理权限调用系统服务中的刷新帧数据获取命令,获取所述系统自开机运行到当前时间的刷新帧总数,并记录系统当前的时间;
帧率计算子单元,用于根据先后获取的两个刷新帧总数以及与所述两个刷新帧总数分别对应的两个时间,计算所述两个时间之间的帧率;其中,所述帧率fps=(f2-f1)/(t2-t1),f1和f2为先后获取的两个刷新帧总数,t1为与f1对应的时间,t2为与f2对应的时间。
26.如权利要求22所述的应用程序性能测试装置,其特征在于,所述屏幕视频采集模块包括:
采集单元,用于在获取所述性能数据的过程中,通过MHL转HDMI适配器将所述屏幕视频数据发送到视频采集卡,通过所述视频采集卡对所述屏幕视频数据进行采集,并记录所述屏幕视频数据被采集时的时间。
27.如权利要求22到26任一项所述的应用程序性能测试装置,其特征在于,所述装置还包括:
请求发送模块,用于向所述服务器发送对所述性能数据和所述屏幕视频数据的查看请求,触发所述服务器采用可视化工具对所述性能数据进行图表绘制,获取所述性能数据的数据图表;并触发所述服务器根据所述关联关系,在同一页面中通过联动的方式对所述数据图表和所述屏幕视频数据进行展示。
28.如权利要求22到26任一项所述的应用程序性能测试装置,其特征在于,所述装置还包括:
自动化测试模块,用于通过HTTP接口接收自动化测试命令,根据所述自动化测试命令对所述应用程序的测试过程进行控制。
29.一种应用程序性能测试系统,其特征在于,包括测试端和服务器;
所述测试端上设置有如权利要求22到28任一项所述的应用程序性能测试装置;
所述服务器上设置有数据关联模块和定位分析模块;
所述数据关联模块,用于根据所述性能数据被获取时的时间和所述屏幕视频数据被采集时的时间,建立所述屏幕视频数据与在最接近时间内获取的所述性能数据之间的关联关系;
所述定位分析模块,用于根据所述关联关系,在所述屏幕视频数据中对异常的性能数据进行定位,获取所述性能数据发生异常时所关联的屏幕视频画面,以对所述性能数据发生异常的原因进行分析。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511031372.1A CN105653456B (zh) | 2015-12-31 | 2015-12-31 | 应用程序性能测试方法、装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511031372.1A CN105653456B (zh) | 2015-12-31 | 2015-12-31 | 应用程序性能测试方法、装置和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105653456A CN105653456A (zh) | 2016-06-08 |
CN105653456B true CN105653456B (zh) | 2018-09-11 |
Family
ID=56491209
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201511031372.1A Active CN105653456B (zh) | 2015-12-31 | 2015-12-31 | 应用程序性能测试方法、装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105653456B (zh) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107783886A (zh) * | 2016-08-25 | 2018-03-09 | 平安科技(深圳)有限公司 | 一种获取运行帧率的方法及终端 |
CN106354644B (zh) * | 2016-08-30 | 2018-12-14 | 北京深思数盾科技股份有限公司 | 应用程序性能测试方法、装置和系统 |
CN106339321B (zh) * | 2016-09-09 | 2018-04-27 | 腾讯科技(深圳)有限公司 | 一种应用程序性能测试方法及装置 |
CN106603787B (zh) * | 2016-11-29 | 2019-11-19 | 努比亚技术有限公司 | 一种终端测试方法、装置及终端 |
CN106789209B (zh) * | 2016-12-09 | 2020-08-25 | 网易(杭州)网络有限公司 | 异常处理方法和装置 |
CN106802935B (zh) * | 2016-12-29 | 2020-08-04 | 腾讯科技(深圳)有限公司 | 一种页面流畅度的测试方法和装置 |
CN106776259B (zh) * | 2017-01-10 | 2020-03-10 | Oppo广东移动通信有限公司 | 一种移动终端帧率检测方法、装置及移动终端 |
CN106970875B (zh) * | 2017-03-01 | 2019-08-27 | 福建天晴数码有限公司 | 虚拟现实软件的帧率测试方法及其系统 |
CN107273124A (zh) * | 2017-06-12 | 2017-10-20 | 北京奇虎科技有限公司 | 软件运行性能信息的处理方法、装置及系统 |
CN107368410B (zh) * | 2017-06-14 | 2021-02-19 | 腾讯科技(深圳)有限公司 | 游戏引擎的性能测试方法和装置、存储介质及电子装置 |
CN109298995B (zh) * | 2017-07-24 | 2022-05-13 | 北京搜狗科技发展有限公司 | 一种性能测试方法、装置、电子设备以及存储介质 |
CN107436840A (zh) * | 2017-08-01 | 2017-12-05 | 北京奇虎科技有限公司 | 应用程序运行性能分析方法、装置及系统 |
CN107463714A (zh) * | 2017-08-24 | 2017-12-12 | 北京工业大学 | 一种基于证据链时间序列的关键证据二分搜索方法 |
CN107690077B (zh) * | 2017-09-05 | 2021-02-26 | 北京京东尚科信息技术有限公司 | 监测视频直播卡顿的方法和装置 |
CN109815102B (zh) * | 2019-01-21 | 2022-10-11 | 武汉斗鱼鱼乐网络科技有限公司 | 一种测试数据统计方法、装置和存储介质 |
CN109996117B (zh) * | 2019-03-04 | 2021-08-24 | 青岛海信传媒网络技术有限公司 | 一种获取流媒体播放时长的方法和装置 |
CN111045908A (zh) * | 2019-12-13 | 2020-04-21 | 深圳前海环融联易信息科技服务有限公司 | 系统性能监控方法、装置及计算机设备 |
CN112000565B (zh) * | 2020-10-28 | 2021-07-23 | 浙江口碑网络技术有限公司 | 数据展示方法、装置、计算机设备及计算机可读存储介质 |
CN112363898B (zh) * | 2020-11-10 | 2022-12-06 | 上海莉莉丝科技股份有限公司 | 一种用于用户设备的性能采集方法、系统及存储介质 |
CN112653921B (zh) * | 2020-12-24 | 2023-07-04 | 广州市刑事科学技术研究所 | 应用程序网络行为数据分析方法、计算机设备和存储介质 |
CN113553267B (zh) * | 2021-07-22 | 2024-08-13 | 招商银行股份有限公司 | 应用性能测试方法、设备、介质及计算机程序产品 |
CN115379296B (zh) * | 2022-08-17 | 2024-03-19 | 在线途游(北京)科技有限公司 | 一种基于帧同步的数据校验方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104536888A (zh) * | 2014-12-24 | 2015-04-22 | 网易(杭州)网络有限公司 | 移动设备的游戏测试方法与系统 |
CN104572086A (zh) * | 2014-12-24 | 2015-04-29 | 惠州Tcl移动通信有限公司 | 基于安卓设备的fps值获取方法及获取系统 |
CN104967904A (zh) * | 2014-04-10 | 2015-10-07 | 腾讯科技(深圳)有限公司 | 终端视频录制回放的方法及装置 |
CN105204981A (zh) * | 2014-05-28 | 2015-12-30 | 北京奇虎科技有限公司 | 应用性能测试方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10445166B2 (en) * | 2014-06-24 | 2019-10-15 | International Business Machines Corporation | System verification of interactive screenshots and log files between client systems and server systems within a network computing environment |
-
2015
- 2015-12-31 CN CN201511031372.1A patent/CN105653456B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104967904A (zh) * | 2014-04-10 | 2015-10-07 | 腾讯科技(深圳)有限公司 | 终端视频录制回放的方法及装置 |
CN105204981A (zh) * | 2014-05-28 | 2015-12-30 | 北京奇虎科技有限公司 | 应用性能测试方法和装置 |
CN104536888A (zh) * | 2014-12-24 | 2015-04-22 | 网易(杭州)网络有限公司 | 移动设备的游戏测试方法与系统 |
CN104572086A (zh) * | 2014-12-24 | 2015-04-29 | 惠州Tcl移动通信有限公司 | 基于安卓设备的fps值获取方法及获取系统 |
Also Published As
Publication number | Publication date |
---|---|
CN105653456A (zh) | 2016-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105653456B (zh) | 应用程序性能测试方法、装置和系统 | |
US10248863B2 (en) | Augemented video analytics for testing internet of things (IoT) devices | |
US10453493B2 (en) | Method and apparatus for recording and replaying video of terminal | |
US9615112B2 (en) | Method, system, player and mobile terminal for online video playback | |
US10019058B2 (en) | Information processing device and information processing method | |
US10592377B2 (en) | Website performance tracking | |
CN104320325B (zh) | 一种消息推送方法及装置 | |
US20130335447A1 (en) | Electronic device and method for playing real-time images in a virtual reality | |
CN103731631A (zh) | 一种传输视频图像的方法、装置及系统 | |
CN104735473A (zh) | 一种视频流播放的检测方法及装置 | |
CN111095939A (zh) | 识别媒体项目的先前流传输部分以避免重复重放 | |
WO2015185022A1 (zh) | 一种提取dvr硬盘中残余视频和被删除视频的装置和方法 | |
CN102905102A (zh) | 一种抓图视频播放器及抓图方法 | |
CN113473086A (zh) | 视频播放的方法、装置、电子设备、智慧高速大屏 | |
CN105893246A (zh) | 播放器测试方法、装置及系统 | |
CN105515916A (zh) | 老化测试监控方法及装置 | |
WO2018140434A1 (en) | Systems and methods for creating video compositions | |
CN103729258B (zh) | 一种自动测试方法、终端及系统 | |
CN114419502A (zh) | 一种数据分析方法、装置及存储介质 | |
CN113824987A (zh) | 直播间首帧耗时的确定方法、介质、装置和计算设备 | |
CN110209539A (zh) | 一种测试方法、终端设备以及测试器 | |
CN109600571B (zh) | 多媒体资源传输测试系统和多媒体资源传输测试方法 | |
CN103995718A (zh) | 程序的信息收集方法和装置 | |
CN110806909A (zh) | 一种应用程序页面掉帧信息确定方法、装置及电子设备 | |
US10049158B1 (en) | Analyzing user behavior relative to media content |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |