本发明涉及性能测试技术领域,更具体的说,是涉及一种应用程序性能测试方法及装置。
背景技术:
unity引擎作为一款游戏开发工具,可开发各种手机游戏。目前多采用由unity官方提供的profiler工具对由unity引擎开发的游戏进行性能测试。具体的,以由unity引擎开发的手机游戏A为例,首先需要将手机端与电脑端通过unity引擎专用的连接线连接,其中,手机端需要安装手机游戏A的特定编译版本,电脑端需要安装unity profiler工具,然后,启动电脑端安装的unity profiler工具对手机端运行的手机游戏A的性能进行测试,最后,将测试数据通过unity profiler工具的数据展示界面展示给测试人员,由测试人员人工分析手机游戏A的性能。
但是,在现有技术中,unity profiler工具将测试数据展示给测试人员时,每次只能展示一小段时间内的测试数据,由于unity profiler工具不具备存储或导出测试数据的功能,因此,当下一小段时间内的测试数据展示时,上一小段时间内的测试数据将会消失,也就是说,测试人员每次只能看到一小段时间内的测试数据,无法获取完整的测试数据,这种情况下,无疑会导致测试结果不准确。
可见,现有技术中,采用由unity官方提供的profiler工具对由unity引擎开发的游戏进行性能测试,由于无法获取完整的测试数据,导致测试结果不准确。
技术实现要素:
有鉴于此,本发明提供了一种应用程序性能测试方法及装置,以克服现有技术中采用由unity官方提供的profiler工具对由unity引擎开发的游戏进行性能测试,由于无法获取完整的测试数据,导致测试结果不准确的问题。
为实现上述目的,本发明提供如下技术方案:
一种应用程序性能测试方法,所述方法包括:
向目标应用程序发送测试命令,所述测试命令用于指示所述目标应用程序上报性能数据消息至目标端口;
获取所述目标应用程序上报至目标端口的性能数据消息;
破解所述目标应用程序上报至目标端口的性能数据消息,生成所述目标应用程序的性能数据;
将所述目标应用程序的性能数据上报至数据库服务器,以使所述数据库服务器根据所述目标应用程序的性能数据对所述目标应用程序进行性能分析。
本发明实施例还提供一种应用程序性能测试方法,所述方法包括:
接收测试工具上报的目标应用程序的性能数据;
根据所述目标应用程序的性能数据对所述目标应用程序进行性能分析,生成分析结果。
本发明实施例还提供一种应用程序性能测试装置,所述装置包括:
发送模块,用于向目标应用程序发送测试命令,所述测试命令用于指示所述目标应用程序上报性能数据消息至目标端口;
获取模块,用于获取所述目标应用程序上报至目标端口的性能数据消息;
破解模块,用于破解所述目标应用程序上报至目标端口的性能数据消息,生成所述目标应用程序的性能数据;
上报模块,用于将所述目标应用程序的性能数据上报至数据库服务器,以使所述数据库服务器根据所述目标应用程序的性能数据对所述目标应用程序进行性能分析。
本发明实施例还提供一种应用程序性能测试装置,所述装置包括:
接收模块,用于接收测试工具上报的目标应用程序的性能数据;
分析模块,用于根据所述目标应用程序的性能数据对所述目标应用程序进行性能分析,生成分析结果。
经由上述的技术方案可知,与现有技术相比,本发明提供了一种应用程序性能测试方法及装置,向目标应用程序发送测试命令,所述测试命令用于指示所述目标应用程序上报性能数据消息至目标端口;获取所述目标应用程序上报至目标端口的性能数据消息;破解所述目标应用程序上报至目标端口的性能数据消息,生成所述目标应用程序的性能数据;将所述目标应用程序的性能数据上报至数据库服务器,以使所述数据库服务器根据所述目标应用程序的性能数据对所述目标应用程序进行性能分析。上述方法及装置,通过将所述目标应用程序的性能数据上报至数据库服务器,能够使数据库服务器获取完整的测试数据并据其对目标应用程序进行性能分析,保证了应用程序性能测试结果的准确性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的应用程序性能测试系统的结构示意图;
图2为本发明实施例提供的应用程序性能测试方法的信令流程图;
图3为本发明实施例提供的应用程序性能测试方法的流程图;
图4为本发明实施例提供的在向目标应用程序发送测试命令之前的配置方法流程图;
图5为本发明实施例提供的应用程序性能测试方法的另一流程图;
图6为本发明实施例提供的应用程序性能测试方法的另一流程图;
图7为本发明实施例提供的应用程序性能测试装置的结构框图;
图8为本发明实施例提供的应用程序性能测试装置的另一结构图;
图9为本发明实施例提供的应用程序性能测试装置的硬件结构框图;
图10为本发明实施例提供的应用程序性能测试装置的另一结构框图;
图11为本发明实施例提供的应用程序性能测试装置的硬件结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的发明人发现,现有技术中采用由unity官方提供的profiler工具对由unity引擎开发的游戏进行性能测试,由于无法获取完整的测试数据,导致测试结果不准确,因此,亟需一种应用程序性能测试方法,以提高测试结果的准确性。
本发明实施例中公开的技术方案为了解决上述问题,提供了一种应用程序性能测试方法及装置,向目标应用程序发送测试命令,所述测试命令用于指示所述目标应用程序上报性能数据消息至目标端口;获取所述目标应用程序上报至目标端口的性能数据消息;破解所述目标应用程序上报至目标端口的性能数据消息,生成所述目标应用程序的性能数据;将所述目标应用程序的性能数据上报至数据库服务器,以使所述数据库服务器根据所述目标应用程序的性能数据对所述目标应用程序进行性能分析。上述方法及装置,通过将所述目标应用程序的性能数据上报至数据库服务器,能够使数据库服务器获取完整的测试数据并据其对目标应用程序进行性能分析,保证了应用程序性能测试结果的准确性。
图1为本发明实施例提供的应用程序性能测试系统的结构示意图,本发明实施例提供的应用程序性能测试方法可由该应用程序性能测试系统实施;参照图1,该应用程序性能测试系统可以包括:应用程序的客户端10、测试工具的客户端20,数据库服务器30以及互联网服务器40。
其中,应用程序的客户端10具体可以为手机、平板电脑等,其上安装有待测试的目标应用程序。
测试工具的客户端20具体可以为计算机等,其上安装有用于对目标应用程序的性能进行测试的测试工具。其可以通过USB数据线与应用程序的客户端10连接,也可以通过无线的方式与应用程序的客户端10连接。当其通过USB数据线与应用程序的客户端10连接时,能够接收应用程序的客户端10发送的adb消息格式的性能数据消息,当其通过无线的方式与应用程序的客户端10连接时,能够接收应用程序的客户端10发送的scocket消息格式的性能数据消息。
数据库服务器30具备通过网络与测试工具的客户端20进行通信的功能,能够接收测试工具的客户端20上报的目标应用程序的性能数据,并且,数据库服务器30具备对目标应用程序的性能数据进行存储和分析的功能。
互联网服务器40具备通过网络与数据库服务器30进行通信的功能,能够从数据库服务器30中获取目标应用程序的性能分析结果。
基于图1所示的应用程序性能测试系统,图2示出了本发明实施例提供的应用程序性能测试方法的信令流程图,参照图2,该流程可以包括:
步骤S10、测试工具的客户端向应用程序的客户端发送测试命令,所述测试命令用于指示应用程序的客户端安装的目标应用程序上报性能数据消息至测试工具的客户端的目标端口。
步骤S11、应用程序的客户端的目标应用程序将性能数据消息上报至的目标端口。
步骤S12、测试工具的客户端破解所述目标应用程序上报至目标端口的性能数据消息,生成所述目标应用程序的性能数据。
步骤S13、测试工具的客户端将所述目标应用程序的性能数据上报至数据库服务器。
步骤S14、数据库服务器根据所述目标应用程序的性能数据对所述目标应用程序进行性能分析,生成分析结果。
步骤S15、数据库服务器接收互联网服务器发送的分析结果获取请求。
步骤S16、数据库服务器将所述分析结果反馈至互联网服务器。
步骤S17、互联网服务器将所述分析结果以网页的形式展示给测试人员。
本发明实施例提供的应用程序性能测试方法,测试工具的客户端向应用程序的客户端发送测试命令,所述测试命令用于指示应用程序的客户端安装的目标应用程序上报性能数据消息至测试工具的客户端的目标端口,应用程序的客户端的目标应用程序将性能数据消息上报至的目标端口,测试工具的客户端破解所述目标应用程序上报至目标端口的性能数据消息,生成所述目标应用程序的性能数据,测试工具的客户端将所述目标应用程序的性能数据上报至数据库服务器,数据库服务器根据所述目标应用程序的性能数据对所述目标应用程序进行性能分析,生成分析结果,数据库服务器接收互联网服务器发送的分析结果获取请求,数据库服务器将所述分析结果反馈至互联网服务器,互联网服务器将所述分析结果以网页的形式展示给测试人员,进而保证了应用程序性能测试结果的准确性。
下面以测试工具的客户端的角度,对本发明实施例提供的应用程序性能测试方法进行介绍,下文描述的应用程序性能测试方法可与上文描述的信令流程内容相互对应参照。
图3为本发明实施例提供的应用程序性能测试方法的流程图,该方法可应用于所述测试工具的客户端,参照图3,所述方法可以包括:
步骤S100、向目标应用程序发送测试命令,所述测试命令用于指示所述目标应用程序上报性能数据消息至目标端口。
目标端口为本实施例中测试工具的客户端安装的测试工具中用于接收性能数据消息的端口。
步骤S101、获取所述目标应用程序上报至目标端口的性能数据消息。
步骤S102、破解所述目标应用程序上报至目标端口的性能数据消息,生成所述目标应用程序的性能数据。
具体的,可通过对照unity profiler工具的测试数据展示界面,以及大量的采样数据分析破解性能数据消息的结构,生成一种破解规则,之后,每次收到所述目标应用程序上报至目标端口的一个性能数据消息,均可以根据该破解规则对该性能数据消息进行破解。
优选的,所述生成所述目标应用程序的性能数据,包括:剔除所述目标应用程序上报至目标端口的性能数据消息中包含的数据中的冗余数据,保留所述目标应用程序上报至目标端口的性能数据消息中包含的数据中的性能数据作为所述目标应用程序的性能数据。
步骤S103、将所述目标应用程序的性能数据上报至数据库服务器,以使所述数据库服务器根据所述目标应用程序的性能数据对所述目标应用程序进行性能分析。
在本实施例中,是获取到一个性能数据消息,就对该消息进行破解生成性能数据,然后将性能数据上报至数据库服务器。数据库服务器是接收到所有的性能数据之后,进行整体分析。
优选的,所述将所述目标应用程序的性能数据上报至数据库服务器,包括:为所述目标应用程序的性能数据添加用于表示所述目标应用程序的性能数据的类别的标识;将添加标识后的目标应用程序的性能数据上报至数据库服务器,以使所述数据库服务器根据所述标识将所述目标应用程序的性能数据进行分类并根据分类后的目标应用程序的性能数据对所述目标应用程序进行性能分析。
本发明实施例提供的应用程序性能测试方法,向目标应用程序发送测试命令,所述测试命令用于指示所述目标应用程序上报性能数据消息至目标端口;获取所述目标应用程序上报至目标端口的性能数据消息;破解所述目标应用程序上报至目标端口的性能数据消息,生成所述目标应用程序的性能数据;将所述目标应用程序的性能数据上报至数据库服务器,以使所述数据库服务器根据所述目标应用程序的性能数据对所述目标应用程序进行性能分析,进而保证了应用程序性能测试结果的准确性。
现有技术中,采用由unity官方提供的profiler工具对由unity引擎开发的应用程序进行性能测试时,若想应用程序能够支持生成性能数据必须开发特定的编译版本,为解决这个技术瓶颈,本发明实施例在向目标应用程序发送测试命令之前增加了一种配置方式。具体的,图4示出了本发明实施例提供的在向目标应用程序发送测试命令之前的配置方法流程图,参照图4,该方法可以包括:
步骤S200、获取所述目标应用程序的进程名。
步骤S201、根据所述目标应用程序的进程名确定所述目标应用程序的运行目录。
步骤S202、根据所述目标应用程序的运行目录确定所述目标应用程序对应的开发工具版本。
在本实施例中,目标应用程序对应的开发工具版本具体为unity引擎的版本。
步骤S203、调取与所述目标应用程序对应的开发工具版本匹配的通用动态链接库文件,所述通用动态链接库文件中包括用于触发所述目标应用程序生成性能数据消息的函数。
不同的unity引擎的版本对应不同的通用动态链接库文件,在本实施例中,在确定目标应用程序对应的开发版本后,需要调取与所述目标应用程序对应的开发工具版本匹配的通用动态链接库文件。
正常情况下,需要目标应用程序能够支持生成性能数据必须在编译版本时开启“development”选项才可以,本实施例中,可通过使用开启该选项的空工程生成“libunity.so”文件,libunity.so文件即可认为是本实施例中所述的通用动态链接库文件。
步骤S204、用所述通用动态链接库文件替换所述目标应用程序的运行目录中相应的动态链接库文件,以使所述目标应用程序在执行到所述通用动态链接库文件中用于触发所述目标应用程序生成性能数据消息的函数时生成性能数据消息。
下面以数据库服务器的角度对本发明实施例提供的应用程序性能测试方法进行介绍,下文描述的应用程序性能测试方法可与上文描述的信令流程内容,及测试工具的客户端角度描述的应用程序性能测试方法相互对应参照。
图5为本发明实施例提供的应用程序性能测试方法的另一流程图,该方法可应用于数据库服务器,该方法需要与上面描述的测试工具的客户端角度的应用程序性能测试方法结合应用实现应用程序性能测试。参照图5,该方法可以包括:
步骤S300、接收测试工具上报的目标应用程序的性能数据。
步骤S301、根据所述目标应用程序的性能数据对所述目标应用程序进行性能分析,生成分析结果。
优选的,图6示出了本发明实施例提供的应用程序性能测试方法的另一流程图,参照图6,该方法可以包括:
步骤S400、接收测试工具上报的目标应用程序的性能数据。
步骤S401、根据测试工具上报的目标应用程序的性能数据中用于表示所述目标应用程序的性能数据的类别的标识将所述目标应用程序的性能数据进行分类。
步骤S402、根据分类后的目标应用程序的性能数据对所述目标应用程序进行性能分析,生成分析结果。
步骤S403、接收互联网服务器发送的分析结果获取请求。
步骤S404、将所述分析结果反馈至互联网服务器,以使测试人员通过网页查看所述分析结果。
本发明实施例提供的应用程序性能测试方法的应用例可以如下:
手机游戏A是通过unity引擎开发的,现有技术中,如果需要对手机游戏A的CPU性能进行测试,则只能采用由unity官方提供的profiler工具,但是,这种方式由于无法获取完整的CPU测试数据,导致对手机游戏A的CPU性能测试结果不准确。
采用本发明实施例提供的应用程序性能测试方法对手机游戏A的CPU性能进行测试,则可以通过本发明实施例提供的测试工具捕获手机游戏A原本发送给profiler工具的CPU性能数据消息,并对该消息进行破解,获取手机游戏A的CPU性能数据,将获取到的手机游戏A的全部CPU性能数据上报至数据库服务器,数据库服务器即可根据手机游戏A的全部CPU性能数据对手机游戏A的CPU性能进行自动分析,生成分析结果,进而保证了分析结果的准确性。
下面对本发明实施例提供的应用程序性能测试装置进行介绍,下文描述的应用程序性能测试装置可与上文应用程序性能测试方法相互对应参照。
图7为本发明实施例提供的应用程序性能测试装置的结构框图,该应用程序性能测试装置具体可以为测试工具的客户端,参照图7,该应用程序性能测试装置可以包括:
发送模块10,用于向目标应用程序发送测试命令,所述测试命令用于指示所述目标应用程序上报性能数据消息至目标端口。
获取模块11,用于获取所述目标应用程序上报至目标端口的性能数据消息。
破解模块12,用于破解所述目标应用程序上报至目标端口的性能数据消息,生成所述目标应用程序的性能数据。
优选的,所述破解模块具体用于:剔除所述目标应用程序上报至目标端口的性能数据消息中包含的数据中的冗余数据,保留所述目标应用程序上报至目标端口的性能数据消息中包含的数据中的性能数据作为所述目标应用程序的性能数据。
上报模块13,用于将所述目标应用程序的性能数据上报至数据库服务器,以使所述数据库服务器根据所述目标应用程序的性能数据对所述目标应用程序进行性能分析。
优选的,所述上报模块具体用于:为所述目标应用程序的性能数据添加用于表示所述目标应用程序的性能数据的类别的标识;将添加标识后的目标应用程序的性能数据上报至数据库服务器,以使所述数据库服务器根据所述标识将所述目标应用程序的性能数据进行分类并根据分类后的目标应用程序的性能数据对所述目标应用程序进行性能分析。
优选的,图8示出了本发明实施例提供的应用程序性能测试装置的另一结构图,参照图8,该装置还包括:
配置模块14,用于在所述向目标应用程序发送测试命令之前,获取所述目标应用程序的进程名;根据所述目标应用程序的进程名确定所述目标应用程序的运行目录;根据所述目标应用程序的运行目录确定所述目标应用程序对应的开发工具版本;调取与所述目标应用程序对应的开发工具版本匹配的通用动态链接库文件,所述通用动态链接库文件中包括用于触发所述目标应用程序生成性能数据消息的函数;用所述通用动态链接库文件替换所述目标应用程序的运行目录中相应的动态链接库文件,以使所述目标应用程序在执行到所述通用动态链接库文件中用于触发所述目标应用程序生成性能数据消息的函数时生成性能数据消息。
可选的,应用程序性能测试装置可以为硬件设备,上文描述的模块可以设置于应用程序性能测试装置内的功能模块。图9示出了应用程序性能测试装置的硬件结构框图,参照图9,应用程序性能测试装置可以包括:处理器1,通信接口2,存储器3和通信总线4;其中处理器1、通信接口2、存储器3通过通信总线4完成相互间的通信;可选的,通信接口2可以为通信模块的接口,如GSM模块的接口;
处理器1,用于执行程序;存储器3,用于存放程序;程序可以包括程序代码,所述程序代码包括计算机操作指令;
处理器1可能是一个中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路;存储器3可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
其中,程序可具体用于:
向目标应用程序发送测试命令,所述测试命令用于指示所述目标应用程序上报性能数据消息至目标端口;
获取所述目标应用程序上报至目标端口的性能数据消息;
破解所述目标应用程序上报至目标端口的性能数据消息,生成所述目标应用程序的性能数据;
将所述目标应用程序的性能数据上报至数据库服务器,以使所述数据库服务器根据所述目标应用程序的性能数据对所述目标应用程序进行性能分析。
下面对本发明实施例提供的另一种应用程序性能测试装置进行介绍,该应用程序性能测试装置具体可以为数据库服务器,下文描述的应用程序性能测试装置可以与上文信令流程内容,以及以测试工具的客户端角度描述的应用程序性能测试方法相互对应参照。
图10为本发明实施例提供的一种应用程序性能测试装置的另一结构框图,请参阅图10,该应用程序性能测试装置可以包括:
接收模块20,用于接收测试工具上报的目标应用程序的性能数据;
分析模块21,用于根据所述目标应用程序的性能数据对所述目标应用程序进行性能分析,生成分析结果。
优选的,所述装置还包括:
分类模块,用于根据测试工具上报的目标应用程序的性能数据中用于表示所述目标应用程序的性能数据的类别的标识将所述目标应用程序的性能数据进行分类;
则所述分析模块具体用于:
根据分类后的目标应用程序的性能数据对所述目标应用程序进行性能分析。
优选的,所述接收模块还用于在所述根据所述目标应用程序的性能数据对所述目标应用程序进行性能分析,生成分析结果之后,接收互联网服务器发送的分析结果获取请求;
所述装置还包括:反馈模块,用于将所述分析结果反馈至互联网服务器,以使测试人员通过网页查看所述分析结果。
可选的,上述应用程序性能测试装置可以为硬件设备,上文描述的模块可以设置于应用程序性能测试装置内的功能模块。图11示出了应用程序性能测试装置的硬件结构框图,参照图11,应用程序性能测试装置可以包括:处理器1’,通信接口2’,存储器3’和通信总线4’;其中处理器1’、通信接口2’、存储器3’通过通信总线4’完成相互间的通信;可选的,通信接口2’可以为通信模块的接口,如GSM模块的接口;
处理器1’,用于执行程序;存储器3’,用于存放程序;程序可以包括程序代码,所述程序代码包括计算机操作指令;
处理器1’可能是一个中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路;存储器3’可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
其中,程序可具体用于:
接收测试工具上报的目标应用程序的性能数据;
根据所述目标应用程序的性能数据对所述目标应用程序进行性能分析,生成分析结果。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。