首页 / 专利库 / 商业 / 电子市场 / 应用程序测试方法和装置

应用程序测试方法和装置

阅读:505发布:2020-05-14

专利汇可以提供应用程序测试方法和装置专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种应用程序测试方法和装置。其中,该应用程序测试方法包括:测试客户端确定待测试应用程序的测试参数;测试客户端读取测试参数对应的测试任务,其中,测试任务为对待测试应用程序进行测试的任务;测试客户端按照测试参数执行测试任务,得到测试结果;以及测试客户端记录测试参数和测试结果。通过本发明,解决了 现有技术 中进行测试时效率较低的问题,进而达到了提高测试效率的效果。,下面是应用程序测试方法和装置专利的具体信息内容。

1.一种应用程序测试方法,其特征在于,包括:
测试客户端确定待测试应用程序的测试参数,其中,所述测试参数包括所述待测试应用程序从不同应用电子市场的下载速度与所述待测试应用程序的安装时间;
所述测试客户端读取所述测试参数对应的测试任务,其中,所述测试任务为对所述待测试应用程序进行测试的任务;
所述测试客户端按照所述测试参数执行所述测试任务,得到测试结果;以及所述测试客户端收集执行所述测试任务时的测试数据;
所述测试客户端判断所述测试数据与所述测试参数是否匹配;
如果所述测试数据与所述测试参数不匹配,则通过所述测试客户端对所述测试数据进行处理,其中,对所述测试数据处理之后的结果与所述测试参数相匹配;以及如果所述测试数据与所述测试参数匹配,则通过所述测试客户端记录所述测试数据为所述测试结果;
在所述测试客户端记录针对所述测试参数中每个参数执行所述测试任务之后得到的测试结果之后,所述应用程序测试方法还包括:所述测试客户端记录所述测试参数的选择顺序与循环次数;所述测试客户端按照所述选择顺序与所述循环次数重复执行所述测试任务并记录测试结果。
2.根据权利要求1所述的应用程序测试方法,其特征在于,在记录所述测试参数和所述测试结果之后,所述应用程序测试方法还包括:
所述测试客户端将所述测试参数和测试结果发送给服务器,其中,
所述服务器判断所述测试结果是否异常;
如果所述测试结果异常,则滤除异常的测试结果,保存正常的测试结果。
3.一种应用程序测试装置,其特征在于,包括:
确定单元,用于通过安装在所述应用程序测试装置上的测试客户端确定待测试应用程序的测试参数,其中,所述测试参数包括所述待测试应用程序从不同应用电子市场的下载速度与所述待测试应用程序的安装时间;
读取单元,用于通过所述测试客户端读取所述测试参数对应的测试任务,其中,所述测试任务为对所述待测试应用程序进行测试的任务;
执行单元,用于通过所述测试客户端按照所述测试参数执行所述测试任务,得到测试结果;以及
记录单元,用于通过所述测试客户端记录所述测试参数和所述测试结果;
所述记录单元包括:
收集模,用于通过所述测试客户端收集执行所述测试任务时的测试数据;
判断模块,用于通过所述测试客户端判断所述测试数据与所述测试参数是否匹配;
处理模块,用于在所述测试数据与所述测试参数不匹配时,通过所述测试客户端对所述测试数据进行处理,其中,对所述测试数据处理之后的结果与所述测试参数相匹配;以及记录模块,用于在所述测试数据与所述测试参数匹配时,通过所述测试客户端记录所述测试数据为所述测试结果;
其中,所述装置还用于在所述测试客户端记录针对所述测试参数中每个参数执行所述测试任务之后得到的测试结果之后,记录所述测试参数的选择顺序与循环次数;按照所述选择顺序与所述循环次数重复执行所述测试任务并记录测试结果。
4.根据权利要求3所述的应用程序测试装置,其特征在于,所述应用程序测试装置还包括:
发送单元,用于在记录所述测试参数和所述测试结果之后,将所述测试参数和测试结果发送给服务器,其中,
所述服务器判断所述测试结果是否异常;
如果所述测试结果异常,则滤除异常的测试结果,保存正常的测试结果。

说明书全文

应用程序测试方法和装置

技术领域

[0001] 本发明涉及测试领域,具体而言,涉及一种应用程序测试方法和装置。

背景技术

[0002] 伴随着移动终端应用程序的增多,针对应用程序的测试类型也逐渐增多。现有的技术方案主要是通过人工在移动终端安装应用程序,针对不同的测试类型对相应的应用程序进行测试。例如,测试类型为应用程序从不同应用电子市场的下载速度,对应用程序从不同应用电子市场的下载速度执行测试时,测试人员需要从不同的应用电子市场逐个下载相应的应用程序,并记录每个应用电子市场下载该应用程序的速度,分析得到对比结果。
[0003] 对于上述的技术方案,在进行应用程序测试时,由于需要人工从不同的应用电子市场下载相应的应用程序以进行测试,因而耗费了大量人资源,尤其是在对多个测试类型进行测试时,速度慢,效率低。
[0004] 针对相关技术中对应用程序进行测试时效率较低的问题,目前尚未提出有效的解决方案。

发明内容

[0005] 本发明实施例的主要目的在于提供一种应用程序测试方法和装置,以解决现有技术中对应用程序进行测试时效率较低的问题。
[0006] 为了实现上述目的,根据本发明实施例的一个方面,提供了一种应用程序测试方法。根据本发明实施例的应用程序测试方法包括:测试客户端确定待测试应用程序的测试参数;所述测试客户端读取所述测试参数对应的测试任务,其中,所述测试任务为对所述待测试应用程序进行测试的任务;所述测试客户端按照所述测试参数执行所述测试任务,得到测试结果;以及所述测试客户端记录所述测试参数和所述测试结果。
[0007] 为了实现上述目的,根据本发明实施例的另一方面,提供了一种应用程序测试装置。确定单元,用于通过测试客户端确定待测试应用程序的测试参数;读取单元,用于同工所述测试客户端读取所述测试参数对应的测试任务,其中,所述测试任务为对所述待测试应用程序进行测试的任务;执行单元,用于通过所述测试客户端按照所述测试参数执行所述测试任务,得到测试结果;以及记录单元,用于通过所述测试客户端记录所述测试参数和所述测试结果。
[0008] 在本发明实施例中,测试客户端确定待测试应用程序的测试参数;测试客户端读取测试参数对应的测试任务,其中,测试任务为对待测试应用程序进行测试的任务;测试客户端按照测试参数执行测试任务,得到测试结果;以及测试客户端记录测试参数和测试结果,通过测试客户端按照测试参数读取相应的测试任务对待测试应用程序进行测试,避免了人工进行测试时需要花费大量人力和时间,解决了现有技术中进行测试时效率较低的问题,进而达到了提高测试效率的效果。附图说明
[0009] 构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0010] 图1是根据本发明实施例的应用程序测试方法的流程图
[0011] 图2是根据本发明实施例的测试界面的示意图;
[0012] 图3是根据本发明实施例的测试任务的执行流程图;
[0013] 图4是根据本发明实施例的记录测试参数和测试结果的流程图;
[0014] 图5是根据本发明实施例的服务器的运行流程图;
[0015] 图6是根据本发明实施例的展示下载速度的示意图;
[0016] 图7是根据本发明实施例的下载速度的对比图;
[0017] 图8是根据本发明实施例的应用程序的测试方法的架构图;以及
[0018] 图9是根据本发明实施例的应用程序的测试装置的示意图。

具体实施方式

[0019] 为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
[0020] 在介绍本发明实施例的具体方案之前,介绍以下本发明实施例中涉及的术语:
[0021] Android:中文称安卓,是一个以Linux为基础的半开放源代码操作系统,主要用于移动设备,由Google成立的Open Handset Alliance(OHA,开放手持设备联盟)持续领导与开发。
[0022] App:应用Application的缩写,安卓APP即安卓应用软件
[0023] 应用电子市场:指应用宝、360手机助手、91助手、安卓市场等可以下载app的应用电子市场。
[0024] Monkeyrunner:monkeyrunner工具提供了一个API,使用此API写出的程序可以在Android代码之外控制Android设备和模拟器。通过monkeyrunner,您可以写出一个程序去安装一个Android应用程序或测试包,运行它,向它发送模拟击键。monkeyrunner工具的主要设计目的是用于测试功能/框架平上的应用程序和设备,或用于运行单元测试套件。
[0025] 实施例1
[0026] 根据本发明实施例,可以提供了一种可以用于实施本申请装置实施例的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0027] 根据本发明实施例,提供了一种应用程序测试方法。该应用程序测试方法可以运行在手机、平板电脑和PC等终端中。
[0028] 图1是根据本发明实施例的应用程序测试方法的流程图。如图所示,该应用程序测试方法包括如下步骤:
[0029] 步骤S102,测试客户端确定待测试应用程序的测试参数。测试客户端可以是运行在手机、平板电脑和PC等终端中。待测试应用程序可以是能够安装在安卓系统中的任一应用程序,通常,该应用程序可以通过网页、应用电子市场等途径下载得到。
[0030] 通常,在需要对待测试应用程序更新时,对待测试应用程序进行错误排查时,或者在待测试应用程序发布之前,均需要对待测试应用程序进行测试,以确定待测试应用程序的性能等,以保证为用户提供良好的用户体验。由于影响待测试应用程序的测试参数有很多种,为了有针对性的测试某个测试参数对待测试应用程序的影响,测试客户端首先要确定待测试应用程序的测试参数。
[0031] 待测试应用程序可以为即时通信程序、地图程序和浏览器等。测试参数可以为待测试应用程序在应用宝上的下载速度,在运行待测试应用程序时占用的内存和运行待测试应用程序的流畅度等。例如,待测试应用程序为“微信”,测试参数为从“应用宝”下载“微信”的应用程序的下载速度。
[0032] 步骤S104,测试客户端读取测试参数对应的测试任务,其中,测试任务为对待测试应用程序进行测试的任务。由于测试参数的不同,针对该测试参数的测试任务也可能不同,因此,测试客户端在确定待测试参数之后,读取待测试参数对应的测试任务。
[0033] 测试参数为待测试应用程序在应用电子市场的下载速度时,对应的测试任务为在应用电子市场下载该待测试应用程序;测试参数为运行待测试应用程序时占用的内存时,对应的测试任务为运行该待测试应用程序,其他测试参数的测试任务同理可推,不再一一赘述。
[0034] 举例说明如下:例如,测试参数为在应用宝下载“微信”的应用程序时的下载速度,测试客户端读取测试参数对应的测试任务为在应用包下载“微信”的应用程序。又例如,测试参数为运行QQ浏览器时系统占用的内存,则测试客户端读取的测试任务为运行QQ浏览器。
[0035] 步骤S106,测试客户端按照测试参数执行测试任务,得到测试结果。
[0036] 由于测试参数与测试任务对应,测试客户端需要按照测试参数执行测试任务,例如,测试在应用宝下载“微信”的应用程序的下载速度时,测试客户端需要执行的测试任务为从应用宝下载“微信”,而非执行启动“微信”的任务。在测试客户端按照测试参数执行测试任务之后,得到测试结果。
[0037] 步骤S108,测试客户端记录测试参数和测试结果。测试客户端记录测试参数和测试结果之后,能够确定得到的测试结果是针对哪个测试参数的,即对与某个测试参数来说,测试待测试应用程序得到的测试结果是什么。这样,在对测试结果进行分析时,可以根据测试参数和测试结果方便的确定测试应用程序的性能。
[0038] 以下结合例1对上述实施例进行说明。
[0039] 例1:待测试应用程序为“微信”,测试参数为下载“微信”的下载速度,测试任务为下载“微信”。首先,测试客户端确定测试参数为测试“微信”的下载速度。其次,测试客户端读取测试任务为“下载微信”。然后,执行测试任务,即在应用电子市场下载“微信”,在测试任务执行完毕后记录下载“微信”时的下载速度。
[0040] 通过上述实施例,利用测试客户端确定待测试应用程序的测试参数,并根据测试参数读取测试任务,执行测试任务以得到对待测试应用程序测试后的测试结果,通过对待测试应用程序进行测试的过程中,测试客户端可以根据测试参数选择相应的测试任务,并记录得到的测试结果,无需人工点击进行测试,不仅节约了人力资源,还通过测试的结果更加准确,不会由于人工失误导致测试错误。
[0041] 本发明实施例的应用程序测试方的测试界面可以如图2所示,用户可以根据需要选择开始测试、结束测试和上传数据等,并且,还可以选择是否清空原有的结果数据,在接收用户的选择之后,执行相应的程序。
[0042] 优选地,为了提高进行测试的速度以及测试的准确性,测试参数包括多个参数,多个参数对应测试任务,测试客户端按照测试参数执行测试任务包括:在多个参数中选择一个参数。测试客户端针对选择的一个参数执行测试任务以对待测试应用程序进行测试,测试客户端记录测试参数和测试结果包括:测试客户端记录针对多个参数中每个参数执行测试任务之后得到的测试结果。
[0043] 测试参数可以包括多个参数,包括多个参数可以为待测试应用程序从不同应用电子市场的下载速度,也可以为运行待测试应用程序时消耗的内存,还可以是运行待测试应用程序时的CPU占用,以及待测试应用程序的页面打开速度等。另外,在测试待测试应用程序从不同应用电子市场下载程序包时,不同的应用电子市场也可以作为测试参数。
[0044] 在按照多个参数执行测试任务时,可以在多个参数中选择一个参数执行测试任务,并记录针对每个参数执行测试任务后的测试结果。例如,在上述多个参数中随机选择CPU占用作为测试参数,则针对CPU占用执行测试任务,即运行待测试应用程序,记录执行该测试任务后的测试结果(如占用80%)。在多个参数中选择一个参数时,可以随机选择多个参数中的任意一个参数,也可以按一定的顺序选择一个参数。在对选择的一个参数执行测试任务之后,可以根据需要继续选择下一个参数进行并进行测试任务。例如,在选择对CPU占用进行测试之后,还可以选择测试打开页面的速度进行测试。
[0045] 选择的参数可以相互关联的参数,也可以是相互无关联的参数,为了保证记录的测试结果准确,在执行一个测试任务时,就记录该测试任务的测试参数,并在测试任务结束后记录该测试任务对应的测试结果。在执行测试任务时,可以在检测到开始进行测试时,调用Monkeyrunner工具进行模拟点击,以触发测试任务的启动,同理,在一个测试任务结束后需要执行下一个测试任务时,也可以利用Monkeyrunner工具进行模拟点击。例如,在执行“下载QQ浏览器”的测试任务之后,确定下载QQ浏览器的速度为89Kb/S,在此测试任务结束之后,测试“QQ浏览器的安装时间”,那么,利用Monkeyrunner工具模拟点击下载的QQ浏览器的安装包以安装QQ浏览器,并记录安装浏览器的时间。
[0046] 通过上述实施例,可以在多个参数中选择用户期望进行测试的参数并执行相应的测试任务,记录测试结果,在测试多个参数时,可以在执行完针对一个参数的测试任务之后,再执行针对下一个参数的测试任务,从而避免了人工进行测试时由于操作失误而导致的测试错误,不仅节约了人力成本,还提高了测试的速度和准确性。
[0047] 优选地,在记录针对多个参数中每个参数执行测试任务之后得到的测试结果之后,应用程序测试方法还包括:测试客户端记录在多个参数中选择参数的选择顺序。测试客户端按照选择顺序执行测试任务。测试客户端重复执行测试任务。
[0048] 在记录多个参数中每个参数执行测试任务之后得到的测试结果之后,如果需要对多个参数进行重复测试,则可以记录多个参数中选择参数的选择顺序,并按照选择参数的选择顺序执行测试任务。执行的测试任务可以是同一个测试任务重复执行,还可以是不同的测试任务重复执行。
[0049] 例如,多个参数为应用宝、360助手、91助手、安智市场、安卓市场、百度和豌豆夹,按照这个顺序逐个下载“微信”的安装包,即逐个从应用宝、360助手、91助手、安智市场、安卓市场、百度和豌豆夹上下载“微信”的安装包,并记录从每个应用电子市场下载“微信”安装包的下载速度。其中,测试任务均为“下载微信安装包”,针对不同的参数测试待测试应用程序的下载速度。为了尽量在相同的网络状态下测试下载速度,并尽量减少网络状态对下载速度的影响,则重复执行测试任务时,按照应用宝、360助手、91助手、安智市场、安卓市场、百度和豌豆夹的顺序进行下载,并记录下载速度。
[0050] 又例如,为了减少测试流程,提高测试速度,多个参数可以为下载QQ浏览器的速度、安装QQ浏览器的时间和运行QQ浏览器的占用内存,这样,在执行完测试下载速度的测试任务之后,执行测试安装时间的测试任务,在安装完成之后,运行QQ浏览器以执行测试占用内存的任务。按照上述顺序可以依次对下载速度,安装时间以及内存的占用进行测试,环环相扣,节约了整个检测流程的时间,从而提高了进行检测效率。
[0051] 上述步骤可以如图3所示:
[0052] 步骤S301,获取待测试应用程序的测试参数,即读取本地配置文件参数:测试地点、应用市场名称、下载的应用、下载时间、循环次数。
[0053] 步骤S302,启动任务循环执行。
[0054] 步骤S303,执行测试任务,即启动应用市场、自动化模拟按键进行下载任务,下载完成关闭应用市场。
[0055] 步骤S304,记录测试参数和测试结果,即记录下载过程的开始时间、接收时间和下载产生的流量。
[0056] 步骤S305,计算结果写入文件。
[0057] 步骤S306,任务循环厕所结束后,上传结果文件到服务器。
[0058] 图4是根据本发明实施例的记录测试参数和测试结果的流程图。如图所示,包括如下步骤:
[0059] (QQ浏览器的安装时间,下载的速度等,平均时间等)
[0060] 步骤S402,测试客户端收集执行测试任务时的测试数据。在针对测试参数执行测试任务时,为了便于得到测试结果,可以记录执行测试任务时的测试数据,并根据测试数据推算出最终的测试结果,当然,收集的测试数据也可以是最终的测试结果。
[0061] 步骤S404,测试客户端判断测试数据与测试参数是否匹配。
[0062] 在收集到执行测试任务时的测试数据之后,判断收集到的测试数据是否与测试参数匹配,即测试数据是否为期望得到的数据,是否能够反映待测试应用程序的性能等。
[0063] 步骤S406,如果测试数据与测试参数不匹配,则测试客户端对测试数据进行处理,其中,对测试数据处理之后的结果与测试参数相匹配。
[0064] 如果测试数据与测试参数不匹配,则对测试数据进行计算等处理,通过处理后的测试数据与测试参数相匹配。
[0065] 步骤S408,如果测试数据与测试参数匹配,则测试客户端记录测试数据为测试结果。
[0066] 例如,在测试“下载微信安装包”的下载速度时,下载速度不方便直接测得,那么,收集“下载微信安装包”时产生的流量和下载时间,通过流量和下载时间计算得到下载速度。对于Linux系统,Linux系统下所有的信息都是以文件的形式存在的,所以应用程序的流量信息也会被保存在操作系统的文件中。对于Android系统,Android2.2版本以前的系统的流量信息都存放在proc/net/dev(或者proc/self/net/dev)文件下,读取这些文件然后对其进行解析就能够得到下载的流量。下载过程对于开始下载时间、下载完成时间的获取可以有不同的方式实现,例如采用手机自动录屏,图片分,从图片UI上判断开始下载时间、下载完成时间。
[0067] 为了确保测试结果的准确性,排除网络状况对下载速度的影响,可以重复执行测试任务,在得到每次测试任务的测试结果后,取多个测试结果并计算平均值,将平均值作为最终的测试结果。对于“下载微信安装包”的例子,可以在测试10~20次之后,收集多次测试的下载速度,并计算多次测试的下载速度的平均值。
[0068] 优选地,为了便于在不同的终端上查看测试结果,在记录测试参数和测试结果之后,应用程序测试方法还包括:测试客户端将测试参数和测试结果发送给服务器,其中,服务器判断测试结果是否异常。如果测试结果异常,则滤除异常的测试结果,保存正常的测试结果,如图5所示。
[0069] 首先,进程监听,获取上传的数据;然后过来异常值后写入数据库;最后在PC页面展示结果数据及图表对比。具体地,在将测试参数和测试结果发送给服务器之后,服务器会根据测试参数和测试数据过滤异常的数据,并将过滤异常的数据后得到的数据保存在数据库中。服务器可以将这些测试结果展示在计算机中,还可以对测试结果进行简单的处理分析,例如,生成图表(如图6和图7所示)。服务器可以部署监听,随时发现由测试客户端报送的测试结果。
[0070] 测试客户端将测试参数和测试结果发送给服务器的步骤可以通过以下方式实现:
[0071]
[0072]
[0073]
[0074] 上述实施例的应用程序测试方法的架构如图8所示,如图所示,测试人员启动测试客户端,通过android前台客户端启动测试任务,然后测试层序开始自动执行下载测试任务,并保存测试结果,在测试任务结束后自动上传结果文件到服务器。上传数据到服务器之后,服务器获取数据,并存储到数据库,对数据进行展示,通过测试人员可以通过PC端访问记录的数据。
[0075] 需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模并不一定是本发明所必须的。
[0076] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以通过一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0077] 实施例2
[0078] 根据本发明实施例,还提供了一种用于实施上述应用程序的测试方法的应用程序的测试装置,该应用程序的测试装置主要用于执行本发明实施例上述内容所提供的应用程序的测试方法,以下对本发明实施例所提供的应用程序的测试监测装置做具体介绍:
[0079] 图9是根据本发明实施例的应用程序测试装置的示意图。如图所示,该应用程序测试装置包括确定单元10、读取单元20、执行单元30和记录单元40。
[0080] 确定单元10用于通过测试客户端确定待测试应用程序的测试参数。
[0081] 待测试应用程序可以是能够安装在安卓系统中的任一应用程序,通常,该应用程序可以通过网页、应用电子市场等途径下载得到。
[0082] 通常,在需要对待测试应用程序更新时,对待测试应用程序进行错误排查时,或者在待测试应用程序发布之前,均需要对待测试应用程序进行测试,以确定待测试应用程序的性能等,以保证为用户提供良好的用户体验。由于影响待测试应用程序的测试参数有很多种,为了有针对性的测试某个测试参数对待测试应用程序的影响,测试客户端首先要确定待测试应用程序的测试参数。
[0083] 待测试应用程序可以为即时通信程序、地图程序和浏览器等。测试参数可以为待测试应用程序在应用宝上的下载速度,在运行待测试应用程序时占用的内存和运行待测试应用程序的流畅度等。例如,待测试应用程序为“微信”,测试参数为从“应用宝”下载“微信”的应用程序的下载速度。
[0084] 读取单元20用于通过测试客户端读取测试参数对应的测试任务,其中,测试任务为对待测试应用程序进行测试的任务。由于测试参数的不同,针对该测试参数的测试任务也可能不同,因此,测试客户端在确定待测试参数之后,读取待测试参数对应的测试任务。
[0085] 测试参数为待测试应用程序在应用电子市场的下载速度时,对应的测试任务为在应用电子市场下载该待测试应用程序;测试参数为运行待测试应用程序时占用的内存时,对应的测试任务为运行该待测试应用程序,其他测试参数的测试任务同理可推,不再一一赘述。
[0086] 举例说明如下:例如,测试参数为在应用宝下载“微信”的应用程序时的下载速度,测试客户端读取测试参数对应的测试任务为在应用包下载“微信”的应用程序。又例如,测试参数为运行QQ浏览器时系统占用的内存,则测试客户端读取的测试任务为运行QQ浏览器。
[0087] 执行单元30用于通过测试客户端按照测试参数执行测试任务,得到测试结果。
[0088] 由于测试参数与测试任务对应,测试客户端需要按照测试参数执行测试任务,例如,测试在应用宝下载“微信”的应用程序的下载速度时,测试客户端需要执行的测试任务为从应用宝下载“微信”,而非执行启动“微信”的任务。在测试客户端按照测试参数执行测试任务之后,得到测试结果。
[0089] 记录单元40用于通过测试客户端记录测试参数和测试结果。
[0090] 测试客户端记录测试参数和测试结果之后,能够确定得到的测试结果是针对哪个测试参数的,即对与某个测试参数来说,测试待测试应用程序得到的测试结果是什么。这样,在对测试结果进行分析时,可以根据测试参数和测试结果方便的确定测试应用程序的性能。
[0091] 以下结合例1对上述实施例进行说明。
[0092] 例1:待测试应用程序为“微信”,测试参数为下载“微信”的下载速度,测试任务为下载“微信”。首先,测试客户端确定测试参数为测试“微信”的下载速度。其次,测试客户端读取测试任务为“下载微信”。然后,执行测试任务,即在应用电子市场下载“微信”,在测试任务执行完毕后记录下载“微信”时的下载速度。
[0093] 通过上述实施例,利用测试客户端确定待测试应用程序的测试参数,并根据测试参数读取测试任务,执行测试任务以得到对待测试应用程序测试后的测试结果,使得对待测试应用程序进行测试的过程中,测试客户端可以根据测试参数选择相应的测试任务,并记录得到的测试结果,无需人工点击进行测试,不仅节约了人力资源,还使得测试的结果更加准确,不会由于人工失误导致测试错误。
[0094] 优选地,为了提高进行测试的速度以及测试的准确性,测试参数包括多个参数,多个参数对应测试任务,执行单元包括:选择模块,用于通过测试客户端在多个参数中选择一个参数。执行模块,用于通过测试客户端针对选择的一个参数执行测试任务以对待测试应用程序进行测试,记录单元还用于通过测试客户端记录针对多个参数中每个参数执行测试任务之后得到的测试结果。
[0095] 测试参数可以包括多个参数,包括多个参数可以为待测试应用程序从不同应用电子市场的下载速度,也可以为运行待测试应用程序时消耗的内存,还可以是运行待测试应用程序时的CPU占用,以及待测试应用程序的页面打开速度等。另外,在测试待测试应用程序从不同应用电子市场下载程序包时,不同的应用电子市场也可以作为测试参数。
[0096] 在按照多个参数执行测试任务时,可以在多个参数中选择一个参数执行测试任务,并记录针对每个参数执行测试任务后的测试结果。例如,在上述多个参数中随机选择CPU占用作为测试参数,则针对CPU占用执行测试任务,即运行待测试应用程序,记录执行该测试任务后的测试结果(如占用80%)。在多个参数中选择一个参数时,可以随机选择多个参数中的任意一个参数,也可以按一定的顺序选择一个参数。在对选择的一个参数执行测试任务之后,可以根据需要继续选择下一个参数进行并进行测试任务。例如,在选择对CPU占用进行测试之后,还可以选择测试打开页面的速度进行测试。
[0097] 选择的参数可以相互关联的参数,也可以是相互无关联的参数,为了保证记录的测试结果准确,在执行一个测试任务时,就记录该测试任务的测试参数,并在测试任务结束后记录该测试任务对应的测试结果。在执行测试任务时,可以在检测到开始进行测试时,调用Monkeyrunner工具进行模拟点击,以触发测试任务的启动,同理,在一个测试任务结束后需要执行下一个测试任务时,也可以利用Monkeyrunner工具进行模拟点击。例如,在执行“下载QQ浏览器”的测试任务之后,确定下载QQ浏览器的速度为89Kb/S,在此测试任务结束之后,测试“QQ浏览器的安装时间”,那么,利用Monkeyrunner工具模拟点击下载的QQ浏览器的安装包以安装QQ浏览器,并记录安装浏览器的时间。
[0098] 通过上述实施例,可以在多个参数中选择用户期望进行测试的参数并执行相应的测试任务,记录测试结果,在测试多个参数时,可以在执行完针对一个参数的测试任务之后,再执行针对下一个参数的测试任务,从而避免了人工进行测试时由于操作失误而导致的测试错误,不仅节约了人力成本,还提高了测试的速度和准确性。
[0099] 优选地,应用程序测试装置还包括:顺序记录单元,用于在记录针对多个参数中每个参数执行测试任务之后得到的测试结果之后,通过测试客户端记录在多个参数中随机选择参数的选择顺序。顺序执行单元,用于通过测试客户端按照选择顺序执行测试任务。以及重复执行单元,用于通过测试客户端重复执行测试任务。
[0100] 在记录多个参数中每个参数执行测试任务之后得到的测试结果之后,如果需要对多个参数进行重复测试,则可以记录多个参数中选择参数的选择顺序,并按照选择参数的选择顺序执行测试任务。执行的测试任务可以是同一个测试任务重复执行,还可以是不同的测试任务重复执行。
[0101] 例如,多个参数为应用宝、360助手、91助手、安智市场、安卓市场、百度和豌豆夹,按照这个顺序逐个下载“微信”的安装包,即逐个从应用宝、360助手、91助手、安智市场、安卓市场、百度和豌豆夹上下载“微信”的安装包,并记录从每个应用电子市场下载“微信”安装包的下载速度。其中,测试任务均为“下载微信安装包”,针对不同的参数测试待测试应用程序的下载速度。为了尽量在相同的网络状态下测试下载速度,并尽量减少网络状态对下载速度的影响,则重复执行测试任务时,按照应用宝、360助手、91助手、安智市场、安卓市场、百度和豌豆夹的顺序进行下载,并记录下载速度。
[0102] 又例如,为了减少测试流程,提高测试速度,多个参数可以为下载QQ浏览器的速度、安装QQ浏览器的时间和运行QQ浏览器的占用内存,这样,在执行完测试下载速度的测试任务之后,执行测试安装时间的测试任务,在安装完成之后,运行QQ浏览器以执行测试占用内存的任务。按照上述顺序可以依次对下载速度,安装时间以及内存的占用进行测试,环环相扣,节约了整个检测流程的时间,从而提高了进行检测效率。
[0103] 进一步地,记录单元包括:收集模块,用于收集执行测试任务时的测试数据。在针对测试参数执行测试任务时,为了便于得到测试结果,可以记录执行测试任务时的测试数据,并根据测试数据推算出最终的测试结果,当然,收集的测试数据也可以是最终的测试结果。
[0104] 判断模块,用于通过测试客户端判断测试数据与测试参数是否匹配。
[0105] 在收集到执行测试任务时的测试数据之后,判断收集到的测试数据是否与测试参数匹配,即测试数据是否为期望得到的数据,是否能够反映待测试应用程序的性能等。
[0106] 处理模块,用于通过测试客户端在测试数据与测试参数不匹配时,对测试数据进行处理,其中,对测试数据处理之后的结果与测试参数相匹配。
[0107] 如果测试数据与测试参数不匹配,则测试客户端对测试数据进行计算等处理,使得处理后的测试数据与测试参数相匹配。
[0108] 记录模块,用于在测试数据与测试参数匹配时,通过测试客户端记录测试数据为测试结果。
[0109] 例如,在测试“下载微信安装包”的下载速度时,下载速度不方便直接测得,那么,收集“下载微信安装包”时产生的流量和下载时间,通过流量和下载时间计算得到下载速度。对于Linux系统,Linux系统下所有的信息都是以文件的形式存在的,所以应用程序的流量信息也会被保存在操作系统的文件中。对于Android系统,Android2.2版本以前的系统的流量信息都存放在proc/net/dev(或者proc/self/net/dev)文件下,读取这些文件然后对其进行解析就能够得到下载的流量。下载过程对于开始下载时间、下载完成时间的获取可以有不同的方式实现,例如采用手机自动录屏,图片分帧,从图片UI上判断开始下载时间、下载完成时间。
[0110] 为了确保测试结果的准确性,排除网络状况对下载速度的影响,可以重复执行测试任务,在得到每次测试任务的测试结果后,取多个测试结果并计算平均值,将平均值作为最终的测试结果。对于“下载微信安装包”的例子,可以在测试10~20次之后,收集多次测试的下载速度,并计算多次测试的下载速度的平均值。
[0111] 优选地,为了便于在不同的终端上查看测试结果,应用程序测试装置还包括:发送单元,用于在记录测试参数和测试结果之后,通过测试客户端将测试参数和测试结果发送给服务器,其中,服务器判断测试结果是否异常。如果测试结果异常,则滤除异常的测试结果,保存正常的测试结果。
[0112] 首先,进程监听,获取上传的数据;然后过来异常值后写入数据库;最后在PC页面展示结果数据及图表对比。具体地,在将测试参数和测试结果发送给服务器之后,服务器会根据测试参数和测试数据过滤异常的数据,并将过滤异常的数据后得到的数据保存在数据库中。服务器可以将这些测试结果展示在计算机中,还可以对测试结果进行简单的处理分析,例如,生成图表。服务器可以部署监听,随时发现由测试客户端报送的测试结果。
[0113] 上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0114] 在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0115] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0116] 所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0117] 以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈