在云测试平台中统计测试结果的方法及装置转让专利

申请号 : CN201510639422.8

文献号 : CN105279065B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 韩竞竞龙慧李欣

申请人 : 北京奇虎科技有限公司奇智软件(北京)有限公司

摘要 :

本发明公开了一种在云测试平台中统计测试结果的方法及装置,能够解决现有技术中用户无法在云测试平台中快速查询测试结果的问题。该方法包括:在测试任务的执行过程中,对测试任务中包含的各个子任务的状态进行监测;每当监测到一个子任务的状态改变后,在预设的离线统计报表中更新与该子任务相关的中间结果数据;当测试任务执行完成后,根据最新的中间结果数据生成离线统计报表中的最终结果数据;其中,离线统计报表中的数据内容用于供用户终端查询。

权利要求 :

1.一种在云测试平台中统计测试结果的方法,其包括:

在测试任务的执行过程中,对所述测试任务中包含的各个子任务的状态进行监测;其中,子任务的状态包括多种;

每当监测到一个子任务的状态改变后,在预设的离线统计报表中更新与该子任务相关的中间结果数据;其中,所述离线统计报表中的数据内容根据测试任务的当前进展情况实时更新;

当所述测试任务执行完成后,根据最新的中间结果数据生成所述离线统计报表中的最终结果数据;

其中,所述离线统计报表中的数据内容用于供用户终端查询。

2.根据权利要求1所述的方法,其中,在所述测试任务的执行过程中和/或所述测试任务执行完成后,进一步包括:接收用户终端发出的查询请求,根据所述查询请求中的查询项从所述离线统计报表中查找对应的数据内容,并将查找到的数据内容提供给所述用户终端。

3.根据权利要求1或2所述的方法,其中,所述测试任务中包含的各个子任务通过下述方式获得:通过将所述测试任务中包含的任务类型乘以所述测试任务中包含的设备数量来确定多个子任务。

4.根据权利要求1或2所述的方法,其中,所述子任务的状态包括以下状态中的多种:等待运行、运行中、安装失败、启动失败、崩溃退出、卸载失败、测试通过以及平台错误。

5.根据权利要求1或2所述的方法,其中,所述离线统计报表中预先定义了与测试任务中包含的各种任务类型相对应的分类规则和/或统计指标;其中,所述任务类型包括:UI遍历测试、兼容性测试、安全性能测试以及脚本测试;所述分类规则包括:按照分辨率分类、按照系统版本分类、按照品牌分类、按照测试结果分类;所述统计指标包括:CPU占用量、内存占用量、安装耗时、启动耗时、耗电量、网络上/下行流量、以及各项统计指标所对应的均值、峰值和/或区间分布。

6.一种在云测试平台中统计测试结果的装置,其包括:

监测模块,适于在测试任务的执行过程中,对所述测试任务中包含的各个子任务的状态进行监测;其中,子任务的状态包括多种;

更新模块,适于每当监测到一个子任务的状态改变后,在预设的离线统计报表中更新与该子任务相关的中间结果数据;其中,所述离线统计报表中的数据内容根据测试任务的当前进展情况实时更新;

统计模块,适于当所述测试任务执行完成后,根据最新的中间结果数据生成所述离线统计报表中的最终结果数据;其中,所述离线统计报表中的数据内容用于供用户终端查询。

7.根据权利要求6所述的装置,其中,进一步包括:

查询模块,适于接收用户终端发出的查询请求,根据所述查询请求中的查询项从所述离线统计报表中查找对应的数据内容,并将查找到的数据内容提供给所述用户终端。

8.根据权利要求6或7所述的装置,其中,所述监测模块通过将所述测试任务中包含的任务类型乘以所述测试任务中包含的设备数量来确定多个子任务。

9.根据权利要求6或7所述的装置,其中,所述子任务的状态包括以下状态中的多种:等待运行、运行中、安装失败、启动失败、崩溃退出、卸载失败、测试通过以及平台错误。

10.根据权利要求6或7所述的装置,其中,所述离线统计报表中预先定义了与测试任务中包含的各种任务类型相对应的分类规则和/或统计指标;其中,所述任务类型包括:UI遍历测试、兼容性测试、安全性能测试以及脚本测试;所述分类规则包括:按照分辨率分类、按照系统版本分类、按照品牌分类、按照测试结果分类;所述统计指标包括:CPU占用量、内存占用量、安装耗时、启动耗时、耗电量、网络上/下行流量、以及各项统计指标所对应的均值、峰值和/或区间分布。

说明书 :

在云测试平台中统计测试结果的方法及装置

技术领域

[0001] 本发明涉及互联网技术领域,具体涉及一种在云测试平台中统计测试结果的方法及装置。

背景技术

[0002] 云测试是一种基于云计算的新型测试方案,其能够提供一套完整的测试环境,测试人员利用虚拟桌面等手段登陆该测试环境即可立即展开测试。通过云测试方案,将软硬件安装、环境配置以及环境维护等代价转移给了云测试平台的提供者,使得测试人员直接利用云测试平台中提供的软硬件配置就能快速完成测试。通过云测试方案能够显著节约测试成本、且大幅提高测试效率。
[0003] 但是,由于在云测试方案中包含大量的软硬件配置,且可能同时处理大量用户提交的测试用例,因而容易导致整个系统负载过高、响应速度降低。特别地,当用户终端需要查看测试报告时,需要根据用户终端发出的查询请求实时计算相关的测试结果,然而一个测试任务往往包含几十个、甚至几百个子任务,因此实时计算量非常大,导致用户可能需要等待几十秒甚至几分钟,从而严重降低了用户体验。
[0004] 由此可见,在现有的云测试平台中,如何使用户能够快速查询测试结果成为一个亟待解决的问题。

发明内容

[0005] 鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的在云测试平台中统计测试结果的方法及装置。
[0006] 根据本发明的一个方面,提供了一种在云测试平台中统计测试结果的方法,其包括:在测试任务的执行过程中,对测试任务中包含的各个子任务的状态进行监测;每当监测到一个子任务的状态改变后,在预设的离线统计报表中更新与该子任务相关的中间结果数据;当测试任务执行完成后,根据最新的中间结果数据生成离线统计报表中的最终结果数据;其中,离线统计报表中的数据内容用于供用户终端查询。
[0007] 依据本发明的另一方面,提供了一种在云测试平台中统计测试结果的装置,其包括:监测模块,适于在测试任务的执行过程中,对测试任务中包含的各个子任务的状态进行监测;更新模块,适于每当监测到一个子任务的状态改变后,在预设的离线统计报表中更新与该子任务相关的中间结果数据;统计模块,适于当测试任务执行完成后,根据最新的中间结果数据生成离线统计报表中的最终结果数据;其中,离线统计报表中的数据内容用于供用户终端查询。
[0008] 通过本发明中的统计测试结果的方法及装置,能够在测试任务的执行过程中,每完成一个子任务就对离线统计报表中相关的中间结果数据进行一次更新,因此,当整个测试任务执行完成后,能够直接根据最新的中间结果数据快速地在离线统计报表中生成最终结果数据,其中,离线统计报表内存储有用户需要的所有测试结果。例如,当需要对A机型的设备的测试结果进行统计时,每当一个与A机型的设备相对应的子任务完成时,就根据该子任务的执行结果对A机型的设备的测试结果进行更新,假设A机型的设备所对应的子任务共有100个,通过本发明中的方法每完成一个子任务就立刻在后台计算出相关结果,当整个测试任务完成时,所有的测试结果都已存储在离线统计报表中,当接收到用户终端的查询请求时,不必进行任何计算,只需一次查询过程就可以向用户反馈结果,从而显著缩短了用户的等待时间。而在现有技术中,则需要根据用户终端的查询请求逐一计算,假设一个子任务计算1秒钟,100个子任务也会计算100秒钟,从而造成用户无法忍受的延迟。综上所述,正是由于本发明中的测试结果是以离线状态预先生成的,而不是在接收到用户终端的请求后才以在线状态实时计算的,因而能够在云测试系统中显著降低系统负载,提高响应速度,改善用户体验。
[0009] 上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

[0010] 通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0011] 图1示出了根据本发明一个实施例的在云测试平台中统计测试结果的方法的流程图;
[0012] 图2示出了本发明一个具体实施例提供的在云测试平台中统计测试结果的方法的流程图;
[0013] 图3a示出了对兼容覆盖的测试结果进行统计的报表示意图;
[0014] 图3b示出了对UI遍历的测试结果进行统计的报表示意图;
[0015] 图3c示出了根据测试结果对设备性能进行统计的性能报表示意图;
[0016] 图3d示出了根据兼容覆盖、UI遍历以及性能统计得到的综合报表示意图;
[0017] 图4a-图4d分别示出了按照测试结果分类、按照品牌分类、按照系统分类以及按照分辨率分类时的测试结果统计情况;以及,
[0018] 图5示出了根据本发明一个实施例的在云测试平台中统计测试结果的装置的结构图。

具体实施方式

[0019] 下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0020] 本发明实施例提供了一种在云测试平台中统计测试结果的方法及装置,至少能够解决现有技术中用户无法在云测试平台中快速查询测试结果的问题。
[0021] 图1示出了根据本发明一个实施例的在云测试平台中统计测试结果的方法的流程图,如图1所示,该方法包括如下步骤:
[0022] 步骤S110:在测试任务的执行过程中,对测试任务中包含的各个子任务的状态进行监测。
[0023] 其中,子任务的状态包括以下状态中的一种或多种:等待运行、运行中、安装失败、启动失败、崩溃退出、卸载失败、测试通过以及平台错误。
[0024] 步骤S120:每当监测到一个子任务的状态改变后,在预设的离线统计报表中更新与该子任务相关的中间结果数据。
[0025] 其中,该离线统计报表中预先定义了与测试任务中包含的各种任务类型相对应的分类规则和/或统计指标。其中,任务类型包括:UI遍历测试、兼容性测试、安全性能测试以及脚本测试;分类规则包括:按照分辨率分类、按照系统版本分类、按照品牌分类、按照测试结果分类;统计指标包括:CPU占用量、内存占用量、安装耗时、启动耗时、耗电量、网络上/下行流量、以及各种统计指标所对应的均值、峰值和/或区间分布。
[0026] 步骤S130:当测试任务执行完成后,根据最新的中间结果数据生成离线统计报表中的最终结果数据,其中,离线统计报表中的数据内容用于供用户终端查询。
[0027] 可选地,在测试任务的执行过程中和/或测试任务执行完成后,还可以进一步包括如下步骤:接收用户终端发出的查询请求,根据查询请求中的查询项从离线统计报表中查找对应的数据内容,并将查找到的数据内容提供给相应的用户终端。
[0028] 通过本发明中的统计测试结果的方法,能够在测试任务的执行过程中,每完成一个子任务就对离线统计报表中相关的中间结果数据进行一次更新,因此,当整个测试任务执行完成后,能够直接根据最新的中间结果数据快速地在离线统计报表中生成最终结果数据。正是由于本发明中的测试结果是以离线状态预先生成的,而不是在接收到用户终端的请求后才以在线状态实时计算的,因而能够在云测试系统中显著降低系统负载,提高响应速度,改善用户体验。
[0029] 图2示出了本发明一个具体实施例提供的在云测试平台中统计测试结果的方法的流程图,如图2所示,该方法包括如下步骤:
[0030] 步骤S210:根据接收到的测试任务中包含的任务类型开始测试。
[0031] 在本实施例中,以任务类型为UI遍历测试和兼容性测试为例进行说明,在本发明其他的实施例中,任务类型还可以进一步包括安全性能测试以及脚本测试等多种类型,本发明对具体的任务类型不做限定。
[0032] 具体地,在本实施例中接收到的测试任务为:对16款终端设备的UI遍历情况和兼容性情况进行测试,因此,在本步骤中需要为本次测试任务分配相应的软硬件资源,从而开始测试过程。其中,一款终端设备是由该终端设备的品牌/型号以及该终端设备上安装的系统版本号唯一标识的。例如,三星S4以及其上安装的安卓版本共同构成一款终端设备。本实施例中的终端设备的品牌包括:HTC、华为、步步高、谷歌以及金立等,系统版本号包括:4.0.3、4.1.2、4.2.1、4.2.2、4.3、4.4.2以及4.4.4等,通过上述品牌与系统版本号的组合定义了16款不同的终端设备。任务类型包括UI遍历和兼容性这两种类型。通过任务类型数乘以终端设备款数得到一个2*16的矩阵,该矩阵中包含32个元素,每个元素分别对应一个子任务,由此可见,本实施例的测试任务中一共包含32个子任务,在每个子任务中,由一款终端设备运行一种类型的任务。通过这样的划分方式能够使每一子任务所包含的工作尽可能地少,从而使离线统计报表能够频繁更新,以便第一时间反映出测试任务的进展情况。在本发明其他的实施例中,还可以通过其他方式来划分子任务,例如,将同一种类型的任务划分为一项子任务,或者,将由同一款终端设备完成的任务划分为一项子任务,本发明对具体的划分方式不做限定。
[0033] 步骤S220:在测试任务的执行过程中,对该测试任务中包含的各个子任务的状态进行监测。
[0034] 在本实施例中,需要对上述32个子任务的状态进行监测。其中,一个子任务对应一个线程,当该线程尚未开始运行时,相应的子任务状态为等待运行;在该线程运行过程中,相应的子任务状态为运行中;当该线程运行完毕后,其相应的子任务的状态则会根据该线程的运行结果而发生改变:例如,根据线程的运行结果,子任务的状态可能变更为安装失败、启动失败、崩溃退出、卸载失败、测试通过以及平台错误等。由此可见,通过对子任务所对应的线程进行监测,就可以监测到子任务的状态。具体监测时,可以通过挂钩(Hook)技术、回调技术等多种方式实现,本发明对此不做限定。当监测到一个线程运行完毕时,则说明其对应的子任务的状态发生了改变,因而触发后续的步骤S230开始执行。也就是说,每当32个子任务中的任一子任务状态改变时,步骤S230都将被触发。
[0035] 步骤S230:每当监测到一个子任务的状态改变后,在预设的离线统计报表中更新与该子任务相关的中间结果数据。
[0036] 其中,该离线统计报表用于记录与测试结果相关的数据内容,以供用户终端查询。具体地,离线统计报表可以在步骤S210中接收到测试任务后根据测试任务的具体类型进行创建,也可以在监测到第一个状态改变的子任务时再进行创建,本发明对其具体创建时机不做限定。另外,还可以根据云测试平台所能实现的任务类型预先创建多种离线统计报表的模版,这样,当接收到测试任务后就可以根据本次任务的类型快速创建好离线统计报表。
[0037] 在上述的离线统计报表中存储有测试结果的原始数据(也叫基础数据)以及计算数据(也叫统计数据)。其中,原始数据是指:直接反映各个子任务的执行结果的数据,例如,“对金立E64.2.1这一款设备的兼容覆盖情况进行测试的测试结果为测试通过”所对应的数据即为原始数据。计算数据是指:根据各个子任务的执行结果进行预设的计算后得到的数据,例如,对兼容覆盖情况进行测试时,测试通过的设备所占的比例即为计算数据。并且,计算数据又进一步包括:中间结果数据以及最终结果数据。其中,中间结果数据是指:当子任务只完成了一部分,尚未全部完成时所计算出的数据;最终结果数据是指:当子任务全部完成后所计算出的数据。上述的中间结果数据以及最终结果数据所包含的具体数据内容是由离线统计报表根据测试任务的具体类型预先定义的,具体的定义规则可以根据实际情况进行确定,本发明对此不做限定。例如,可以在离线统计报表中预先定义与测试任务中包含的各种任务类型相对应的分类规则和/或统计指标,从而进一步根据这些分类规则和/或统计指标来确定相应的中间结果数据以及最终结果数据。具体地,分类规则可以包括:按照分辨率分类、按照系统版本分类、按照品牌分类、按照测试结果分类等;统计指标可以包括:CPU占用量、内存占用量、安装耗时、启动耗时、耗电量、网络上/下行流量、以及各种统计指标所对应的均值、峰值和/或区间分布等等。
[0038] 由于步骤S230是在测试任务的执行过程中被触发的,因此,在步骤S230中需要更新的数据为中间结果数据。为了便于理解,下面结合一个具体实例对需要更新的中间结果数据进行说明:
[0039] 图3a示出了对兼容覆盖的测试结果进行统计的报表示意图,图3b示出了对UI遍历的测试结果进行统计的报表示意图,图3c示出了根据测试结果对设备性能进行统计的性能报表示意图,图3d示出了根据兼容覆盖、UI遍历以及性能统计得到的综合报表示意图。以状态发生改变的子任务为“对金立E64.2.1这一款设备的兼容性情况进行测试”为例来说,当该子任务执行完毕时,该子任务的状态从“运行中”改变为下述状态中的一种:安装失败、启动失败、崩溃退出、卸载失败、测试通过以及平台错误等,具体改变为何种状态取决于该子任务的运行结果。假设该子任务改变后的状态为“测试通过”,相应地,需要在离线统计报表中更新与该子任务相关的中间结果数据如下:
[0040] 首先参照图3a,在该图中需要对兼容性结果进行统计,具体需要统计如下内容:(1)每种测试结果所对应的终端数量(2)每种测试结果所对应的品牌分布情况(3)每种测试结果所对应的系统版本分布情况(4)每种测试结果所对应的分辨率分布情况。因此,当任务内容为“对金立E64.2.1这一款设备的兼容性情况进行测试”的子任务执行完毕且执行结果为测试通过时,至少需要修改如下中间结果数据:(1)将“测试通过”这一测试结果所对应的终端数量加一(2)在“金立”这一品牌所对应的测试结果中增加一个“测试通过”的测试结果(3)在系统版本号4.2.1所对应的测试结果中增加一个“测试通过”的测试结果(4)根据金立E64.2.1这一款设备的分辨率情况修改相应分辨率所对应的测试结果。图3b的具体统计方法与图3a类似,此处不再赘述。
[0041] 接下来参照图3c,在该图中需要根据测试结果对设备性能进行统计,具体需要统计如下内容:CPU占用量、内存占用量、安装耗时、启动耗时、耗电量、网络上/下行流量。因此,当任务内容为“对金立E64.2.1这一款设备的兼容性情况进行测试”的子任务执行完毕且执行结果为测试通过时,还需要对该子任务执行过程中的CPU占用量、内存占用量、安装耗时、启动耗时、耗电量、网络上/下行流量等指标进行计算,并分别根据计算结果更新当前已完成的所有子任务所对应的总的CPU占用量、总的内存占用量、总的安装耗时、总的启动耗时、总的耗电量、总的网络上/下行流量,以便在所有子任务执行完毕时快速得到最终结果数据。
[0042] 最后参照图3d,在该图中需要根据兼容覆盖、UI遍历以及性能统计得到综合数据,具体需要统计如下内容:针对兼容覆盖和UI遍历这两项任务类型来说,每种任务类型所对应的测试结果以及品牌失败率、性能指标的均值及峰值等,这些综合数据主要是根据图3a-图3c中得到的数据内容进行统计得到的,因而可以等到所有的子任务执行完毕后计算,当然,为了节约时间,也可以在每个子任务执行完时先计算出当前已完成的各个子任务所对应的均值及峰值情况。
[0043] 步骤S240:当测试任务执行完成后,根据最新的中间结果数据生成离线统计报表中的最终结果数据。
[0044] 在本实施例中,当32个子任务全部完成时,整个测试任务也相应地执行完毕。因此,当最后一个子任务执行完成时,步骤S240被触发。具体地,可以在监测各个子任务状态的同时,统计已完成的子任务的个数,根据统计结果来确定并更新整个测试任务的完成进度。
[0045] 继续参照图3a-图3d来说明最终结果数据的生成过程:
[0046] 首先参照图3a,在该图中需要对兼容性结果进行统计,具体需要统计如下内容:(1)每种测试结果所对应的终端数量(2)每种测试结果所对应的品牌分布情况(3)每种测试结果所对应的系统版本分布情况(4)每种测试结果所对应的分辨率分布情况。由于本发明中每完成一个子任务就对上述四项内容进行一次更新,因此,对于这四项内容来说,最后一次更新后的数据即为最终结果数据。
[0047] 图3b的统计方法与图3a类似,此处不再赘述。接下来参照图3c及图3d,其中需要统计如下内容:CPU占用量、内存占用量、安装耗时、启动耗时、耗电量、网络上/下行流量等。由于本发明中每完成一个子任务就对上述各项内容进行一次更新,因此,根据最后一次更新后所得到的总的CPU占用量、总的内存占用量、总的安装耗时、总的启动耗时、总的耗电量、总的网络上/下行流量就可以快速计算出各项内容的均值及峰值,从而快速得到最终结果数据。
[0048] 在本实施例中为了便于说明,仅以16款设备为例进行说明,在实际情况中可能包含几百款甚至上千款设备,如果采用传统的在线统计方式,即在接收到用户终端发出的查询请求时再实时计算统计结果,则需要耗费大量的时间:需要将几百个子任务遍历一遍,找出各个子任务对应的系统版本,然后按系统版本进行分类,还要找出各个子任务对应的品牌、分辨率等,并进行相应的分类。另外,还需要分别判断每个子任务属于何种测试结果,以便对每种测试结果进行统计。除此之外,测试过程中所产生的性能数据也很多,例如,假设每秒钟需获取一次设备上的性能数据概况,则在一个子任务的整个运行期间(如5分钟)会产生非常庞大的性能数据量,对这些数据量进行统计时少则几秒,多则几分钟甚至更久。当一个测试任务包含上百个子任务时,统计时间还要乘以上百倍,从而造成用户无法忍受的延时。而且,传统的在线统计方式除了在等待时间上无法被用户接受之外,还容易造成系统的负载过高、数据并发量过大,从而引起系统瓶颈,影响系统的正常运行。由此可见,本发明中的离线统计方式具有诸多优势:在本发明中,统计数据是离线生成的,当接收到用户发来的查询请求时,离线统计报表内已经存储有用户需要的全部数据内容,只需一次查询过程就可以将数据直接提供给用户,大大缩短了用户的等待时间;而且,即使有大量用户同时提交查询请求,也不会使系统负载增加太多,对并发量的影响几乎为零,因而不会造成系统瓶颈。
[0049] 可选地,为了向用户终端提供查询功能,本实施例还可以进一步包括下述步骤S250。其中,步骤S250可以在测试任务的执行过程中和/或测试任务执行完成后执行。
[0050] 步骤S250:接收用户终端发出的查询请求,根据查询请求中的查询项从离线统计报表中查找对应的数据内容,并将查找到的数据内容提供给用户终端。
[0051] 其中,用户终端可以通过点击云测试平台中提供的查询按钮来提交该查询请求,在该查询请求中还可以进一步限定查询项,以便查询具体的一项或多项内容。例如,当用户限定的查询项为“UI遍历”时,则需要从离线统计报表中查找图3b中的数据内容提供给用户终端。由于图3b中的数据内容已经动态计算完成,因此,能够快速地提供给用户终端。而且,用户终端还可以查询各种分类方式所对应的测试结果,例如,图4a-图4d分别示出了按照测试结果分类、按照品牌分类、按照系统分类以及按照分辨率分类时的测试结果统计情况。
[0052] 另外,在本发明中,除了在每个子任务完成之后更新离线统计报表之外,还可以根据其他的规则来更新离线统计报表,例如,每当完成一批子任务之后更新一次离线统计报表;或者,每当完成一个子任务之中的一个环节之后更新一次离线统计报表等。本领域技术人员还可以灵活设定离线统计报表的具体更新时机,本发明对此不作限定。
[0053] 综上所述,通过本发明中的方法,能够离线统计测试结果,每完成一个子任务就触发一个用于计算中间结果的事件,从而能够根据测试任务的进展情况实时更新测试结果。由于离线统计报表中的数据内容是根据测试任务的当前进展情况实时更新的,因此,实时性非常好,能够及时反映最新结果,当用户终端进行查询时感觉不到测试结果是离线统计的,因此,在本发明中,测试结果的实时性不逊于在线统计且用户无感知。
[0054] 图5示出了本发明一个实施例提供的一种在云测试平台中统计测试结果的装置500的结构图。如图5所示,该装置500包括:
[0055] 监测模块51,适于在测试任务的执行过程中,对测试任务中包含的各个子任务的状态进行监测;
[0056] 更新模块52,适于每当监测到一个子任务的状态改变后,在预设的离线统计报表中更新与该子任务相关的中间结果数据;
[0057] 统计模块53,适于当测试任务执行完成后,根据最新的中间结果数据生成离线统计报表中的最终结果数据;其中,离线统计报表中的数据内容用于供用户终端查询。
[0058] 可选地,该装置500进一步包括:查询模块,适于接收用户终端发出的查询请求,根据查询请求中的查询项从离线统计报表中查找对应的数据内容,并将查找到的数据内容提供给用户终端。
[0059] 可选地,监测模块51通过将测试任务中包含的任务类型乘以测试任务中包含的设备数量来确定多个子任务。
[0060] 其中,子任务的状态包括以下状态中的一种或多种:等待运行、运行中、安装失败、启动失败、崩溃退出、卸载失败、测试通过以及平台错误。
[0061] 其中,离线统计报表中预先定义了与测试任务中包含的各种任务类型相对应的分类规则和/或统计指标;其中,任务类型包括:UI遍历测试、兼容性测试、安全性能测试以及脚本测试;分类规则包括:按照分辨率分类、按照系统版本分类、按照品牌分类、按照测试结果分类;统计指标包括:CPU占用量、内存占用量、安装耗时、启动耗时、耗电量、网络上/下行流量、以及各项统计指标所对应的均值、峰值和/或区间分布。
[0062] 上述各个模块的具体工作原理可参照方法实施例中相应部分的描述,此处不再赘述。
[0063] 通过本发明中的统计测试结果的方法及装置,能够在测试任务的执行过程中,每完成一个子任务就对离线统计报表中相关的中间结果数据进行一次更新,因此,当整个测试任务执行完成后,能够直接根据最新的中间结果数据快速地在离线统计报表中生成最终结果数据,其中,离线统计报表内存储有用户需要的所有测试结果。例如,当需要对A机型的设备的测试结果进行统计时,每当一个与A机型的设备相对应的子任务完成时,就根据该子任务的执行结果对A机型的设备的测试结果进行更新,假设A机型的设备所对应的子任务共有100个,通过本发明中的方法每完成一个子任务就立刻在后台计算出相关结果,当整个测试任务完成时,所有的测试结果都已存储在离线统计报表中,当接收到用户终端的查询请求时,不必进行任何计算,只需一次查询过程就可以向用户反馈结果,从而显著缩短了用户的等待时间。而在现有技术中,则需要根据用户终端的查询请求逐一计算,假设一个子任务计算1秒钟,100个子任务也会计算100秒钟,从而造成用户无法忍受的延迟。综上所述,正是由于本发明中的测试结果是以离线状态预先生成的,而不是在接收到用户终端的请求后才以在线状态实时计算的,因而能够在云测试系统中显著降低系统负载,提高响应速度,改善用户体验。
[0064] 在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
[0065] 在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0066] 类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
[0067] 本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
[0068] 此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
[0069] 本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的多机房存储系统中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
[0070] 应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。