目录上传方法、数据发布方法、终端及服务器转让专利

申请号 : CN201410605154.3

文献号 : CN105610878B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 袁宜霞

申请人 : 腾讯科技(深圳)有限公司

摘要 :

本发明公开了一种目录上传方法、数据发布方法、终端及服务器,属于计算机领域。方法包括:实时获取监控目录下所有文件的最新修改时间;将监控目录下每个文件的最新修改时间与存储的每个文件的初始修改时间进行比对;当任一文件的最新修改时间与任一文件的初始修改时间不相同,则将监控目录上传到服务器的接收目录。本发明终端通过比对得出监控目录下任一文件的最新修改时间与任一文件的初始修改时间不相同时,将监控目录上传到服务器的接收目录。服务器接收到监控目录后,对监控目录中的更新数据进行处理,得到代码覆盖率,并将代码覆盖率进行整合得到的整合文件发布到指定网站,从而提供了一种便捷的目录上传及数据发布方法。

权利要求 :

1.一种目录上传方法,其特征在于,所述方法包括:实时获取监控目录下所有文件的最新修改时间;

将所述监控目录下每个文件的最新修改时间与存储的所述每个文件的初始修改时间进行比对;

当任一文件的最新修改时间与所述任一文件的初始修改时间不相同,则将所述监控目录上传到服务器的接收目录,所述接收目录为服务器上存储终端上传的监控目录的一级目录,所述接收目录下具有多个二级目录,每个二级目录对应一个终端上传的监控目录。

2.根据权利要求1所述的方法,其特征在于,所述将所述监控目录上传到服务器的接收目录,包括:根据终端信息,修改所述监控目录的服务器目录名;

根据服务器的IP地址,将目录名修改后的监控目录上传到所述IP地址对应的接收目录。

3.根据权利要求1所述的方法,其特征在于,所述将所述监控目录上传到接收目录之后,还包括:根据所述每个文件的最新修改时间,更新所述存储的所述每个文件的初始修改时间。

4.一种数据发布方法,其特征在于,所述方法包括:实时获取接收目录中当前监控目录,所述接收目录为服务器上存储终端上传的监控目录的一级目录,所述接收目录下具有多个二级目录,每个二级目录对应一个终端上传的监控目录;

根据所述当前监控目录和存储的监控目录,判断是否存在更新数据;

当存在更新数据,获取所述更新数据;

根据所述更新数据,生成代码覆盖率;

将所有代码覆盖率进行整合,得到整合文件;

将所述整合文件发布到指定网站。

5.根据权利要求4所述的方法,其特征在于,根据所述当前监控目录和存储的监控目录,判断是否存在更新数据,包括:将所述当前监控目录与所述存储的监控目录进行比对;

若所述当前 监控目录中存在新增的监控目录,则判断存在更新数据;

若所述当前监控目录中不存在新增的监控目录,则获取所述当前监控目录下所有文件的最新修改时间,将所述当前监控目录下所有文件的最新修改时间与所述存储的监控目录下所有文件的初始修改时间进行比对,当任一文件的最新修改时间与初始修改时间不相同,则判断服务器上存在更新数据。

6.一种终端,其特征在于,所述终端包括:

获取模块,用于实时获取监控目录下所有文件的最新修改时间;

比对模块,用于将所述监控目录下每个文件的最新修改时间与存储的所述每个文件的初始修改时间进行比对;

上传模块,用于当任一文件的最新修改时间与所述任一文件的初始修改时间不相同,将所述监控目录上传到服务器的接收目录,所述接收目录为服务器上存储终端上传的监控目录的一级目录,所述接收目录下具有多个二级目录,每个二级目录对应一个终端上传的监控目录。

7.根据权利要求6所述的终端,其特征在于,所述上传模块,包括:修改单元,用于根据终端信息,修改所述监控目录的服务器目录名;

上传单元,用于根据服务器的IP地址,将目录名修改后的监控目录上传到所述IP地址对应的接收目录。

8.根据权利要求6所述的终端,其特征在于,所述终端,还包括:更新模块,用于根据所述每个文件的最新修改时间,更新所述存储的所述每个文件的初始修改时间。

9.一种服务器,其特征在于,所述服务器包括:

第一获取模块,用于实时获取接收目录中当前监控目录,所述接收目录为服务器上存储终端上传的监控目录的一级目录,所述接收目录下具有多个二级目录,每个二级目录对应一个终端上传的监控目录;

判断模块,用于根据所述当前监控目录和存储的监控目录,判断是否存在更新数据;

第二获取模块,用于当存在更新数据,获取所述更新数据;

生成模块,用于根据所述更新数据,生成代码覆盖率;

整合模块,用于将所有代码覆盖率进行整合,得到整合文件;

发布模块,用于将所述整合文件发布到指定网站。

10.根据权利要求9所述的服务器,其特征在于,所述判断模块,包括:比对单元,用于将所述当前监控目录与所述存储的监控目录进行比对;

第一判断单元,用于当所述当前 监控目录中存在新增的监控目录,判断存在更新数据;

第二判断单元,用于当所述当前监控目录中不存在新增的监控目录,获取所述当前监控目录下所有文件的最新修改时间,将所述当前监控目录下所有文件的最新修改时间与所述存储的监控目录下所有文件的初始修改时间进行比对,当任一文件的最新修改时间与初始修改时间不相同,判断存在更新数据。

11.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现如权利要求1至3中任一项所述的目录上传方法,或权利要求4或5所述的数据发布方法。

说明书 :

目录上传方法、数据发布方法、终端及服务器

技术领域

[0001] 本发明涉及计算机技术领域,特别涉及一种目录上传方法、数据发布方法、终端及服务器。

背景技术

[0002] 为了保证应用程序的正确性、完整性、安全性,终端会自动收集应用程序运行时所使用到的源代码,并将收集到的源代码存储在指定目录下。该指定目录称为监控目录,根据监控目录下存储的源代码,服务器可得到应用程序的代码覆盖率。代码覆盖率作为应用程序测试中的一种量度,可帮助研发人员发现应用程序中存在的缺陷。因此,有必要将监控目录上传至服务器,并将监控目录中代码覆盖率发布出来,以使研发人员根据代码覆盖率对应用程序进行完善,降低应用程序在运行过程中的错误率。
[0003] 相关技术在上传监控目录,并发布监控目录中代码覆盖率时,采用如下步骤:
[0004] 第一步,用户获取应用程序的源代码及配置文件之后,将应用程序的源代码及配置文件打包存储在服务器上,得到一个软件安装包及一个.gcno文件,该.gcno文件用于存储应用程序的源代码;
[0005] 第二步,终端获取服务器上的软件安装包,运行该安装包,同时生成一个.gcda文件,该.gcda文件位于监控目录下,用于存储该安装包运行时所使用的源代码;
[0006] 第三步,用户通过数据线将监控目录上传到服务器中.gcno文件所在的目录下。
[0007] 第四步,服务器接收lcov命令,并根据lcov命令,将指定目录下将每个.gcda文件分别与.gcno文件合并,得到多个.info文件,该.info文件用于保存代码覆盖率;
[0008] 第五步,服务器对所有.info文件进行整合,得到一个整合文件;
[0009] 第六步,服务器接收genhtml命令,并根据genhtml命令,将整合文件转变为html形式进行存储;
[0010] 第七步,当研发人员需要查看测试结果时,研发人员通过该服务器获取更新的代码覆盖率数据。
[0011] 在实现本发明的过程中,发明人发现相关技术至少存在以下问题:
[0012] 由于上传监控目录的过程,需要用户手动操作,而此过程需要用户对计算机技术有很深的了解,学习成本较高,且用户手动上传监控目录,不仅不够便捷,而且耗时较长。另外,相关技术发布在应用程序运行结束后,才将代码覆盖率数据发布,发布的代码覆盖率缺乏时效性,且研发人员想要查看最新的代码覆盖率时,需要通过指定的服务器进行查看,查看方式并不便捷。

发明内容

[0013] 为了解决相关技术的问题,本发明实施例提供了一种目录上传方法、数据发布方法、终端及服务器。所述技术方案如下:
[0014] 第一方面,提供了一种目录上传方法,所述方法包括:
[0015] 实时获取监控目录下所有文件的最新修改时间;
[0016] 将所述监控目录下每个文件的最新修改时间与存储的所述每个文件的初始修改时间进行比对;
[0017] 当任一文件的最新修改时间与所述任一文件的初始修改时间不相同,则将所述监控目录上传到服务器的接收目录。
[0018] 结合第一方面,在第一方面的第一种可能的实现方式中,所述实时获取监控目录下所有文件的最新修改时间之前,还包括:
[0019] 存储监控信息,所述监控信息包括所述监控目录、服务器的网络协议IP地址及所述服务器的接收目录。
[0020] 结合第一方面,在第一方面的第二种可能的实现方式中,所述实时获取监控目录下所有文件的最新修改时间之前,还包括:
[0021] 每隔预设时长,触发时间获取指令,根据所述时间获取指令执行所述实时获取监控目录下所有文件的最新修改时间的步骤;或,
[0022] 当检测到预设事件时,触发时间获取指令,根据所述时间获取指令执行所述实时获取监控目录下所有文件的最新修改时间的步骤。
[0023] 结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述将所述监控目录下每个文件的最新修改时间与存储的每个文件的初始修改时间进行比对之前,还包括:
[0024] 存储所述监控目录下所有文件的初始修改时间;或,
[0025] 当建立所述监控目录时,存储所述监控目录下所有文件的初始修改时间;或,[0026] 当所述监控目录中包括新建文件时,存储所述新建文件的初始修改时间。
[0027] 结合第一方面,在第一方面的第四种可能的实现方式中,所述将所述监控目录上传到接收目录,包括:
[0028] 根据终端信息,修改所述监控目录的服务器目录名;
[0029] 根据所述服务器的IP地址,将目录名修改后的监控目录上传到所述IP地址对应的接收目录。
[0030] 结合第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,所述服务器目录名由终端标识与所述监控目录的目录名组成。
[0031] 结合第一方面,在第一方面的第六种可能的实现方式中,所述将所述监控目录上传到接收目录之后,还包括:
[0032] 根据所述每个文件的最新修改时间,更新所述存储的所述每个文件的初始修改时间。
[0033] 第二方面,提供了一种数据发布方法,所述方法包括:
[0034] 实时获取所述接收目录中当前监控目录;
[0035] 根据所述当前监控目录和存储的监控目录,判断是否存在更新数据;
[0036] 当存在更新数据,获取所述更新数据;
[0037] 根据所述更新数据,生成代码覆盖率;
[0038] 将所有代码覆盖率进行整合,得到整合文件;
[0039] 将所述整合文件发布到指定网站。
[0040] 结合第二方面,在第二方面的第一种可能的实现方式中,根据所述当前监控目录和存储的监控目录,判断是否存在更新数据,包括:
[0041] 将所述当前监控目录与所述存储的监控目录进行比对;
[0042] 若所述当监控目录中存在新增的监控目录,则判断存在更新数据;
[0043] 若所述当前监控目录中不存在新增的监控目录,则获取所述当前监控目录下所有文件的最新修改时间,将所述当前监控目录下所有文件的最新修改时间与所述存储的监控目录下所有文件的初始修改时间进行比对,当任一文件的最新修改时间与初始修改时间不相同,则判断所述服务器上存在更新数据。
[0044] 结合第二方面,在第二方面的第二种可能的实现方式中,所述根据所述当前监控目录和存储的监控目录,判断存在更新数据之前,还包括:
[0045] 存储所述接收目录下所有监控目录;或,
[0046] 当建立所述接收目录时,存储所述接收目录下所有监控目录;或,[0047] 所述接收目录中包含新目录时,存储所述新目录。
[0048] 结合第二方面,在第二方面的第三种可能的实现方式中,所述根据所述更新数据,生成代码覆盖率,包括:
[0049] 获取所述更新数据所在的监控目录;
[0050] 将当前应用程序源代码拷贝到所述更新数据所在的监控目录下;
[0051] 在所述更新数据所在的监控目录中,计算所述更新数据与所述应用程序源代码的比值,得到代码覆盖率。
[0052] 结合第二方面,在第二方面的第四种可能的实现方式中,所述将所述整合文件发布到指定网站,包括:
[0053] 将所述整合文件转化为网页形式;
[0054] 将网页形式的文件发布到所述指定网站。
[0055] 第三方面,提供了一种终端,所述终端包括:
[0056] 获取模块,用于实时获取监控目录下所有文件的最新修改时间;
[0057] 比对模块,用于将所述监控目录下每个文件的最新修改时间与存储的所述每个文件的初始修改时间进行比对;
[0058] 上传模块,用于当任一文件的最新修改时间与所述任一文件的初始修改时间不相同,将所述监控目录上传到服务器的接收目录。
[0059] 结合第三方面,在第三方面的第一种可能的实现方式中,所述终端,还包括:
[0060] 第一存储模块,用于存储监控信息,所述监控信息包括所述监控目录、服务器的网络协议IP地址及所述服务器的接收目录。
[0061] 结合第三方面,在第三方面的第二种可能的实现方式中,所述终端,还包括:
[0062] 触发模块,用于每隔预设时长,触发时间获取指令,根据所述时间获取指令执行所述实时获取监控目录下所有文件的最新修改时间的步骤;或,当检测到预设事件时,触发时间获取指令,根据所述时间获取指令执行所述实时获取监控目录下所有文件的最新修改时间的步骤。
[0063] 结合第三方面,在第三方面的第三种可能的实现方式中,所述终端,还包括:
[0064] 第二存储模块,用于存储所述监控目录下所有文件的初始修改时间;或,当建立所述监控目录时,存储所述监控目录下所有文件的初始修改时间;或,当所述监控目录中包括新建文件时,存储所述新建文件的初始修改时间。
[0065] 结合第三方面,在第三方面的第四种可能的实现方式中,所述上传模块,包括:
[0066] 修改单元,用于根据终端信息,修改所述监控目录的服务器目录名;
[0067] 上传单元,用于根据所述服务器的IP地址,将目录名修改后的监控目录上传到所述IP地址对应的接收目录。
[0068] 结合第三方面的第四种可能的实现方式,在第三方面的第五种可能的实现方式中,所述修改模块修改得到的服务器目录名由终端标识与所述监控目录的目录名组成。
[0069] 结合第三方面,在第三方面的第六种可能的实现方式中,所述终端,还包括:
[0070] 更新模块,用于根据所述每个文件的最新修改时间,更新所述存储的所述每个文件的初始修改时间。
[0071] 第四方面,提供了一种服务器,所述服务器包括:
[0072] 第一获取模块,用于实时获取所述接收目录中当前监控目录;
[0073] 判断模块,用于根据所述当前监控目录和存储的监控目录,判断是否存在更新数据;
[0074] 第二获取模块,用于当存在更新数据,获取所述更新数据;
[0075] 生成模块,用于根据所述更新数据,生成代码覆盖率;
[0076] 整合模块,用于将所有代码覆盖率进行整合,得到整合文件;
[0077] 发布模块,用于将所述整合文件发布到指定网站。
[0078] 结合第四方面,在第四方面的第一种可能的实现方式中,所述判断模块,包括:
[0079] 比对单元,用于将所述当前监控目录与所述存储的监控目录进行比对;
[0080] 第一判断单元,用于当所述当监控目录中存在新增的监控目录,判断存在更新数据;
[0081] 第二判断单元,用于当所述当前监控目录中不存在新增的监控目录,获取所述当前监控目录下所有文件的最新修改时间,将所述当前监控目录下所有文件的最新修改时间与所述存储的监控目录下所有文件的初始修改时间进行比对,当任一文件的最新修改时间与初始修改时间不相同,判断存在更新数据。
[0082] 结合第四方面,在第四方面的第二种可能的实现方式中,所述服务器,还包括:
[0083] 存储模块,用于存储所述接收目录下所有监控目录;或,当建立所述接收目录时,存储所述接收目录下所有监控目录;或,所述接收目录中包含新目录时,存储所述新目录。
[0084] 结合第四方面,在第四方面的第三种可能的实现方式中,所述生成模块,包括:
[0085] 获取单元,用于获取所述更新数据所在的监控目录;
[0086] 拷贝单元,用于将当前应用程序源代码拷贝到所述更新数据所在的监控目录下;
[0087] 计算单元,用于在所述更新数据所在的监控目录中,计算所述更新数据与所述应用程序源代码的比值,得到代码覆盖率。
[0088] 结合第四方面,在第四方面的第四种可能的实现方式中,所述发布模块,包括:
[0089] 转化单元,用于将所述整合文件转化为网页形式;
[0090] 发布单元,用于将网页形式的文件发布到所述指定网站。
[0091] 第五方面,提供了一种数据系统,所述系统包括终端和服务器;
[0092] 所述终端如上述第三方面所述的终端;
[0093] 所述服务器如上述第四方面所述的服务器。
[0094] 本发明实施例提供的技术方案带来的有益效果是:
[0095] 终端实时获取监控目录下所有文件的最新修改时间,并将监控目录下每个文件的最新修改时间与存储的每个文件的初始修改时间进行比对,当比对得出任一文件的最新修改时间与任一文件的初始修改时间不相同后,将监控目录上传到服务器的接收目录。服务器实时获取接收目录中当前监控目录,当根据当前监控目录和存储的监控目录,判断得出服务器上存在更新数据之后,获取更新数据,并根据更新数据,生成代码覆盖率,将所有的代码覆盖率整合后整合文件发布到指定网站。由于无需用户手动操作,更无需用户对计算机技术有很深的了解,即可将实现监控目录的上传,因此,上传方式更为便捷。另外,由于更新数据是实时获取到的,因此,根据更新数据生成的代码覆盖率也是实时发布的,且登录到指定网站即可获取到最新的代码覆盖率数据,查看方式更为便捷。

附图说明

[0096] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0097] 图1是本发明一实施例提供的目录上传方法及数据发布方法的实施环境示意图;
[0098] 图2是本发明另一实施例提供的一种目录上传方法流程图;
[0099] 图3是本发明另一实施例提供的一种数据发布方法流程图;
[0100] 图4是本发明另一实施例提供的一种目录上传及数据发布方法流程图;
[0101] 图5是本发明另一实施例提供的一种目录上传流程图;
[0102] 图6是本发明另一实施例提供的一种数据发布方法流程图;
[0103] 图7是本发明另一实施例提供的一种目录上传及数据发布方法的整体流程图;
[0104] 图8是本发明另一实施例提供的一种终端的结构示意图;
[0105] 图9是本发明另一实施例提供的一种服务器的结构示意图;
[0106] 图10是本发明另一实施例提供的一种终端的结构示意图;
[0107] 图11是本发明另一实施例提供的一种服务器的结构示意图;
[0108] 图12是本发明另一实施例提供的一种系统的结构示意图。

具体实施方式

[0109] 为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0110] 请参考图1,其示出了本发明实施例所述的目录上传及数据发布方法所涉及的实施环境,该实施环境包括终端101和服务器102。
[0111] 其中,终端101可以为手机、平板电脑等,本实施例不对终端的类型作具体的限定,该终端中安装有监测应用程序运行的脚本,当应用程序运行时,终端中的脚本可自动收集应用程序运行中所使用的数据,并将收集到的数据发送至服务器102。
[0112] 服务器102为应用程序服务器,该服务器中安装有对服务器上数据进行监测的脚本,当监测到服务器上存在更新数据后,对更新数据进行处理,并将处理后的数据发布到指定网站上。
[0113] 上述终端101和服务器102之间可通过有线网络或者无线网络进行通信。
[0114] 结合上述图1所示的实施环境,本发明实施例提供了一种上传目录的方法,参见图2,本实施例提供的方法流程包括:
[0115] 201、实时获取监控目录下所有文件的最新修改时间。
[0116] 202、将监控目录下每个文件的最新修改时间与存储的每个文件的初始修改时间进行比对。
[0117] 203、当任一文件的最新修改时间与任一文件的初始修改时间不相同,则将监控目录上传到服务器的接收目录。
[0118] 本发明实施提供的方法,通过实时获取监控目录下所有文件的最新修改时间,并将监控目录下每个文件的最新修改时间与存储的每个文件的初始修改时间进行比对,当比对得出任一文件的最新修改时间与任一文件的初始修改时间不相同后,将监控目录上传到服务器的接收目录。由于无需用户手动操作,更无需用户对计算机技术有很深的了解,即可将实现监控目录的上传,因此,上传方式更为便捷。
[0119] 可选地,实时获取监控目录下所有文件的最新修改时间之前,还包括:
[0120] 存储监控信息,监控信息包括监控目录、服务器的网络协议IP地址及服务器的接收目录。
[0121] 可选地,实时获取监控目录下所有文件的最新修改时间之前,还包括:
[0122] 每隔预设时长,触发时间获取指令,根据时间获取指令执行实时获取监控目录下所有文件的最新修改时间的步骤;或,
[0123] 当检测到预设事件时,触发时间获取指令,根据时间获取指令执行实时获取监控目录下所有文件的最新修改时间的步骤。
[0124] 可选地,将监控目录下每个文件的最新修改时间与存储的每个文件的初始修改时间进行比对之前,还包括:
[0125] 存储监控目录下所有文件的初始修改时间;或,
[0126] 当建立监控目录时,存储监控目录下所有文件的初始修改时间;或,[0127] 当监控目录中包括新建文件时,存储新建文件的初始修改时间。
[0128] 可选地,将监控目录上传到接收目录,包括:
[0129] 根据终端信息,修改监控目录的服务器目录名;
[0130] 根据服务器的IP地址,将目录名修改后的监控目录上传到IP地址对应的接收目录。
[0131] 可选地,服务器目录名由终端标识与监控目录的目录名组成。
[0132] 可选地,将监控目录上传到接收目录之后,还包括:
[0133] 根据每个文件的最新修改时间,更新存储的每个文件的初始修改时间。
[0134] 上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
[0135] 结合上述图1所示的实施环境及图2所述的实施例,本发明实施例提供了一种数据发布方法,参见图3,本实施例提供的方法流程包括:
[0136] 301、实时获取接收目录中当前监控目录。
[0137] 302、根据当前监控目录和存储的监控目录,判断是否存在更新数据。
[0138] 303、当存在更新数据,获取更新数据。
[0139] 304、根据更新数据,生成代码覆盖率。
[0140] 305、将所有代码覆盖率进行整合,得到整合文件。
[0141] 306、将整合文件发布到指定网站。
[0142] 本发明实施例提供的方法,服务器实时获取接收目录中当前监控目录,当根据当前监控目录和存储的监控目录,判断得出服务器上存在更新数据之后,获取更新数据,并根据更新数据,生成代码覆盖率,将所有的代码覆盖率整合后的整合文件发布到指定网站。由于更新数据是实时获取到的,因此,根据更新数据生成的代码覆盖率也是实时发布的,且登录到指定网站即可获取到最新的代码覆盖率数据,查看方式更为便捷。
[0143] 可选地,根据当前监控目录和存储的监控目录,判断是否存在更新数据,包括:
[0144] 将当前监控目录与存储的监控目录进行比对;
[0145] 若当前监控目录中存在新增的监控目录,则判断存在更新数据;
[0146] 若当前监控目录中不存在新增的监控目录,则获取当前监控目录下所有文件的最新修改时间,将当前监控目录下所有文件的最新修改时间与存储的监控目录下所有文件的初始修改时间进行比对,当任一文件的最新修改时间与初始修改时间不相同,则判断存在更新数据。
[0147] 可选地,根据当前监控目录和存储的监控目录,判断是否存在更新数据之前,还包括:
[0148] 存储接收目录下所有监控目录;或,
[0149] 当建立接收目录时,存储接收目录下所有监控目录;或,
[0150] 接收目录中包含新目录时,存储新目录。
[0151] 可选地,根据更新数据,生成代码覆盖率,包括:
[0152] 获取更新数据所在的监控目录;
[0153] 将当前应用程序源代码拷贝到更新数据所在的监控目录下;
[0154] 在更新数据所在的监控目录中,计算更新数据与应用程序源代码的比值,得到代码覆盖率。
[0155] 可选地,将整合文件发布到指定网站,包括:
[0156] 将整合文件转化为网页形式;
[0157] 将网页形式的文件发布到指定网站。
[0158] 上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
[0159] 结合上述图1所述的实施环境及图2、图3所述的方法,本发明实施例提供了一种目录上传及数据发布方法,参见图4,本实施例提供的方法流程包括:
[0160] 401、终端实时获取监控目录下所有文件的最新修改时间。
[0161] 为了满足用户的不同需求,终端中安装的应用程序的数量和种类越来越多。由于不同的终端具有不同的性能,不同终端在运行同一款应用程序时,不同终端中应用程序所运行的数据是不同的。又由于不同终端中应用程序所运行的数据对提高应用程序的性能具有重要意义,因此,有必要获取每款应用程序在不同终端中运行时的数据。而为了获取每款应用程序在不同终端中运行时的数据,终端在安装每个应用程序时,都会生成一个特定目录。该特定目录中包含.gcda文件在内的多个文件,可用于存储应用程序运行时的数据。且特定目录下每个文件中存储的数据是不同的,如,在本实施例中,应用程序运行时执行的源代码行数、调用的函数的类型等数据,被存储在特定目录中的.gcda文件中等。
[0162] 由于终端中存储的目录数量较大,为了有针对性地对特定应用程序的运行情况进行监控,终端还将获取监控信息。监控信息包括需要监控的监控目录、服务器的IP地址及服务器的接收目录等,本实施例不对监控信息作具体的限定。
[0163] 代码覆盖率作为度量测试完整性的一种重要的手段,通过代码覆盖率可获得当前测试进展百分比,从而帮助研发人员及时发现应用程序中存在的缺陷,以提高应用程序的整体性能。且根据终端中收集到的应用程序运行时的更新数据及应用程序的源代码,可得到应用程序的代码覆盖率,因此,为了及时地获取到更新的代码覆盖率,终端可实时获取监控目录下所有文件的最新修改时间。
[0164] 另外,由于终端执行每一个操作,都需要相应指令的触发,因此,在实时获取监控目录下所有文件的最新修改时间之前,终端还需要获取时间获取指令。其中,时间获取指令可以为linux系统中的find指令、stat指令等。终端在获取时间获取指令时,可每隔预设时长,触发时间获取指令。其中,预设时长可以为1秒、2秒等,本实施例不对预设时长作具体的限定,当然,为了使获取到的数据更具有时效性,可根据终端的性能,将终端能够分辨的最小时长作为预设时长。当应用程序运行时,每隔预设时长,触发终端生成一个时间获取指令,以使终端根据时间获取指令,实时获取监控目录下所有文件的最新修改时间。
[0165] 除了采用上述方式外,终端获取时间获取指令时,还可通过检测预设事件。当检测到应用程序在运行过程中发生了预设事件,则触发时间获取指令。其中,预设事件可以为调用指定函数、执行指定代码等,本实施例不对预设事件作具体的限定。指定函数、指定代码可以是应用程序管理员根据应用程序的性能设定的函数、代码等。当检测到应用程序在运行过程中,调用了指定的函数或执行了指定代码,将触发终端生成时间获取指令,以使终端根据时间获取指令,实时获取监控目录下所有文件的最新修改时间。
[0166] 402、终端将监控目录下每个文件的最新修改时间与存储的每个文件的初始修改时间进行比对。
[0167] 其中,初始修改时间为终端在本次获取每个文件的修改时间之前,监控目录中记录的每个文件的修改时间。例如,当终端中安装某一款应用程序时,该应用程序监控目录下记录的每个文件的创建时间即为初始修改时间。为了及时地获知应用程序在运行过程中是否执行了新的源代码行、调用了新的函数。终端在获取到监控目录下每个文件的最新修改时间之后,还执行将监控目录下每个文件的最新修改时间与存储的每个文件的初始修改时间进行比对的操作。具体在比对时,需要将相同文件的最新修改时间与初始修改时间进行比对。如,监控目录中的文件为文件A、文件B、文件C,存储的文件A的初始修改时间为2014/01/01/00:00:00,文件B的初始修改时间为2014/01/01/00:00:03,文件C的初始修改时间为
2014/01/01/00:00:06,获取到文件A的最新修改时间为2014/01/0100:00:10,获取到文件B的最新修改时间为2014/01/0100:00:20,获取到文件C的最新修改时间为2014/01/0100:
00:15,在将获取到的监控目录下每个文件的最新修改时间与存储的每个文件的初始修改时间进行比对时,应将文件A的最新修改时间2014/01/0100:00:10与文件A的初始修改时间
2014/01/01/00:00:00进行比对,将文件B的最新修改时间2014/01/0100:00:20与文件B的初始修改时间2014/01/01/00:00:03进行比对,将文件C的最新修改时间2014/01/0100:00:
15与文件C的初始修改时间2014/01/01/00:00:06进行比对。
[0168] 由于存储的每个文件的初始修改时间为进行比对的关键,因此,在进行比对之前,本实施例提供的方法,还将执行存储每个文件的初始修改时间的操作。具体地,在存储每个文件的初始修改时间时,可以获取监控目录下所有文件,并存储监控目录下所有文件的初始修改时间,还可以在建立监控目录时,获取监控目录,并存储监控目录下所有文件的初始修改时间,当然,也可以当检测到监控目录中包括新建文件时,存储新建文件的初始修改时间等,本实施例不对存储监控目录下所有文件的初始修改时间的方式作具体的限定。
[0169] 403、当任一文件的最新修改时间与任一文件的初始修改时间不相同,终端将监控目录上传到服务器的接收目录。
[0170] 当任一文件的最新修改时间与任一文件的初始修改时间不相同,说明应用程序在运行时执行了新的源代码或调用了新的函数,此时,终端需要将监控目录上传到服务器的接收目录。其中,接收目录为服务器上存储终端上传的监控目录的一级目录,接收目录下具有多个二级目录,每个二级目录对应一个终端上传的监控目录。
[0171] 具体地,终端将监控目录上传到服务器的接收目录的方式,包括但不限于如下步骤:
[0172] 第一步,根据终端信息,修改监控目录的服务器目录名。
[0173] 其中,终端信息为终端标识、监控目录的目录名等。终端标识可以为终端的设备名,还可以为终端的IMSI(International Mobile Subscriber Identification Number,国际移动用户识别码)等,本实施例不对终端标识作具体的限定。服务器目录名为待上传的监控目录在服务器上存储时的目录名,服务器目录名由终端标识与监控目录的目录名组成。在根据终端信息,修改监控目录的服务器目录名时,可先根据终端信息,确定待上传的监控目录的服务器目录名,进而将监控目录的目录名修改成确定的服务器目录名。具体地,根据终端信息,确定待上传的监控目录的服务器目录名时,可将终端标识及监控目录的目录名按照一定的顺序组合,得到服务器目录名。如,可将终端标识放在监控目录的目录名前,构成服务器目录名,也可将终端标识放在监控目录的目录名后,构成服务器目录名。例如,终端标识为终端的设备名A,监控目录的目录名为aa,在根据终端的监控信息,得到服务器目录名时,若将终端标识放在监控目录的目录名前,则得到服务器目录名为Aaa,若将终端标识放在监控目录的目录名后,则得到的服务器目录名为aaA。
[0174] 第二步,根据服务器的IP地址,将目录名修改后的监控目录上传到IP地址对应的接收目录。
[0175] 为了提高监控目录上传的准确性及效率,在修改监控目录的服务器目录名之后,本实施例提供的方法还将根据服务器的IP地址,确定接收监控目录的服务器,并将目录名修改后的监控目录上传到IP地址对应的接收目录。
[0176] 由于本实施例提供的目录上传方法在上传目录时,主要依据监控目录下每个文件的最新修改时间与初始修改时间,当将监控目录中每个文件的最新修改时间与初始修改时间进行比对,得到任一文件的最新修改时间与任一文件的初始修改时间不相同后,将监控目录上传到服务器的接收目录,因此,为了避免因终端中存储的监控目录中每个文件的初始修改时间未及时更新,相同的监控目录被上传多次,造成资源浪费,本实施例提供的方法终端在将监控目录上传到接收目录之后,还将根据每个文件的最新修改时间,更新存储的每个文件的初始修改时间。
[0177] 另外,当任一文件的最新修改时间与任一文件的初始修改时间相同时,无需将该监控目录上传,可继续执行实时获取监控目录下所有文件的最新修改时间的步骤。
[0178] 需要说明的是,若在上述目录上传的过程中,终端接收到结束信号,在结束信号的触发下,终端将停止获取监控目录下所有文件的最新修改时间,并停止将获取到的监控目录上传至服务器的接收目录。
[0179] 需要说明的是,上述仅以一个终端为例进行说明,对于其他终端上传监控目录的过程,与上述过程相同,具体可参见上述过程,此处不再赘述。
[0180] 为了便于理解上述目录上传的整个过程,下面将以一个具体的例子进行详细地解释说明,具体参见图5。
[0181] 图5为终端上传监控目录的流程图。初始时刻,在应用程序未运行之前,终端将向监控应用程序运行的脚本中输入需要监控的终端中存放.gcda文件的监控目录、服务器的IP地址及服务器的接收目录等信息,之后利用linux系统中的find、stat等命令,获取要监控目录下N个文件的初始修改时间FT0,….,FTN。进行一段时间的休眠之后,应用程序开始运行,在应用程序运行过程中,终端自动收集应用程序运行过程中的数据,并利用linux系统中的find、stat等命令,获取监控目录下所有文件的最新修改时间ST0,….,STN。为了获知应用程序在运行过程中是否运行了新的数据,终端还将获取到的监控目录下每个文件的初始修改时间与最新修改时间进行比对,若比对得出监控目录下每个文件的初始修改时间与最新修改时间相同,说明应用程序未运行新的数据,此时休眠一段时间之后,终端继续执行获取监控目录下所有文件的最新修改时间ST0,….,STN的过程;若比对得出监控目录下每个文件的初始修改时间与最新修改时间不相同,说明应用程序运行了新的数据,此时终端将修改该监控目录的在服务器上存储时的服务器目录名为:终端被监控的目录名_上传终端设备名,并监控目录上传到IP地址对应的服务器的接收目录下。之后,终端将根据获取到的监控目录下每个文件的最新修改时间更新存储的监控目录下每个文件的初始修改时间。在这一过程中,若终端接收到结束信号,则在结束信号的触发下,终端将停止获取监控目录下所有文件的最新修改时间,并停止将监控目录上传至服务器。
[0182] 至此,通过上述过程实现了监控目录的上传,在此基础上,本实施支持数据的发布,具体过程参见下述步骤404至409。
[0183] 404、服务器接收到终端上传的监控目录,实时获取接收目录中当前监控目录。
[0184] 由于监控目录中存储着应用程序运行时使用的数据,而该数据为生成代码覆盖率的重要数据,因此,为了使研发人员及终端用户及时获取到更新的代码覆盖率,服务器需要实时获取接收目录中当前监控目录。关于服务器实时获取接收目录中当前监控目录的方式,包括但不限于:根据目录获取指令获取。其中,目录获取指令为linux操作系统中的find等指令。
[0185] 405、服务器根据当前监控目录和存储的监控目录,判断是否存在更新数据,如果是,执行步骤406,如果否,继续执行步骤404。
[0186] 在本实施例中,服务器根据当前监控目录和存储的监控目录,判断是否存在更新数据,包括但不限:
[0187] 将当前监控目录与存储的监控目录进行比对,根据比对结果,判断是否存在更新目录。将当前监控目录与存储的监控目录进行比对时,比对结果包括但不限于:当前监控目录与存储的监控目录不同,当前监控目录中有新增的监控目录;当前监控目录与存储的监控目录相同,当前监控目录中不存在新增的监控目录这两种情况。针对这两种情况,在判断是否存在更新数据时,下面将分别进行介绍。
[0188] 第一种情况:若当前监控目录中存在新增的监控目录,则判断服务器上存在更新数据。
[0189] 服务器接收目录下的每个监控目录都对应一个终端,当当前监控目录中存在新增的监控目录,说明有新的终端向服务器上传了监控目录,而新的终端上传的监控目录中存储了该终端中应用程序运行时收集到的新数据,此时当当前监控目录中存在新增的监控目录时,可判断服务器上存在更新数据。
[0190] 第二种情况:若当前监控目录中不存在新增的监控目录,则根据监控目录下文件的修改时间,判断是否存储更新数据。
[0191] 当当前监控目录中不存在新增的监控目录,说明未有新的终端上传了监控目录,此时可获取当前监控目录中所有文件的最新修改时间,并将当前监控目录下所有文件的最新修改时间与存储的监控目录下所有文件的最新修改时间进行比对,若比对得出,任一文件的最新修改时间与初始修改时间不相同,则判断服务器上存在更新数据,若比对得出任一文件的最新修改时间与初始修改时间相同,则判断服务器上不存在更新数据,此时将继续执行实时获取接收目录中当前监控目录的步骤。
[0192] 由于服务器存储的监控目录下所有文件的初始修改时间为进行比对的关键,因此,在将当前监控目录下所有文件的最新修改时间与存储的监控目录下所有文件的初始修改时间进行比对之前,本实施例提供的方法还将获取监控目录,并从监控目录下获取所有文件的初始修改时间。具体地,在获取监控目录时,可以先获取接收目录,进而获取接收目录下的所有监控目录;还可以在服务器建立接收目录时,获取接收目录,进而获取接收目录下所有监控目录,当然,也还可以在服务器接收目录中包含新目录时,获取新目录等,本实施例不对获取接收目录的方式作具体的限定。关于从监控目录下获取多有文件的初始修改时间的方式,包括但不限于:采用linux系统中的find指令、stat指令等获取。
[0193] 406、服务器获取更新数据。
[0194] 由于根据更新数据及应用程序源代码,可生成代码覆盖率,而代码覆盖率不仅可以反映出测试的完整性,而且还可以表征测试的进度,根据代码覆盖率数据,研发人员可获知应用程序中存在的不足,通过对应用程序中的缺陷进行完善,提高应用程序的整体性能,因此,当判断得出存在更新数据之后,服务器需要获取更新数据。关于服务器获取更新数据的方式,本实施例不作具体的限定。
[0195] 407、服务器根据更新数据,生成代码覆盖率。
[0196] 关于服务器根据更新数据,生成代码覆盖率的方式,包括但不限于:
[0197] 获取更新数据所在的监控目录;
[0198] 将当前应用程序源代码拷贝到更新数据所在的监控目录下;
[0199] 在更新数据所在的监控目录中,计算更新数据与应用程序源代码的比值,得到代码覆盖率。
[0200] 具体地,由于应用程序源代码在服务器上通常存储在.gcno文件中,因此,在将当前应用程序源代码拷贝到更新数据所在的监控目录下时,可将应用程序源代码所在的.gcno文件拷贝到更新数据所在的监控目录下。另外,在计算更新数据与应用程序源代码的比值时,可根据linux系统中的lcov指令进行计算。通过上述计算,可得到代码覆盖率,该代码覆盖率存储在.info文件中。
[0201] 对于上述过程,为了便于理解,下面将以一个具体的例子进行详细地解释说明。
[0202] 例如,更新数据为执行了第1行、第3行、第5行及第8行的源代码,源代码为20行,更新数据所在的监控目录为服务器接收目录下的目录1,将当前应用程序的源代码拷贝到目录1中之后,在目录1中计算出更新数据与应用程序源代码的比值为:4/20=0.2,得到代码覆盖率为0.2。
[0203] 需要说明的时,由于当监控目录有两种类型,一种为新终端上传的监控目录,另一种为已有终端上传的监控目录,对于新终端上传的监控目录,由于之前未进行代码覆盖率计算,该终端的监控目录下不存在应用程序的源代码,因此,需要将当前应用程序源代码拷贝到更新数据所在的监控目录下;对于已有终端上传的监控目录,由于之前已进行了代码覆盖率计算,该终端的监控目录下存在应用程序的源代码,因此,无需将当前应用程序源代码拷贝到更新数据所在的监控目录下。
[0204] 408、服务器将所有代码覆盖率进行整合,得到整合文件。
[0205] 为了获得应用程序全面的代码覆盖率,在根据更新数据得到代码覆盖率之后,服务器还将对得到的代码覆盖率进行整合,得到整合文件。关于将所有代码覆盖率进行整合的方式,包括但不限于:在linux系统中利用lcov指令对所有代码覆盖率进行整合。
[0206] 409、服务器将整合文件发布到指定网站。
[0207] 为了便于研发人员及终端侧用户查看代码覆盖率,服务器在将所有代码覆盖率整合之后,还将整合后的文件发布到指定网站。
[0208] 关于服务器将整合文件发布到指定网站的方式,包括但不限于:
[0209] 将整合文件转化为网页形式;
[0210] 将网页形式的文件发布到指定网站。
[0211] 其中,网页形式包括但不限于html形式等。将整合文件转化为网页形式的方式,包括但不限于:获取genhtml指令,根据genhtml指令,将整合文件转化为网页形式。
[0212] 需要说明的是,在上述数据发布过程中,若服务器接收到结束信号,在结束信号的触发下,服务器将停止获取当前监目录,不再将生成的代码覆盖率数据发布到执行网站。
[0213] 为了便于理解上述数据发布方法,下面将以一个具体的例子进行详细地解释说明,具体参见图6。
[0214] 图6为服务器发布代码覆盖率的流程图。初始时刻,在接收终端上传的接收目录之前,服务器将向监控服务器的脚本中输入需要监控的更新数据在服务器上的接收目录。进行一段时间的休眠之后,服务器对该接收目录进行监控,并通过linux系统中的find等命令,获取接收目录下的当前监控目录,于此同时,服务器将获取接收目录下存储的接收目录。为了获知是否存在更新数据,服务器还将存储的监控目录与接收目录下的当前接收目录进行比对,若比对得出,当前监控目录中存在新的监控目录,说明有新的终端上传了更新数据,此时可将存储应用程序的源代码的.gcno文件拷贝到每个新增的监控目录下,并利用linux系统中的lcov命令获得.info文件,该文件中存储着更新的代码覆盖率;若比对得出,当前监控目录中不存在新的监控目录,说明未有新的终端上传了更新数据,此时可利用linux系统中的find、stat等命令,依次获取各个监控目录下的每个文件的最新修改时间,并将各个监控目录下的每个文件的最新修改时间与存储的每个文件的初始修改时间进行比对,当比对得出任一监控目录下的每个文件的最新修改时间与存储的每个文件的初始修改时间相同,说明该监控目录中的数据未更新,此时休眠一段时间之后,将继续执行获取接收目录下当前监控目录的操作;当比对得出任一监控目录下的每个文件的最新修改时间与存储的每个文件的初始修改时间不相同,说明监控目录中存在更新数据,此时在各个更新的监控目录下可利用linux系统中的lcov命令获得.info文件。当根据更新数据得到.info文件之后,服务器还将利用linux系统中的lcov命令对接收目录下所有的.info文件进行整合,并利用genhtml命令生成html形式的代码覆盖率,并将生成的html形式的代码覆盖率,发布到指定的网站中。在这一过程中,若服务器接收到结束信号,则在结束信号的触发下,服务器将停止获取接收目录下的当前监控目录,并停止将html形式的代码覆盖率发布到指定的网站。
[0215] 为了直观第展现上述整个目录上传及数据发布流程,下面将以图的流程图为例进行介绍。
[0216] 由图7可知,当应用程序在运行时,手机1、手机2、手机3、…..,手机N自动收集应用程序运行过程中的数据,并将应用程序运行过程中执行的源代码行数、调用的函数等数据存储在.gcda文件中。当任一手机监控到.gcna文件有更新之后,任一手机都会将更新的数据所在的监控目录上传到服务器。服务器接收任一手机上传的监控目录,并根据接收到的监控目录判断是否生成了新的代码覆盖率,当判断得出生成了新的代码覆盖率生成之后,服务器将自动对所有的代码覆盖率进行汇总,并将汇总后的代码覆盖率发布到指定网站。当任一终端侧用户需要获知应用程序的代码覆盖率之后,任一终端侧用户可通过终端访问该指定网站,以获取最新的代码覆盖率。
[0217] 本发明实施例提供的方法,终端实时获取监控目录下所有文件的最新修改时间,并将监控目录下每个文件的最新修改时间与存储的每个文件的初始修改时间进行比对,当比对得出任一文件的最新修改时间与任一文件的初始修改时间不相同后,将监控目录上传到服务器的接收目录。服务器实时获取接收目录中当前监控目录,当根据当前监控目录和存储的监控目录,判断得出服务器上存在更新数据之后,获取更新数据,并根据更新数据,生成代码覆盖率,将所有的代码覆盖率整合后整合文件发布到指定网站。由于无需用户手动操作,更无需用户对计算机技术有很深的了解,即可将实现监控目录的上传,因此,上传方式更为便捷。另外,由于更新数据是实时获取到的,因此,根据更新数据生成的代码覆盖率也是实时发布的,且登录到指定网站即可获取到最新的代码覆盖率数据,查看方式更为便捷。
[0218] 参见图8,本发明实施例提供了一种终端,该终端用于执行上述图2至图4所示的实施例中终端所执行的功能,该终端包括:
[0219] 获取模块801,用于实时获取监控目录下所有文件的最新修改时间;
[0220] 比对模块802,用于将监控目录下每个文件的最新修改时间与存储的每个文件的初始修改时间进行比对;
[0221] 上传模块803,用于当任一文件的最新修改时间与任一文件的初始修改时间不相同,将监控目录上传到服务器的接收目录。
[0222] 可选地,该终端,还包括:
[0223] 第一存储模块,用于存储监控信息,监控信息包括监控目录、服务器的网络协议IP地址及服务器的接收目录。
[0224] 可选地,该终端,还包括:
[0225] 触发模块,用于每隔预设时长,触发时间获取指令,根据时间获取指令执行实时获取监控目录下所有文件的最新修改时间的步骤;或,当检测到预设事件时,触发时间获取指令,根据时间获取指令执行实时获取监控目录下所有文件的最新修改时间的步骤。
[0226] 可选地,该终端,还包括:
[0227] 第二存储模块,用于存储监控目录下所有文件的初始修改时间;或,当建立监控目录时,存储监控目录下所有文件的初始修改时间;或,当监控目录中包括新建文件时,存储新建文件的初始修改时间。
[0228] 可选地,上传模块803,包括:
[0229] 修改单元,用于根据终端信息,修改监控目录的服务器目录名;
[0230] 上传单元,用于根据服务器的IP地址,将目录名修改后的监控目录上传到IP地址对应的接收目录。
[0231] 可选地,修改模块修改得到的服务器目录名由终端标识与监控目录的目录名组成。
[0232] 可选地,该终端,还包括:
[0233] 更新模块,用于根据每个文件的最新修改时间,更新存储的每个文件的初始修改时间。
[0234] 本发明实施例提供的装置,通过实时获取监控目录下所有文件的最新修改时间,并将监控目录下每个文件的最新修改时间与存储的每个文件的初始修改时间进行比对,当比对得出任一文件的最新修改时间与任一文件的初始修改时间不相同后,将监控目录上传到服务器的接收目录。由于无需用户手动操作,更无需用户对计算机技术有很深的了解,即可将实现监控目录的上传,因此,上传方式更为便捷。
[0235] 参见图9,本发明实施例提供了一种服务器,该服务器用于执行上述图2至图4所示的实施例中服务器所执行的功能,该服务器包括:
[0236] 第一获取模块901,用于实时获取接收目录中当前监控目录;
[0237] 判断模块902,用于根据当前监控目录和存储的监控目录,判断是否存在更新数据;
[0238] 第二获取模块903,用于当存在更新数据,获取更新数据;
[0239] 生成模块904,用于根据更新数据,生成代码覆盖率;
[0240] 整合模块905,用于将所有代码覆盖率进行整合,得到整合文件;
[0241] 发布模块906,用于将整合文件发布到指定网站。
[0242] 可选地,判断模块902,包括:
[0243] 比对单元,用于将当前监控目录与存储的监控目录进行比对;
[0244] 第一判断单元,用于当当前监控目录中存在新增的监控目录,判断存在更新数据;
[0245] 第二判断单元,用于当当前监控目录中不存在新增的监控目录,获取当前监控目录下所有文件的最新修改时间,将当前监控目录下所有文件的最新修改时间与存储的监控目录下所有文件的初始修改时间进行比对,当任一文件的最新修改时间与初始修改时间不相同,判断服务器上存在更新数据。
[0246] 可选地,该服务器,还包括:
[0247] 存储模块,用于存储接收目录下所有监控目录;或,当建立接收目录时,存储接收目录下所有监控目录;或,接收目录中包含新目录时,存储新目录。
[0248] 可选地,生成模块904,包括:
[0249] 获取单元,用于获取更新数据所在的监控目录;
[0250] 拷贝单元,用于将当前应用程序源代码拷贝到更新数据所在的监控目录下;
[0251] 计算单元,用于在更新数据所在的监控目录中,计算更新数据与应用程序源代码的比值,得到代码覆盖率。
[0252] 可选地,发布模块906,包括:
[0253] 转化单元,用于将整合文件转化为网页形式;
[0254] 发布单元,用于将网页形式的文件发布到指定网站。
[0255] 本发明实施例提供的装置,服务器实时获取接收目录中当前监控目录,当根据当前监控目录和存储的监控目录,判断得出服务器上存在更新数据之后,获取更新数据,并根据更新数据,生成代码覆盖率,将所有的代码覆盖率整合后的整合文件发布到指定网站。由于更新数据是实时获取到的,因此,根据更新数据生成的代码覆盖率也是实时发布的,且登录到指定网站即可获取到最新的代码覆盖率数据,查看方式更为便捷。
[0256] 参见图10,其示出了本发明实施例所涉及的终端的结构示意图,该终端可以用于实施上述实施例中提供的目录上传方法。具体来讲:
[0257] 终端1000可以包括RF(Radio Frequency,射频)电路110、包括有一个或一个以上计算机可读存储介质的存储器120、输入单元130、显示单元140、传感器150、音频电路160、WiFi(Wireless Fidelity,无线保真)模块170、包括有一个或者一个以上处理核心的处理器180、以及电源190等部件。本领域技术人员可以理解,图10中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
[0258] RF电路110可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器180处理;另外,将涉及上行的数据发送给基站。通常,RF电路110包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、LNA(Low Noise Amplifier,低噪声放大器)、双工器等。此外,RF电路110还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobile communication,全球移动通讯系统)、GPRS(General Packet Radio Service,通用分组无线服务)、CDMA(Code Division Multiple Access,码分多址)、WCDMA(Wideband Code Division Multiple Access,宽带码分多址)、LTE(Long Term Evolution,长期演进)、电子邮件、SMS(Short Messaging Service,短消息服务)等。
[0259] 存储器120可用于存储软件程序以及模块,处理器180通过运行存储在存储器120的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端1000的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器120还可以包括存储器控制器,以提供处理器180和输入单元130对存储器
120的访问。
[0260] 输入单元130可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元130可包括触敏表面131以及其他输入设备132。触敏表面131,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面131上或在触敏表面131附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面131可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器180,并能接收处理器180发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面131。除了触敏表面131,输入单元130还可以包括其他输入设备132。具体地,其他输入设备132可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
[0261] 显示单元140可用于显示由用户输入的信息或提供给用户的信息以及终端1000的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元140可包括显示面板141,可选的,可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板
141。进一步的,触敏表面131可覆盖显示面板141,当触敏表面131检测到在其上或附近的触摸操作后,传送给处理器180以确定触摸事件的类型,随后处理器180根据触摸事件的类型在显示面板141上提供相应的视觉输出。虽然在图10中,触敏表面131与显示面板141是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面131与显示面板141集成而实现输入和输出功能。
[0262] 终端1000还可包括至少一种传感器150,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板141的亮度,接近传感器可在终端1000移动到耳边时,关闭显示面板141和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端1000还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
[0263] 音频电路160、扬声器161,传声器162可提供用户与终端1000之间的音频接口。音频电路160可将接收到的音频数据转换后的电信号,传输到扬声器161,由扬声器161转换为声音信号输出;另一方面,传声器162将收集的声音信号转换为电信号,由音频电路160接收后转换为音频数据,再将音频数据输出处理器180处理后,经RF电路110以发送给比如另一终端,或者将音频数据输出至存储器120以便进一步处理。音频电路160还可能包括耳塞插孔,以提供外设耳机与终端1000的通信。
[0264] WiFi属于短距离无线传输技术,终端1000通过WiFi模块170可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图10示出了WiFi模块170,但是可以理解的是,其并不属于终端1000的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
[0265] 处理器180是终端1000的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器120内的软件程序和/或模块,以及调用存储在存储器120内的数据,执行终端1000的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器180可包括一个或多个处理核心;可选的,处理器180可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器180中。
[0266] 终端1000还包括给各个部件供电的电源190(比如电池),优选的,电源可以通过电源管理系统与处理器180逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源190还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
[0267] 尽管未示出,终端1000还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,终端1000的显示单元是触摸屏显示器,终端1000还包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行。所述一个或者一个以上程序包含用于执行以下操作的指令:
[0268] 实时获取监控目录下所有文件的最新修改时间;
[0269] 将监控目录下每个文件的最新修改时间与存储的每个文件的初始修改时间进行比对;
[0270] 当任一文件的最新修改时间与任一文件的初始修改时间不相同,则将监控目录上传到服务器的接收目录。
[0271] 假设上述为第一种可能的实施方式,则在第一种可能的实施方式作为基础而提供的第二种可能的实施方式中,终端的存储器中,还包含用于执行以下操作的指令:
[0272] 实时获取监控目录下所有文件的最新修改时间之前,还包括:
[0273] 存储监控信息,监控信息包括监控目录、服务器的网络协议IP地址及服务器的接收目录。
[0274] 则在第一种可能的实现方式为基础而提供的第三种可能的实现方式,实时获取监控目录下所有文件的最新修改时间之前,还包括:
[0275] 每隔预设时长,触发时间获取指令,根据时间获取指令执行实时获取监控目录下所有文件的最新修改时间的步骤;或,
[0276] 当检测到预设事件时,触发时间获取指令,根据时间获取指令执行实时获取监控目录下所有文件的最新修改时间的步骤。
[0277] 则在第三种可能的实现方式为基础而提供的第四种可能的实现方式,将监控目录下每个文件的最新修改时间与存储的每个文件的初始修改时间进行比对之前,还包括:
[0278] 存储监控目录下所有文件的初始修改时间;或,
[0279] 当建立监控目录时,存储监控目录下所有文件的初始修改时间;或,[0280] 当监控目录中包括新建文件时,存储新建文件的初始修改时间。
[0281] 则在第一种可能的实现方式为基础而提供的第五种可能的实现方式,将监控目录上传到接收目录,包括:
[0282] 根据终端信息,修改监控目录的服务器目录名;
[0283] 根据服务器的IP地址,将目录名修改后的监控目录上传到IP地址对应的接收目录。
[0284] 则在第五种可能的实现方式为基础而提供的第六种可能的实现方式,服务器目录名由终端标识与监控目录的目录名组成。
[0285] 则在第一种可能的实现方式为基础而提供的第七种可能的实现方式,将监控目录上传到接收目录之后,还包括:
[0286] 根据每个文件的最新修改时间,更新存储的每个文件的初始修改时间。
[0287] 本发明实施例提供的终端,通过实时获取监控目录下所有文件的最新修改时间,并将监控目录下每个文件的最新修改时间与存储的每个文件的初始修改时间进行比对,当比对得出任一文件的最新修改时间与任一文件的初始修改时间不相同后,将监控目录上传到服务器的接收目录。由于无需用户手动操作,更无需用户对计算机技术有很深的了解,即可将实现监控目录的上传,因此,上传方式更为便捷。
[0288] 本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中的存储器中所包含的计算机可读存储介质;也可以是单独存在,未装配入终端中的计算机可读存储介质。该计算机可读存储介质存储有一个或者一个以上程序,该一个或者一个以上程序被一个或者一个以上的处理器用来执行目录上传方法,该方法包括:
[0289] 实时获取监控目录下所有文件的最新修改时间之前,还包括:
[0290] 存储监控信息,监控信息包括监控目录、服务器的网络协议IP地址及服务器的接收目录。
[0291] 则在第一种可能的实现方式为基础而提供的第三种可能的实现方式,实时获取监控目录下所有文件的最新修改时间之前,还包括:
[0292] 每隔预设时长,触发时间获取指令,根据时间获取指令执行实时获取监控目录下所有文件的最新修改时间的步骤;或,
[0293] 当检测到预设事件时,触发时间获取指令,根据时间获取指令执行实时获取监控目录下所有文件的最新修改时间的步骤。
[0294] 则在第三种可能的实现方式为基础而提供的第四种可能的实现方式,将监控目录下每个文件的最新修改时间与存储的每个文件的初始修改时间进行比对之前,还包括:
[0295] 存储监控目录下所有文件的初始修改时间;或,
[0296] 当建立监控目录时,存储监控目录下所有文件的初始修改时间;或,[0297] 当监控目录中包括新建文件时,存储新建文件的初始修改时间。
[0298] 则在第一种可能的实现方式为基础而提供的第五种可能的实现方式,将监控目录上传到接收目录,包括:
[0299] 根据终端信息,修改监控目录的服务器目录名;
[0300] 根据服务器的IP地址,将目录名修改后的监控目录上传到IP地址对应的接收目录。
[0301] 则在第五种可能的实现方式为基础而提供的第六种可能的实现方式,服务器目录名由终端标识与监控目录的目录名组成。
[0302] 则在第一种可能的实现方式为基础而提供的第七种可能的实现方式,将监控目录上传到接收目录之后,还包括:
[0303] 根据每个文件的最新修改时间,更新存储的每个文件的初始修改时间。
[0304] 本发明实施例提供的计算机可读存储介质,通过实时获取监控目录下所有文件的最新修改时间,并将监控目录下每个文件的最新修改时间与存储的每个文件的初始修改时间进行比对,当比对得出任一文件的最新修改时间与任一文件的初始修改时间不相同后,将监控目录上传到服务器的接收目录。由于无需用户手动操作,更无需用户对计算机技术有很深的了解,即可将实现监控目录的上传,因此,上传方式更为便捷。
[0305] 本发明实施例中提供了一种图形用户接口,该图形用户接口用在上传目录终端上,该执行业务处理终端包括触摸屏显示器、存储器和用于执行一个或者一个以上的程序的一个或者一个以上的处理器;该图形用户接口包括:
[0306] 获实时获取监控目录下所有文件的最新修改时间;
[0307] 将监控目录下每个文件的最新修改时间与存储的每个文件的初始修改时间进行比对;
[0308] 当任一文件的最新修改时间与任一文件的初始修改时间不相同,则将监控目录上传到服务器的接收目录。
[0309] 本发明实施例提供的图形用户接口,通过实时获取监控目录下所有文件的最新修改时间,并将监控目录下每个文件的最新修改时间与存储的每个文件的初始修改时间进行比对,当比对得出任一文件的最新修改时间与任一文件的初始修改时间不相同后,将监控目录上传到服务器的接收目录。由于无需用户手动操作,更无需用户对计算机技术有很深的了解,即可将实现监控目录的上传,因此,上传方式更为便捷。
[0310] 图11是根据一示例性实施例示出的一种用于数据发布方法的装置1100的框图。例如,装置1100可以被提供为一业务执行服务器。参照图11,装置1100包括处理组件1122,其进一步包括一个或多个处理器,以及由存储器1132所代表的存储器资源,用于存储可由处理组件1122的执行的指令,例如应用程序。存储器1132中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1122被配置为执行指令,以执行上述的数据发布方法,该方法包括:
[0311] 实时获取接收目录中当前监控目录;
[0312] 根据当前监控目录和存储的监控目录,判断是否存在更新数据;
[0313] 当存在更新数据,获取更新数据;
[0314] 根据更新数据,生成代码覆盖率;
[0315] 将所有代码覆盖率进行整合,得到整合文件;
[0316] 将整合文件发布到指定网站。
[0317] 作为一种可选的实施例,根据当前监控目录和存储的监控目录,判断是否存在更新数据,包括:
[0318] 将当前监控目录与存储的监控目录进行比对;
[0319] 若当监控目录中存在新增的监控目录,则判断存在更新数据;
[0320] 若当前监控目录中不存在新增的监控目录,则获取当前监控目录下所有文件的最新修改时间,将当前监控目录下所有文件的最新修改时间与存储的监控目录下所有文件的初始修改时间进行比对,当任一文件的最新修改时间与初始修改时间不相同,则判断存在更新数据。
[0321] 作为一种可选的实施例,根据当前监控目录和存储的监控目录,判断是否存在更新数据之前,还包括:
[0322] 存储接收目录下所有监控目录;或,
[0323] 当建立接收目录时,存储接收目录下所有监控目录;或,
[0324] 接收目录中包含新目录时,存储新目录。
[0325] 作为一种可选的实施例,根据更新数据,生成代码覆盖率,包括:
[0326] 获取更新数据所在的监控目录;
[0327] 将当前应用程序源代码拷贝到更新数据所在的监控目录下;
[0328] 在更新数据所在的监控目录中,计算更新数据与应用程序源代码的比值,得到代码覆盖率。
[0329] 作为一种可选的实施例,将整合文件发布到指定网站,包括:
[0330] 将整合文件转化为网页形式;
[0331] 将网页形式的文件发布到指定网站。
[0332] 本发明实施例提供的装置,服务器实时获取接收目录中当前监控目录,当根据当前监控目录和存储的监控目录,判断得出服务器上存在更新数据之后,获取更新数据,并根据更新数据,生成代码覆盖率,将所有的代码覆盖率整合后的整合文件发布到指定网站。由于更新数据是实时获取到的,因此,根据更新数据生成的代码覆盖率也是实时发布的,且登录到指定网站即可获取到最新的代码覆盖率数据,查看方式更为便捷。
[0333] 参见图12,本实施例提供了一种数据系统,该系统包括终端1201和服务器1202;
[0334] 其中,终端1201如上述图8所述的终端;
[0335] 服务器1202如上述图9所述的服务器。
[0336] 本发明实施例提供的系统,终端实时获取监控目录下所有文件的最新修改时间,并将监控目录下每个文件的最新修改时间与存储的每个文件的初始修改时间进行比对,当比对得出任一文件的最新修改时间与任一文件的初始修改时间不相同后,将监控目录上传到服务器的接收目录。服务器实时获取接收目录中当前监控目录,当根据当前监控目录和存储的监控目录,判断得出服务器上存在更新数据之后,获取更新数据,并根据更新数据,生成代码覆盖率,将所有的代码覆盖率整合后整合文件发布到指定网站。由于无需用户手动操作,更无需用户对计算机技术有很深的了解,即可将实现监控目录的上传,因此,上传方式更为便捷。另外,由于更新数据是实时获取到的,因此,根据更新数据生成的代码覆盖率也是实时发布的,且登录到指定网站即可获取到最新的代码覆盖率数据,查看方式更为便捷。
[0337] 需要说明的是:上述实施例提供的终端在目录上传、服务器在发布数据时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将终端和服务器的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的终端、服务器与目录上传方法、终端及服务器实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0338] 上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0339] 本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0340] 以上仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。