一种性能测试方法、装置及计算机可读存储介质与流程

文档序号:17695676发布日期:2019-05-17 21:29阅读:184来源:国知局
一种性能测试方法、装置及计算机可读存储介质与流程

本发明涉及通信技术领域,特别是涉及一种性能测试方法、装置及计算机可读存储介质。



背景技术:

应用程序(app)可以为移动终端用户提供丰富多彩的内容和功能,在有app中有新的功能插件被研发后,通常需要先经过测试,再正式公开使用。

现有技术中,对app进行测试时,通常会将app下载到测试终端,由专业的测试人员根据经验或通用的测试方法,在测试终端中对app进行测试,并根据测试结果数据分析app的性能。

但是,由测试人员进行测试的方式,测试效率低,测试过程非常复杂。



技术实现要素:

鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种性能测试方法、装置及计算机可读存储介质。

根据本发明实施例的第一方面,提供了一种性能测试方法,应用于包括服务器和测试终端的系统,所述方法包括:

所述服务器接收测试触发指令;所述测试触发指令包括待测应用程序标识;

所述服务器根据所述待测应用程序标识,生成待测应用程序安装包;

所述服务器将所述待测应用程序安装包发送至测试终端;

所述测试终端通过自动测试工具自动安装所述待测应用安装包,得到待测应用程序;

所述测试终端通过所述自动测试工具自动对所述待测应用程序进行测试,得到测试结果数据;

所述测试终端返回所述测试结果数据至所述服务器。

根据本发明实施例的第二方面,提供了另一种性能测试方法,应用于服务器,所述方法包括:

接收测试触发指令;所述测试触发指令包括待测应用程序标识;

根据所述待测应用程序标识,生成待测应用程序安装包;

将所述待测应用程序安装包发送至测试终端;接收所述测试终端返回的测试结果数据。

根据本发明实施例的第三方面,提供了另又一种性能测试方法,应用于测试终端,

所述测试终端设置有自动测试工具;所述方法包括:

接收服务器发送的待测应用安装包;

通过所述自动测试工具自动安装所述待测应用安装包,得到待测应用程序;

通过所述自动测试工具自动对所述待测应用程序进行测试,得到测试结果数据;

返回所述测试结果数据至所述服务器。

根据本发明实施例的第四方面,提供了一种性能测试系统,所述系统包括服务器和测试终端;

其中,所述服务器用于接收测试触发指令;所述测试触发指令包括待测应用程序标识;

所述服务器用于根据所述待测应用程序标识,生成待测应用程序安装包;

所述服务器用于将所述待测应用程序安装包发送至测试终端;

所述测试终端用于通过自动测试工具自动安装所述待测应用安装包,得到待测应用程序;

所述测试终端用于通过所述自动测试工具自动对所述待测应用程序进行测试,得到测试结果数据;

所述测试终端用于返回所述测试结果数据至所述服务器端。

根据本发明实施例的第五方面,提供了一种性能测试装置,应用于服务器,所述装置包括:

测试触发指令接收模块,用于接收测试触发指令;所述测试触发指令包括待测应用程序标识;

待测应用程序安装包生成模块,用于根据所述待测应用程序标识,生成待测应用程序安装包;

待测应用程序安装包发送模块,用于将所述待测应用程序安装包发送至测试终端;

测试结果数据接收模块,用于接收所述测试终端返回的测试结果数据。

根据本发明实施例的第六方面,提供了另一种性能测试装置,应用于测试终端,

所述测试终端设置有自动测试工具;所述装置包括:

待测试应用安装包接收模块,用于接收服务器发送的待测应用安装包;

待测试应用安装包安装模块,用于通过所述自动测试工具自动安装所述待测应用安装包,得到待测应用程序;

测试模块,用于通过所述自动测试工具自动对所述待测应用程序进行测试,得到测试结果数据;

测试结果数据返回模块,用于返回所述测试结果数据至所述服务器。

根据本发明实施例的第七方面,提供了计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现上述任一所述的性能测试方法。

本发明实施例包括以下优点:

本发明实施例在服务器接收到包括待测应用程序标识的测试触发指令后,可以根据待测应用程序标识,生成待测应用程序安装包,并将待测应用程序安装包发送给设置有自动测试工具的测试终端,测试终端可以根据自动测试工具自动安装待测应用程序安装包,得到待测应用程序,并通过自动测试工具对待测应用程序进行自动测试,并返回测试结果数据给服务器。本发明实施例的性能测试方法中,从生成待测应用程序安装包,到得到待测应用程序的测试结果数据,都由服务器和测试终端自动完成,整个测试过程不需要测试人员参与,大大简化了测试过程,降低了测试人员的测试难度,提高了测试效率。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1是本发明实施例提供的一种性能测试方法的流程图;

图2是本发明实施例提供的另一种性能测试方法的流程图;

图3是本发明实施例提供的另一种性能测试方法的具体流程图;

图4是本发明实施例提供的又一种性能测试方法的流程图;

图5是本发明实施例提供的一种性能测试具体应用的示意图;

图6是本发明实施例提供的一种性能测试具体应用的架构示意图;

图7是本发明实施例提供的一种性能测试系统的框图;

图8是本发明实施例提供的一种性能测试装置的框图;

图9是本发明实施例提供的一种性能测试装置的具体框图;

图10是本发明实施例提供的另一种性能测试装置的框图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

应当理解,此处所描述的具体实施例仅用以解释本发明,仅仅是本发明一部分实施例,而不是全部的实施例,并不用于限定本发明。

参照图1,示出了一种性能测试方法的流程图,该方法可以应用于包括服务器和测试终端的系统,该方法具体可以包括:

步骤101:所述服务器接收测试触发指令;所述测试触发指令包括待测应用程序标识;

步骤102:所述服务器根据所述待测应用程序标识,生成待测应用程序安装包;

步骤103:所述服务器将所述待测应用程序安装包发送至测试终端;

步骤104:所述测试终端通过自动测试工具自动安装所述待测应用安装包,得到待测应用程序;

步骤105:所述测试终端通过所述自动测试工具自动对所述待测应用程序进行测试,得到测试结果数据;

步骤106:所述测试终端返回所述测试结果数据至所述服务器。

本发明实施例中,在服务器接收到包括待测应用程序标识的测试触发指令后,可以根据待测应用程序标识,生成待测应用程序安装包,并将待测应用程序安装包发送给设置有自动测试工具的测试终端,测试终端可以根据自动测试工具自动安装待测应用程序安装包,得到待测应用程序,并通过自动测试工具对待测应用程序进行自动测试,并返回测试结果数据给服务器。本发明实施例的性能测试方法中,从生成待测应用程序安装包,到得到待测应用程序的测试结果数据,都由服务器和测试终端自动完成,整个测试过程不需要测试人员参与,大大简化了测试过程,降低了测试人员的测试难度,提高了测试效率。

参照图2,示出了另一种性能测试方法的流程图。

可以理解,本发明实施例可以应用于服务器,该服务器可以是web(worldwideweb,万维网)服务器,也可以是其他形式的服务器,本发明实施例对此不做具体限制。

具体应用中,服务器可以在夜间用户访问量较少的情况下进行测试,以提升测试效率并降低服务器白天运行时的负载;服务器也可以在任意时间进行测试,本发明实施例对进行本发明的测试方法的具体实施时机不作限制。

该方法具体可以包括如下步骤:

步骤201:接收测试触发指令;所述测试触发指令包括待测应用程序标识。

本发明实施例中,测试触发指令用于指示需要进行应用程序测试;测试触发指令中包括待测应用程序标识,待测应用程序标识可以唯一标识一个待测应用程序,待测应用程序标识具体可以是待测应用程序的名称、序列号等,本发明实施例对待测应用程序标识的具体内容不做限定。

具体应用中,测试触发指令可以根据用户的触发操作发出,例如,用户在用户界面中选择或输入了需要测试的应用程序标识,则服务器可以接收到测试触发指令;测试触发指令也可以由服务器自行发出,例如,在服务器的测试区域中预先存储有需要进行测试的待测应用程序的待测应用程序标识,服务器若检测到自身负载低于预设负载阈值,则可以在预先存储的待测应用程序标识中选择其中一个,并自动发出包括待测应用程序标识的测试触发指令,或者,服务器在预设时间自动发出包括待测应用程序标识的测试触发指令。本发明实施例对测试触发指令的发出方式不做具体限定。

在本发明实施例的一种具体实现中,在步骤101之前还可以包括:设定测试触发指令发出任务;所述测试触发指令发出任务包括时间信息;在当前时间与所述时间信息匹配的情况下,发出测试触发指令。

本发明实施例中,测试触发指令发出任务包括时间信息,测试触发指令发出任务具体可以用于在在当前时间与该时间信息匹配的情况下,自动发出测试触发指令。时间信息可以根据实际的需求进行设定,例如,可以是服务器负载较低的时间段,比如凌晨等,本发明实施例对时间信息不作具体限定。

举例来说,在安卓系统(android)中,可以在持续集成工具(jenkins)上实现定时任务脚本,每天夜间1点定时发出测试触发指令。

jenkins是一个开源软件项目,是基于java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。因为夜间1点时,服务器负载较低,且开发维护人员通常已经将全部的更新代码上传到代码仓库,因此,在每天夜间1点定时发出测试触发指令,实现自动测试,可以测试出最新的待测应用程序的运行情况,若有运行情况较差的情况发生,也可以及时发现,及时维护。

步骤202:根据所述待测应用程序标识,生成待测应用程序安装包。

具体应用中,随着应用程序的发展,一些具备较多功能的应用程序在运行中,因为复杂业务和频繁交互会出现卡顿等情况,通常需要不断的维护、更新。待测应用程序的开发维护人员通常有多个,每个开发维护人员会负责该待测应用程序的其中一部分代码的撰写,撰写的代码通常会放在该待测应用程序的代码仓库中,当需要进行该待测应用程序的测试时,需要生成该待测应用程序最新的待测应用程序安装包。

本发明实施例中,根据待测应用程序标识,可以在代码仓库中匹配到该待测应用程序标识的代码,将与该待测应用程序标识匹配的代码汇总,进而可以生成待测应用程序安装包。

可以理解,本领域技术人员也可以根据实际的应用场景,采用适应的方式根据待测应用程序标识,生成待测应用程序安装包,本发明实施例对此不作具体限定。

步骤203:将所述待测应用程序安装包发送至测试终端;

本发明实施例中,测试终端可以是移动终端,具体包括手机、手环、电子阅读器等。

具体应用中,测试终端中预先可以安装有自动测试工具,自动测试工具用于通过预设的测试流程对测试终端中的应用程序进行测试,例如,自动测试工具可以实现:自动对测试终端接收到的待测应用程序安装包安装;对安装完成的待测应用程序进行自动滑动、自动点击等测试操作;抓取测试操作中得到的测试结果数据。可以理解,本领域技术人员也可以根据实际的测试场景,确定自动测试工具具体需要实现的功能,本发明实施例对自动测试工具不作具体限定。

本发明实施例中,将待测应用程序安装包发送至测试终端,则测试终端可以自动对待测应用程序安装包进行安装并进行预设测试操作,得到测试结果数据。

步骤204:接收所述测试终端返回的测试结果数据。

本发明实施例中,服务器可以实时接收测试终端返回的测试结果数据,也可以按照预设时间段间隔的接收测试结果数据,本发明实施例对接收测试结果数据的具体方式不作具体限定。

具体应用中,测试结果数据可以反映待测应用程序标识对应的待测应用程序的运行状态,例如待测应用程序的流畅度等。可以理解,在得到测试结果数据后,可以由测试人员根据测试结果数据分析出待测应用程序的测试结果,也可以由服务器进一步对测试结果数据分析,辅助测试人员得到测试结果,本发明实施例对此不作具体限定。

综上所述,本发明实施例在服务器接收到包括待测应用程序标识的测试触发指令后,可以根据待测应用程序标识,生成待测应用程序安装包,并将待测应用程序安装包发送给设置有自动测试工具的测试终端,测试终端可以根据自动测试工具自动安装待测应用程序安装包,得到待测应用程序,并通过自动测试工具对待测应用程序进行自动测试,并返回测试结果数据给服务器。本发明实施例的性能测试方法中,从生成待测应用程序安装包,到得到待测应用程序的测试结果数据,都由服务器和测试终端自动完成,整个测试过程不需要测试人员参与,大大简化了测试过程,降低了测试人员的测试难度,提高了测试效率。

参照图3,示出了一种性能测试方法的具体流程图,具体可以包括如下步骤:

步骤301:接收测试触发指令;所述测试触发指令包括待测应用程序标识。

步骤302:在代码仓库中确定与所述待测应用程序标识匹配的目标代码。

步骤303:根据所述目标代码生成待测应用程序安装包。

本发明实施例中,步骤302和步骤303是步骤202的一种具体实现方式。具体的,代码仓库可以是用于存储代码的区域,在代码仓库中可以根据待测应用程序标识确定匹配的目标代码;目标代码可以反映出待测应用程序最新的更新迭代,根据目标代码生成待测应用程序安装包,则该待测应用程序安装包是最新的安装包。

作为本发明实施例的一种优选方式,步骤302可以包括:在代码仓库中查询最新代码版本分支;从所述最新代码版本分支中获取与所述待测应用程序标识匹配的目标代码。

具体应用中,以待测应用程序是androidapp为例,可以在安卓系统的jenkins工具中基于分布式版本控制工具git设置最新代码版本分支master。其中,jenkins是一个开源的、提供友好操作界面的持续集成(ci)工具,主要用于持续、自动的构建/测试软件项目。git是一个分布式版本控制工具,在进行软件开发时,团队的开发人员使用git可以轻松管理项目版本,做好项目的追踪和辅助进度控制。一般情况下,androidapp的代码仓库部署在服务器上,并使用git进行版本管理,以便更好的在团队内持续迭代、更新、维护代码仓库。其中,git可以设定当前仓库中最新开发版本的分支称为master分支,在最新代码版本分支中可以获取到最新的与待测应用程序匹配的目标代码。本发明实施例中,将androidapp代码仓库部署到jenkins上进行集成,通过git配置构建触发策略,就可以按需持续构建代码,完成基于最新代码版本分支master的目标代码的打包。

步骤304:将所述待测应用程序安装包发送至测试终端。

本发明实施例中,服务器可以基于测试终端的ip地址,或测试终端标识,通过局域网等方式将待测应用程序安装包发送给测试终端。

步骤305:接收所述测试终端返回的测试结果数据。

步骤306:根据所述测试结果数据,生成对应于所述待测应用程序的流畅度曲线。

本发明实施例中,优选地,测试结果数据包括:所述待测应用程序的渲染平均耗时和掉帧率,可以通过待测应用程序的渲染平均耗时和掉帧率等内容确定出待测应用程序在运行过程中的流畅度,进而生成对应于待测应用程序的流畅度曲线,流畅度曲线可以在整体上展示待测应用程序的流畅度,可以理解,渲染平均耗时和掉帧率是由测试终端计算得出的,具体可以参照测试终端对应的实施例中的计算方法,在此不再赘述。

步骤307:若所述流畅度曲线中包括低于预设流畅度阈值的流畅度,定位所述流畅度对应的代码区间。

步骤308:通过邮件发送所述代码区间至预设邮箱。

本发明实施例中,预设流畅度阈值可以根据实际的应用场景进行设定,若待测应用程序的流畅度低于预设流畅度阈值,则可以说明待测应用程序的运行存在问题,因此,定位该过低流畅度对应的代码区间,并将代码区间通过邮件发至预设邮箱,预设邮箱可以是代码区间对应的开发人员的邮箱,也可以是测试人员的邮箱,进而可以提示该代码区间的开发人员及时查看和解决问题,达到优化卡顿问题、保证流畅体验的效果,从而可以保证流畅的用户体验,最大程度的保证用户的留存量。

作为本发明实施例的一种优选方案,在服务器的用户界面中,还可以显示该流畅度曲线,以便于在服务器中直观的查看测试结果。

综上所述,本发明实施例在服务器接收到包括待测应用程序标识的测试触发指令后,可以根据待测应用程序标识,生成待测应用程序安装包,并将待测应用程序安装包发送给设置有自动测试工具的测试终端,测试终端可以根据自动测试工具自动安装待测应用程序安装包,得到待测应用程序,并通过自动测试工具对待测应用程序进行自动测试,并返回测试结果数据给服务器。本发明实施例的性能测试方法中,从生成待测应用程序安装包,到得到待测应用程序的测试结果数据,都由服务器和测试终端自动完成,整个测试过程不需要测试人员参与,大大简化了测试过程,降低了测试人员的测试难度,提高了测试效率。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。

参照图4,示出了又一种性能测试方法的流程图。

可以理解,本发明实施例可以应用于测试终端,测试终端可以是移动终端,具体包括手机、手环、电子阅读器等。

本发明实施例中,所述测试终端中设置有自动测试工具。具体应用中,自动测试工具用于通过预设的测试流程对测试终端中的应用程序进行测试,例如,自动测试工具可以实现:自动对测试终端接收到的待测应用程序安装包安装;对安装完成的待测应用程序进行自动滑动、自动点击等测试操作;抓取测试操作中得到的测试结果数据。可以理解,本领域技术人员也可以根据实际的测试场景,确定自动测试工具具体需要实现的功能,本发明实施例对自动测试工具不作具体限定。

该方法具体可以包括如下步骤:

步骤401:接收待测应用安装包。

本发明实施例中,服务器与测试终端可以通过局域网等实现连接,在测试终端中可以设定对服务器的最高访问权限,使得服务器可以任意访问测试终端,当服务器向测试终端发出待测应用安装包,测试终端可以自行接收该待测应用安装包。

步骤402:通过所述自动测试工具自动安装所述待测应用安装包,得到待测应用程序。

本发明实施例中,自动测试工具可以自动安装待测应用安装包,则测试终端上得到待测应用程序。

步骤403:通过所述自动测试工具自动对所述待测应用程序进行测试,得到测试结果数据。

本发明实施例中,通过自动测试工具可以按照自动测试工具中预先设定的测试方案自动对待测应用程序进行测试。

作为本发明实施例的一种优选方案,步骤403可以包括:

子步骤a1:通过所述自动测试工具按照预设流程向所述待测应用程序发出预设测试指令;

本发明实施例中,预设流程可以根据实际的待测应用程序设定,示例的,若待测应用程序为视频应用程序,则可以设定预设流程为:首先点击待测应用程序中的其中一个视频,然后对横进度条进行左右滑动,或对纵进度条进行上限滑动等;预设测试指令也可以根据实际的应用场景设定,示例的,对应于上述待测应用程序为视频应用程序,预设测试指令可以为点击指令、上下滑动指令、左右滑动指令等。

可以理解,本领域技术人员还可以根据实际的应用场景设定适应的预设流程和预设测试指令,本发明实施例对此不作具体限定。

子步骤a2:获取所述待测应用程序响应于所述预设测试指令时产生的测试结果数据。

本发明实施例中,待测应用程序在接收到预设测试指令后,会响应该测试指令进行界面转换等,响应的快慢及响应的正误等都可以作为测试结果数据。

在本发明实施例的一种优选方案中,获取所述待测应用程序响应于所述预设测试指令时产生的测试结果数据,包括:

采集所述待测应用程序响应于所述预设测试指令的多个帧渲染耗时;根据所述多个帧渲染耗时计算渲染平均耗时;根据所述多个帧渲染耗时与预设渲染时间阈值,计算掉帧率;将所述渲染平均耗时和所述掉帧率作为测试结果数据。

本发明实施例中,测试结果数据设定为渲染平均耗时和掉帧率;渲染平均耗时和掉帧率可以通过待测应用程序响应于预设测试指令的多个帧渲染耗时计算得到,因此,先采集测应用程序响应于预设测试指令的多个帧渲染耗时,然后将多个帧渲染耗时求平均值,计算得到渲染平均耗时;根据多个帧渲染耗时与预设渲染时间阈值的对比关系,计算掉帧率。

具体的,所述根据所述多个帧渲染耗时与预设渲染时间阈值,确定掉帧率,包括:

计算发生掉帧的帧渲染耗时的个数,与所述多个帧渲染耗时的总数的比值,得到所述掉帧率;其中,所述发生掉帧的帧渲染耗时的个数为:所述多个帧渲染耗时中,帧渲染耗时大于所述预设渲染时间阈值的个数。

在一种具体实施方式中,自动测试工具可以是预装在android测试终端上的一款androidapp。该app基于安卓自动化测试工具(androiduiautomator)框架,内置设定数种特定界面(ui)操作流程(如页面上下滑动,左右滑动等),在ui操作过程中利用adbshelldumpsysgfxinfo命令得到并计算测试结果数据。

其中,uiautomator是谷歌推出的,用于ui自动化测试的工具,通过待测应用程序中控件元素的文本内容等属性查找到对应控件,然后通过代码自动对控件执行点击、滑动等操作。这种自动化ui操作的测试方法,规避了人为操作的不确定,利用代码严格控制ui操作每一步的严密性,保证每次测试过程中操作app的流程完全一致。可执行文件dumpsys是一款运行在设备上的android工具,将帧信息获取命令(gfxinfo)传递给dumpsys可输出包含各阶段发生的动画以及帧相关的性能信息。在一种具体实现中,在android手机“设置”内的“开发者选项”中点击“gpu(graphicsprocessingunit,图形处理器)呈现模式分析”,选择在抓取帧数据命令"adbshelldumpsysgfxinfo中"选项,然后在app界面操作过程中,执行抓取当前界面帧数据命令adbshelldumpsysgfxinfo<package_name>就可以搜集当前界面帧渲染的耗时数据。在输出日志的数据时,包含了draw(绘制),process(处理),execute(执行)分别对应的处理时间,单位是ms,这三各处理时间的总和,就是渲染每帧的处理时间。当执行一次该命令,可以获取多个帧的渲染耗时,取加和平均值作为页面渲染平均耗时,如果一帧的耗时超过预设时间,就定义为发生了掉帧,假设共有100帧,其中有20帧的耗时超过预设时间,就可以计算掉帧率为20/100=20%。可以将掉帧率和渲染平均耗时作为测试结果数据返回给服务器。

步骤404:返回所述测试结果数据至服务器。

本发明实施例中,将测试结果数据返回给服务器后,服务器可以进一步根据测试结果数据分析待测应用程序的性能,从而对待测应用程序做进一步的改进。

本发明实施例在服务器接收到包括待测应用程序标识的测试触发指令后,可以根据待测应用程序标识,生成待测应用程序安装包,并将待测应用程序安装包发送给设置有自动测试工具的测试终端,测试终端可以根据自动测试工具自动安装待测应用程序安装包,得到待测应用程序,并通过自动测试工具对待测应用程序进行自动测试,并返回测试结果数据给服务器。本发明实施例的性能测试方法中,从生成待测应用程序安装包,到得到待测应用程序的测试结果数据,都由服务器和测试终端自动完成,整个测试过程不需要测试人员参与,大大简化了测试过程,降低了测试人员的测试难度,提高了测试效率。

进一步地,图5是本发明实施例提供的一种性能测试方法的应用示意图,如图5所示,在android系统中,服务器中,基于jenkins架构设定定时任务,定时触发执行jenkins流水线任务,在jenkins流水线任务(一)中,基于androidappgit仓库实现目标代码的自动打包,在jenkins流水线任务(二)中,自动生成应用程序安装包,并通过ip连接将应用程序安装包发给测试终端,测试终端中,预装有开发的自动化性能测试工具,可以自动安装应用程序安装包,在服务器的jenkins流水线任务(三)中,触发测试终端进行自动测试,测试中盾自动测试安装的应用程序的流程度,并将流畅度数据发送给服务器,服务器根据流程度数据可以在网页中多维度展示流畅度变化,通过流畅度曲线可以定位低性能代码区间,以及时解决卡顿等问题,还可以在服务器自动触发性能警戒,向预设邮箱自动发邮件报警,提示尽早解决问题。

进一步地,参照图6,说明本发明实施例的整体架构:以android系统中的编辑环境为基础,例如:自动化构建开源工具gradle编译环境、jenkins集成工具、vue(virtualuniversityenterprises,虚拟系列产品)前端技术+数据库服务器mysgl,通过核心组件的运行,核心组件例如:自动化性能测试工具app、性能数据展示管理平台、定时执行流水线任务脚本、git仓库、流水线任务(一):打包、流水线任务(二):装包、流水线任务(三):自动化测试,最终产生结果产出,结果可以是:androidapp流畅度变化展示,低性能报警邮件、定位低性能问题。

综上所述,本发明实施例在服务器接收到包括待测应用程序标识的测试触发指令后,可以根据待测应用程序标识,生成待测应用程序安装包,并将待测应用程序安装包发送给设置有自动测试工具的测试终端,测试终端可以根据自动测试工具自动安装待测应用程序安装包,得到待测应用程序,并通过自动测试工具对待测应用程序进行自动测试,并返回测试结果数据给服务器。本发明实施例的性能测试方法中,从生成待测应用程序安装包,到得到待测应用程序的测试结果数据,都由服务器和测试终端自动完成,整个测试过程不需要测试人员参与,大大简化了测试过程,降低了测试人员的测试难度,提高了测试效率。

参照图7,示出了一种性能测试系统70的框图,所述系统包括服务器710和测试终端720;

其中,所述服务器用于接收测试触发指令;所述测试触发指令包括待测应用程序标识;

所述服务器用于根据所述待测应用程序标识,生成待测应用程序安装包;

所述服务器用于将所述待测应用程序安装包发送至测试终端;

所述测试终端用于通过自动测试工具自动安装所述待测应用安装包,得到待测应用程序;

所述测试终端用于通过所述自动测试工具自动对所述待测应用程序进行测试,得到测试结果数据;

所述测试终端用于返回所述测试结果数据至所述服务器。

综上所述,本发明实施例在服务器接收到包括待测应用程序标识的测试触发指令后,可以根据待测应用程序标识,生成待测应用程序安装包,并将待测应用程序安装包发送给设置有自动测试工具的测试终端,测试终端可以根据自动测试工具自动安装待测应用程序安装包,得到待测应用程序,并通过自动测试工具对待测应用程序进行自动测试,并返回测试结果数据给服务器。本发明实施例的性能测试方法中,从生成待测应用程序安装包,到得到待测应用程序的测试结果数据,都由服务器和测试终端自动完成,整个测试过程不需要测试人员参与,大大简化了测试过程,降低了测试人员的测试难度,提高了测试效率。

参照图8,示出了本发明实施例的一种性能测试装置的框图,应用于服务器,该装置具体可以包括:

测试触发指令接收模块810,用于接收测试触发指令;所述测试触发指令包括待测应用程序标识;

待测应用程序安装包生成模块820,用于根据所述待测应用程序标识,生成待测应用程序安装包;

待测应用程序安装包发送模块830,用于将所述待测应用程序安装包发送至测试终端;

测试结果数据接收模块840,用于接收所述测试终端返回的测试结果数据。

优选地,参照图9,在图8的基础上,

所述待测应用程序安装包生成模块820包括:

目标代码确定子模块8201,用于在代码仓库中确定与所述待测应用程序标识匹配的目标代码;

待测应用程序安装包生成子模块8202,用于根据所述目标代码生成待测应用程序安装包。

所述目标代码确定子模块8201包括:

最新代码版本分支查询单元,用于在代码仓库中查询最新代码版本分支;

目标代码确定单元,用于从所述最新代码版本分支中获取与所述待测应用程序标识匹配的目标代码。

优选地,所述装置还包括:

流畅度曲线生成模块850,用于根据所述测试结果数据,生成对应于所述待测应用程序的流畅度曲线;

代码区间定位模块860,用于若所述流畅度曲线中包括低于预设流畅度阈值的流畅度,定位所述流畅度对应的代码区间;

邮件发送模块870,用于通过邮件发送所述代码区间至预设邮箱。

优选地,所述测试结果数据包括:所述待测应用程序的渲染平均耗时和掉帧率。

综上所述,本发明实施例在服务器接收到包括待测应用程序标识的测试触发指令后,可以根据待测应用程序标识,生成待测应用程序安装包,并将待测应用程序安装包发送给设置有自动测试工具的测试终端,测试终端可以根据自动测试工具自动安装待测应用程序安装包,得到待测应用程序,并通过自动测试工具对待测应用程序进行自动测试,并返回测试结果数据给服务器。本发明实施例的性能测试方法中,从生成待测应用程序安装包,到得到待测应用程序的测试结果数据,都由服务器和测试终端自动完成,整个测试过程不需要测试人员参与,大大简化了测试过程,降低了测试人员的测试难度,提高了测试效率。

参照图10,示出了本发明实施例的一种性能测试装置的框图,应用于测试终端,所述测试终端设置有自动测试工具;所述装置包括:

待测试应用安装包接收模块910,用于接收服务器发送的待测应用安装包;

待测试应用安装包安装模块920,用于通过所述自动测试工具自动安装所述待测应用安装包,得到待测应用程序;

测试模块930,用于通过所述自动测试工具自动对所述待测应用程序进行测试,得到测试结果数据;

测试结果数据返回模块940,用于返回所述测试结果数据至所述服务器。

优选地,所述测试模块包括:

预设测试指令发出子模块,用于通过所述自动测试工具按照预设流程向所述待测应用程序发出预设测试指令;

测试结果数据获取子模块,用于获取所述待测应用程序响应于所述预设测试指令时产生的测试结果数据。

优选地,所述预设测试指令包括以下至少一种:上下滑动指令、左右滑动指令、点击指令。

优选地,所述测试结果数据获取子模块包括:

采集单元,用于采集所述待测应用程序响应于所述预设测试指令的多个帧渲染耗时;

渲染平均耗时计算单元,用于根据所述多个帧渲染耗时计算渲染平均耗时;

掉帧率计算单元,用于根据所述多个帧渲染耗时与预设渲染时间阈值,计算掉帧率;

测试结果数据获取单元,用于将所述渲染平均耗时和所述掉帧率作为测试结果数据。

优选地,所述掉帧率计算单元包括:

掉帧率计算子单元,用于计算发生掉帧的帧渲染耗时的个数,与所述多个帧渲染耗时的总数的比值,得到所述掉帧率;其中,所述发生掉帧的帧渲染耗时的个数为:所述多个帧渲染耗时中,帧渲染耗时大于所述预设渲染时间阈值的个数。

综上所述,本发明实施例在服务器接收到包括待测应用程序标识的测试触发指令后,可以根据待测应用程序标识,生成待测应用程序安装包,并将待测应用程序安装包发送给设置有自动测试工具的测试终端,测试终端可以根据自动测试工具自动安装待测应用程序安装包,得到待测应用程序,并通过自动测试工具对待测应用程序进行自动测试,并返回测试结果数据给服务器。本发明实施例的性能测试方法中,从生成待测应用程序安装包,到得到待测应用程序的测试结果数据,都由服务器和测试终端自动完成,整个测试过程不需要测试人员参与,大大简化了测试过程,降低了测试人员的测试难度,提高了测试效率。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

在一个典型的配置中,所述计算机设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非持续性的电脑可读媒体(transitorymedia),如调制的数据信号和载波。

本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程测试终端设备的处理器以产生一个机器,使得通过计算机或其他可编程测试终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程测试终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程测试终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本发明所提供的性能测试方法和性能测试装置和计算机可读存储介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1