1.本发明涉及自动化测试技术领域,具体而言,涉及一种测试案例的方法及装置。
背景技术:2.在对案例进行测试的过程中,为了提升测试效率,以程序测试案例、以脚本运行代替手工执行的自动化测试方法得到了越来越多的应用。案例的自动化测试,在资源利用、节约人力、回归测试等各方面都具有显著的优势。其中,流量录制回放平台以流量录制、回放,实现自动化测试,能以较低成本实现测试案例沉淀,例如,能够沉淀数以万计甚至十万计的测试案例,可用于常规回归测试,丰富测试场景。但该方法,随着沉淀的测试案例数越来越多,如果流量录制回放平台中的数据传输单元一次性将数以万计的待测试的案例提交到流量录制回放平台中的测试服务器,将会给测试服务器带来宕机的风险,从而降低了案例的测试效率。因此,如何保证流量录制回放平台的大量待测试的案例有序、高效的进行测试,将尤为关键。
技术实现要素:3.有鉴于此,本发明的目的在于提供测试案例的方法及装置,以提高案例的测试效率。
4.第一方面,本发明实施例提供了测试案例的方法,包括:
5.对待测试的案例进行分组,得到多个分组队列,依据运行中的测试服务器,对所述多个分组队列进行分配;
6.轮询分配有分组队列的测试服务器,确定轮询的测试服务器中待运行的案例任务数小于堆积任务阈值;
7.向所述小于堆积任务阈值对应的测试服务器传输分配的分组队列;
8.在分组队列中的案例测试过程中,更新测试该案例的测试服务器中待运行的案例任务数。
9.结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,所述依据运行中的测试服务器,对所述多个分组队列进行分配,包括:
10.获取在预先设置的心跳时间阈值内上报心跳信息的测试服务器;
11.依据上报心跳信息的测试服务器,对所述多个分组队列进行分配。
12.结合第一方面的第一种可能的实施方式,本发明实施例提供了第一方面的第二种可能的实施方式,其中,所述依据上报心跳信息的测试服务器,对所述多个分组队列进行分配,包括:
13.获取上报心跳信息的测试服务器中待运行的案例任务数,选取案例任务数小于预先设置的堆积任务阈值的测试服务器,并基于测试服务器运行的案例任务数分配所述多个分组队列;
14.构建以测试服务器的标识为键,为该测试服务器分配的分组队列为值的分组队列
数据结构表。
15.结合第一方面的第二种可能的实施方式,本发明实施例提供了第一方面的第三种可能的实施方式,其中,所述在分组队列中的案例测试过程中,更新测试该案例的测试服务器中待运行的案例任务数,包括:
16.在分组队列数据结构表中,针对每一测试服务器,标记当前运行的案例;
17.在当前运行的案例测试完毕后,移除标记的该当前运行的案例。
18.结合第一方面的第二种可能的实施方式,本发明实施例提供了第一方面的第四种可能的实施方式,其中,所述轮询分配有分组队列的测试服务器,确定轮询的测试服务器中待运行的案例任务数小于堆积任务阈值,包括:
19.轮询所述分组队列数据结构表,获取所述分组队列数据结构表中各测试服务器中对应的待运行的案例任务数,从中选取待运行的案例任务数小于堆积任务阈值的测试服务器。
20.结合第一方面、第一方面的第一种可能的实施方式至第四种可能的实施方式中的任一种可能的实施方式,本发明实施例提供了第一方面的第五种可能的实施方式,其中,在所述基于测试服务器运行的案例任务数分配所述多个分组队列之后,构建以测试服务器的标识为键,为该测试服务器分配的分组队列为值的分组队列数据结构表之前,所述方法还包括:
21.查询分组队列数据结构表中是否存在分配有分组队列的测试服务器对应的键,若存在,定位该键对应的值,将为该测试服务器分配的分组队列存储至对应的值的存储区,若不存在,执行所述构建以测试服务器的标识为键,为该测试服务器分配的分组队列为值的分组队列数据结构表的步骤。
22.结合第一方面、第一方面的第一种可能的实施方式至第四种可能的实施方式中的任一种可能的实施方式,本发明实施例提供了第一方面的第六种可能的实施方式,其中,所述方法还包括:
23.若轮询的测试服务器中待运行的案例任务数不小于堆积任务阈值,确定该测试服务器是否运行正常;
24.若运行正常,获取该测试服务器中当前运行的案例任务的运行时长,若运行时长超出预先设置的时长阈值,终止该当前运行的案例任务,运行下一案例任务;
25.若运行不正常,回收该测试服务器中当前运行的案例任务以及待运行的案例任务,得到待测试的案例。
26.第二方面,本发明实施例还提供了一种测试案例的装置,包括:
27.案例分配模块,用于对待测试的案例进行分组,得到多个分组队列,依据运行中的测试服务器,对所述多个分组队列进行分配;
28.测试服务器选取模块,用于轮询分配有分组队列的测试服务器,确定轮询的测试服务器中待运行的案例任务数小于堆积任务阈值;
29.数据传输模块,用于向所述小于堆积任务阈值对应的测试服务器传输分配的分组队列;
30.测试处理模块,用于在分组队列中的案例测试过程中,更新测试该案例的测试服务器中待运行的案例任务数。
31.第三方面,本技术实施例提供了一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
32.第四方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述的方法的步骤。
33.本发明实施例提供的测试案例的方法及装置,通过对待测试的案例进行分组,得到多个分组队列,依据运行中的测试服务器,对所述多个分组队列进行分配;轮询分配有分组队列的测试服务器,确定轮询的测试服务器中待运行的案例任务数小于堆积任务阈值;向所述小于堆积任务阈值对应的测试服务器传输分配的分组队列;在分组队列中的案例测试过程中,更新测试该案例的测试服务器中待运行的案例任务数。这样,采用分组队列进行数据传输,可以有效减少提交案例的次数,并避免一次性提交至测试服务器的案例过多,导致测试服务器出现负载过高的情况,同时,通过设置测试服务器的堆积任务阈值,可以使得测试服务器在有序处理案例任务的同时,能够保证最大吞吐能力,从而有效提升测试效率。
34.为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
35.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
36.图1示出了本发明实施例所提供的测试案例的方法流程示意图;
37.图2示出了本发明实施例所提供的案例集结构示意图;
38.图3示出了本发明实施例所提供的服务器列表示意图;
39.图4示出了本发明实施例所提供的为测试服务器分配分组队列的示意图;
40.图5示出了本发明实施例所提供的分组队列数据结构表的示意图;
41.图6示出了本发明实施例所提供的测试案例的装置结构示意图;
42.图7为本技术实施例提供的一种计算机设备700的结构示意图。
具体实施方式
43.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
44.本发明实施例提供了一种测试案例的方法及装置,下面通过实施例进行描述。
45.图1示出了本发明实施例所提供的测试案例的方法流程示意图。如图1所示,该方
法包括:
46.步骤101,对待测试的案例进行分组,得到多个分组队列,依据运行中的测试服务器,对所述多个分组队列进行分配;
47.本发明实施例中,流量录制回放平台利用案例集存储沉淀的案例。
48.图2示出了本发明实施例所提供的案例集结构示意图。如图2所示,本发明实施例中,案例集的数据结构中,存储有各沉淀的案例。作为一可选实施例,利用列表方式存储案例,利用数据结构表存储案例1(case 1)、案例2(case 2)、
…
、案例n(case n),其中,n为存储的案例数。
49.本发明实施例中,作为一可选实施例,分组队列采用链表存储案例,通过在链表的头部和尾部操作元素,可以使得操作元素的时间复杂度都是o(1)。
50.本发明实施例中,作为一可选实施例,每一分组队列包含的案例数为50个,作为另一可选实施例,每一分组队列包含的案例数,可依据测试需要以及数据传输要求进行动态调整。
51.本发明实施例中,作为一可选实施例,用户可以在流量录制回放平台的案例测试页面,通过点击案例集运行控制按钮,从而发起案例测试请求,流量录制回放平台在接收到案例测试请求后,对案例集中存储的案例,以50个案例为单位进行分组。
52.本发明实施例中,作为一可选实施例,依据运行中的测试服务器,对所述多个分组队列进行分配,包括:
53.获取在预先设置的心跳时间阈值内上报心跳信息的测试服务器;
54.依据上报心跳信息的测试服务器,对所述多个分组队列进行分配。
55.本发明实施例中,作为一可选实施例,测试服务器按照预先设置的心跳周期定期向流量录制回放平台的数据传输单元上报心跳信息,数据传输单元在选取测试服务器进行案例分组时,将心跳信息正常的测试服务器纳入到选择范围。例如,测试服务器集群的5台测试服务器中,在心跳时间阈值内,若只有2台测试服务器正常运行,则表明只有这2台测试服务器能够上报心跳信息,则选择这2台机器进行案例分组。其中,心跳时间阈值可以等于或大于心跳周期。
56.本发明实施例中,作为一可选实施例,利用服务器列表存储上报心跳信息的测试服务器。
57.图3示出了本发明实施例所提供的服务器列表示意图。如图3所示,例如,在服务器列表中,存储有测试服务器a、测试服务器b、测试服务器c、测试服务器d、测试服务器e等,在接收到测试服务器上报的心跳信息后,查询服务器列表中是否存储有该测试服务器,若存储有,将该测试服务器的时间戳更新为当前时间,若未存储有,将该测试服务器存储至服务器列表,并设置时间戳为当前时间。在服务器列表中,对于当前时间与时间戳的时间差大于心跳时间阈值的测试服务器,从服务器列表中移除。
58.本发明实施例中,作为一可选实施例,依据上报心跳信息的测试服务器,对所述多个分组队列进行分配,包括:
59.获取上报心跳信息的测试服务器中待运行的案例任务数,选取案例任务数小于预先设置的堆积任务阈值的测试服务器,并基于测试服务器运行的案例任务数分配所述多个分组队列;
60.构建以测试服务器的标识为键,为该测试服务器分配的分组队列为值的分组队列数据结构表。
61.本发明实施例中,在进行分组时,考虑具有心跳信息的测试服务器,并考虑该测试服务器的负载,优先考虑没有待运行的案例任务的测试服务器,对于有待运行的案例任务的测试服务器,考虑待运行的案例任务数较少的测试服务器;或者,对于待运行的案例任务数较少的测试服务器,分配较多的分组队列,对于待运行的案例任务数较多的测试服务器,分配较少的分组队列。作为另一可选实施例,对于同一来源的案例,尽可能多地分配在不同的分组队列中。
62.图4示出了本发明实施例所提供的为测试服务器分配分组队列的示意图。如图4所示,本发明实施例中,以收到心跳信息的测试服务器包括测试服务器a和测试服务器b为例,将案例1(case 1)至案例50(case 50)作为第一分组队列,分配给测试服务器a,将案例51(case 51)至案例100(case 100)作为第二分组队列,分配给测试服务器a,
…
,将案例201(case 201)至案例250(case 250)作为第三分组队列,分配给测试服务器b,将案例251(case 251)至案例300(case 300)作为第四分组队列,分配给测试服务器b,直至分配完所有的分组队列。
63.本发明实施例中,每一分组队列分配给一测试服务器,通过分组队列,在将分组队列提交至测试服务器时,可以有效减少提交案例的次数。
64.本发明实施例中,作为一可选实施例,分组队列数据结构表采用远程字典服务器(redis,remote dictionary server)列表,其中,redis列表底层实现采用链表方式。
65.本发明实施例中,作为一可选实施例,测试服务器的标识包括但不限于:测试服务器的ip地址、测试服务器的mac地址、测试服务器的域名等。redis列表采用键值对(key-value)的方式进行存储,其中,key为用于运行案例的测试服务器的ip地址,值为存储的分组队列。
66.本发明实施例中,作为一可选实施例,利用redis命令中的lpush命令,将分组队列保存到构建的分组队列数据结构表,即redis列表中。由于lpush命令的时间复杂度为o(n),n为lpush命令的个数,因而,即使面对大批量的分组队列,redis列表也能拥有较好的性能。
67.图5示出了本发明实施例所提供的分组队列数据结构表的示意图。如图5所示,本发明实施例的分组队列数据结构表中,key为测试服务器的ip地址,每一key对应一测试服务器的ip地址,值(value)为存储的分配给该测试服务器的分组队列。例如,对于key为测试服务器a的ip地址的行,对应的value包括:case 1~case 50、case 51~case 100等。
68.本发明实施例中,作为一可选实施例,在所述基于测试服务器运行的案例任务数分配所述多个分组队列之后,构建以测试服务器的标识为键,为该测试服务器分配的分组队列为值的分组队列数据结构表之前,该方法还包括:
69.查询分组队列数据结构表中是否存在分配有分组队列的测试服务器对应的键,若存在,定位该键对应的值,将为该测试服务器分配的分组队列存储至对应的值的存储区,若不存在,执行所述构建以测试服务器的标识为键,为该测试服务器分配的分组队列为值的分组队列数据结构表的步骤。
70.本发明实施例中,通过查询分组队列数据结构表,若分组队列数据结构表中未存储有分配有分组队列的测试服务器对应的键,则在分组队列数据结构表中,构建键值对;若
存储有,则将分配的分组队列存储至键对应的值所在的存储区。
71.本发明实施例中,通过在redis列表中为每一分组队列设置回放机器(测试服务器)属性,能够在案例集运行时,根据redis列表中回放机器属性,选择对应的回放机器进行案例测试。
72.本发明实施例中,通过分组队列的机制,可以有效避免一次性提交至测试服务器的案例过多,导致测试服务器出现负载过高的情况,能够保证案例有序、批量提交至测试服务器。
73.本发明实施例中,通过对案例集中的案例进行分组,可以使得同一来源的案例可以分配在不同的分组队列中,从而达到最大化并行处理的效果。
74.本发明实施例中,在依据测试服务器对案例进行分组完毕后,流量录制回放平台响应案例测试页面提交的测试请求,提示用户操作成功,同时将提交的案例的运行状态更新为待运行。
75.步骤102,轮询分配有分组队列的测试服务器,确定轮询的测试服务器中待运行的案例任务数小于堆积任务阈值;
76.本发明实施例中,分配有分组队列的测试服务器包括当前分配周期分配有分组队列的测试服务器,以及,历史分配周期分配有分组队列但分组队列还未测试完毕的测试服务器。作为一可选实施例,为了保证测试服务器处于较优的处理能力,通过设置测试服务器的最小处理阀值,即堆积任务阈值,当测试服务器待运行的案例任务数小于该堆积任务阈值时,则可以向该测试服务器提交一分组队列,以避免少数长耗时案例由于测试时间较长,从而影响测试服务器的处理能力。
77.本发明实施例中,作为一可选实施例,堆积任务阈值设置为10。作为另一可选实施例,堆积任务阈值也可以依据实际需要设置为其他值,例如,设置为20、25、32等,本发明实施例对此不作限定。
78.本发明实施例中,作为一可选实施例,可以通过轮询分组队列数据结构表,获取分组队列数据结构表中各测试服务器中对应的待运行的案例任务数,从中选取待运行的案例任务数小于堆积任务阈值的测试服务器。分组队列数据结构表中,包含有当前运行案例的测试服务器的ip地址、和/或,分配有待运行的案例但当前还未运行案例的测试服务器的ip地址。
79.本发明实施例中,作为一可选实施例,利用定时任务轮询分组队列数据结构表。
80.本发明实施例中,作为一可选实施例,利用redis命令中的scard命令获取分组队列数据结构表中测试服务器待运行的案例任务数。如果案例任务数大于或等于堆积任务阀值(默认10),则查询下一测试服务器中待运行的案例任务数,若所有测试服务器中待运行的案例任务数均大于或等于堆积任务阀值,则等待下一定时进行重新轮询,提升测试效率。
81.本发明实施例中,通过设置测试服务器的最小处理阀值,可以使得测试服务器在有序处理案例任务的同时,能够保证最大吞吐能力,从而有效避免少数长耗时案例对机器整体处理能力的影响。
82.本发明实施例中,作为另一可选实施例,该方法还包括:
83.若轮询的测试服务器中待运行的案例任务数不小于堆积任务阈值,则不为该测试服务器分配分组队列,直至该测试服务器中待运行的案例任务数小于堆积任务阈值。
84.本发明实施例中,作为再一可选实施例,该方法还包括:
85.若轮询的测试服务器中待运行的案例任务数不小于堆积任务阈值,确定该测试服务器是否运行正常;
86.若运行正常,获取该测试服务器中当前运行的案例任务的运行时长,若运行时长超出预先设置的时长阈值,终止该当前运行的案例任务,运行下一案例任务;
87.若运行不正常,回收该测试服务器中当前运行的案例任务以及待运行的案例任务,得到待测试的案例。
88.本发明实施例中,可以通过查询服务器列表,确定测试服务器是否运行正常。
89.步骤103,向所述小于堆积任务阈值对应的测试服务器传输分配的分组队列;
90.本发明实施例中,对于待运行的案例任务数小于堆积任务阈值的测试服务器,依据为该测试服务器分配的一个或多个分组队列中,从中按照优先级或分配顺序选取一分组队列,传输至该测试服务器,从而向测试服务器发起批量回放任务。
91.本发明实施例中,若查询得到的案例任务数小于堆积任务阀值,则从当前运行的分组队列中,通过rpop命令移出一案例,发起批量回放任务。本发明实施例中,rpop命令的时间复杂度为o(1),具有优秀的性能,与数据插入命令(lpush命令)配合使用,可以达到先进先出的队列效果。
92.步骤104,在分组队列中的案例测试过程中,更新测试该案例的测试服务器中待运行的案例任务数。
93.本发明实施例中,作为一可选实施例,在分组队列中的案例测试过程中,更新测试该案例的测试服务器中待运行的案例任务数,包括:
94.在分组队列数据结构表中,针对每一测试服务器,标记当前运行的案例;
95.在当前运行的案例测试完毕后,移除标记的该当前运行的案例。
96.本发明实施例中,在rredis列表中,对当前运行的案例(案例任务)进行标记,在案例任务运行完毕后,将分组队列中的案例依次往前移动,并从redis列表中移除测试完毕的案例任务。对于已完成所有案例任务测试的测试服务器,将该测试服务器的键值从redis列表中移除。
97.本发明实施例中,在进行标记时,假设redis列表中,测试服务器a对应的案例包括三组,分别为第一分组队列case1-case50、第二分组队列case51-case100、第三分组队列case101-case150,若测试服务a可并行运行2个线程,即能够并行测试2个案例,假设当前没有测试的案例,在将第一分组队列(case1-case50)传输至测试服务器a后,利用rpop命令移出第一分组队列(case1-case50)中的前2个案例(case1、case2),向测试服务器a发起批量回放任务。在测试服务器a对应的记录中,标记第一分组队列中待运行的案例任务数为48,当案例case1测试完成后,从redis列表中中,移除案例case1及相应的记录。再利用rpop命令移出第一分组队列(case1-case50)中的case3以发起回放任务,并在测试服务器a对应的记录中,标记第一分组队列中待运行的案例任务数为47,表明测试服务器a还剩下47个案例未测试完毕,直到测试服务器a记录的待运行的案例任务数小于10,向测试服务器a传输第二分组队列case51-case100。这样,通过redis队列以及分组队列,可以让测试服务器从容面对大批量的案例,同时可以按照提交案例顺序有序执行测试。
98.图6示出了本发明实施例所提供的测试案例的装置结构示意图。如图6所示,该装
置包括:
99.案例分配模块601,用于对待测试的案例进行分组,得到多个分组队列,依据运行中的测试服务器,对所述多个分组队列进行分配;
100.本发明实施例中,作为一可选实施例,利用列表方式存储待测试的案例,分组队列为链表。
101.本发明实施例中,作为一可选实施例,案例分配模块601包括:
102.分组单元(图中未示出),用于对待测试的案例进行分组,得到多个分组队列;
103.心跳单元,用于获取在预先设置的心跳时间阈值内上报心跳信息的测试服务器;
104.分配单元,用于依据上报心跳信息的测试服务器,对所述多个分组队列进行分配。
105.本发明实施例中,作为一可选实施例,利用服务器列表存储上报心跳信息的测试服务器。
106.本发明实施例中,作为一可选实施例,分配单元具体用于:
107.获取上报心跳信息的测试服务器中待运行的案例任务数,选取案例任务数小于预先设置的堆积任务阈值的测试服务器,并基于测试服务器运行的案例任务数分配所述多个分组队列;
108.构建以测试服务器的标识为键,为该测试服务器分配的分组队列为值的分组队列数据结构表。
109.本发明实施例中,作为另一可选实施例,分配单元还具体用于:
110.查询分组队列数据结构表中是否存在分配有分组队列的测试服务器对应的键,若存在,定位该键对应的值,将为该测试服务器分配的分组队列存储至对应的值的存储区,若不存在,执行所述构建以测试服务器的标识为键,为该测试服务器分配的分组队列为值的分组队列数据结构表的步骤。
111.测试服务器选取模块602,用于轮询分配有分组队列的测试服务器,确定轮询的测试服务器中待运行的案例任务数小于堆积任务阈值;
112.本发明实施例中,作为一可选实施例,测试服务器选取模块602具体用于:
113.轮询所述分组队列数据结构表,获取所述分组队列数据结构表中各测试服务器中对应的待运行的案例任务数,从中选取待运行的案例任务数小于堆积任务阈值的测试服务器。
114.本发明实施例中,作为另一可选实施例,测试服务器选取模块602具体还用于:
115.若轮询的测试服务器中待运行的案例任务数不小于堆积任务阈值,确定该测试服务器是否运行正常;
116.若运行正常,获取该测试服务器中当前运行的案例任务的运行时长,若运行时长超出预先设置的时长阈值,终止该当前运行的案例任务,运行下一案例任务;
117.若运行不正常,回收该测试服务器中当前运行的案例任务以及待运行的案例任务,得到待测试的案例。
118.数据传输模块603,用于向所述小于堆积任务阈值对应的测试服务器传输分配的分组队列;
119.本发明实施例中,作为一可选实施例,堆积任务阈值设置为10。
120.测试处理模块604,用于在分组队列中的案例测试过程中,更新测试该案例的测试
服务器中待运行的案例任务数。
121.本发明实施例中,作为一可选实施例,测试处理模块604包括:
122.标记单元(图中未示出),用于在分组队列数据结构表中,针对每一测试服务器,标记当前运行的案例;
123.移除单元,用于在当前运行的案例测试完毕后,移除标记的该当前运行的案例。
124.如图7所示,本技术一实施例提供了一种计算机设备700,用于执行图1中的测试案例的方法,该设备包括存储器701、与存储器701通过总线相连的处理器702及存储在该存储器701上并可在该处理器702上运行的计算机程序,其中,上述处理器702执行上述计算机程序时实现上述测试案例的方法的步骤。
125.具体地,上述存储器701和处理器702能够为通用的存储器和处理器,这里不做具体限定,当处理器702运行存储器701存储的计算机程序时,能够执行上述测试案例的方法。
126.对应于图1中的测试案例的方法,本技术实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述测试案例的方法的步骤。
127.具体地,该存储介质能够为通用的存储介质,如移动磁盘、硬盘等,该存储介质上的计算机程序被运行时,能够执行上述测试案例的方法。
128.在本技术所提供的实施例中,应该理解到,所揭露系统和方法,可以通过其它的方式实现。以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
129.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
130.另外,在本技术提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
131.所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
132.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
133.最后应说明的是:以上所述实施例,仅为本技术的具体实施方式,用以说明本技术
的技术方案,而非对其限制,本技术的保护范围并不局限于此,尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本技术实施例技术方案的精神和范围。都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应所述以权利要求的保护范围为准。