基于FOTA升级的压力测试方法和装置转让专利

申请号 : CN201510180789.8

文献号 : CN104811979B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈仰文

申请人 : 努比亚技术有限公司

摘要 :

本发明公开了一种基于FOTA升级的压力测试方法和装置,所述方法包括步骤:模拟服务器根据预先配置的配置文件中的终端设备参数模拟多个客户端,并通过所述配置文件创建多个对FOTA服务器并发的升级请求线程;所述模拟服务器通过模拟的多个客户端根据所述升级请求线程与所述FOTA服务器进行升级操作,以对所述FOTA服务器进行压力测试;所述模拟服务器统计测试结果。从而,通过多个模拟客户端根据多个升级请求线程模拟多个终端设备同时向FOTA服务器发起升级操作,与FOTA服务器完成整个升级交互流程,有效灵活的实现了FOTA升级全流程交互的压力测试,保证了测试的完整性和准确性。

权利要求 :

1.一种基于FOTA升级的压力测试方法,其特征在于,包括步骤:模拟服务器根据预先配置的配置文件中的终端设备参数模拟多个客户端,并通过所述配置文件创建多个对FOTA服务器并发的至少升级一次的升级请求线程;

所述模拟服务器通过模拟的多个客户端根据所述升级请求线程与所述FOTA服务器进行升级操作,以对所述FOTA服务器进行压力测试;

所述模拟服务器统计测试结果。

2.根据权利要求1所述的基于FOTA升级的压力测试方法,其特征在于,所述模拟服务器通过模拟的多个客户端根据所述升级请求线程与所述FOTA服务器进行升级操作包括:所述模拟服务器通过模拟的多个客户端根据所述升级请求线程向所述FOTA服务器发起升级、鉴权请求;

鉴权成功后,所述模拟服务器通过所述客户端向所述FOTA服务器上报当前的软件版本;

所述模拟服务器通过所述客户端根据所述FOTA服务器的响应下载升级包;

所述模拟服务器通过所述客户端向所述FOTA服务器上报升级结果。

3.根据权利要求1所述的基于FOTA升级的压力测试方法,其特征在于,所述模拟服务器统计测试结果包括:所述模拟服务器在测试过程中定时的统计测试结果。

4.根据权利要求1所述的基于FOTA升级的压力测试方法,其特征在于,所述模拟服务器统计测试结果包括:所述模拟服务器在测试完成后统计测试结果。

5.根据权利要求1-4任一项所述的基于FOTA升级的压力测试方法,其特征在于,所述测试结果包括测试时长、升级请求数量、升级请求成功数量和升级请求失败数量。

6.一种基于FOTA升级的压力测试装置,其特征在于,包括依次连接的配置模块、模拟模块、压力测试模块和统计模块,其中:配置模块,用于配置配置文件;

模拟模块,用于根据所述配置文件中的终端设备参数模拟多个客户端,并通过所述配置文件创建多个对FOTA服务器并发的至少一次的升级请求线程;

压力测试模块,用于通过模拟的多个客户端根据所述升级请求线程与所述FOTA服务器进行升级操作,以对所述FOTA服务器进行压力测试;

统计模块,用于统计测试结果。

7.根据权利要求6所述的基于FOTA升级的压力测试装置,其特征在于,所述压力测试模块用于:通过模拟的多个客户端根据所述升级请求线程向所述FOTA服务器发起升级、鉴权请求;

鉴权成功后,通过所述客户端向所述FOTA服务器上报当前的软件版本;

通过所述客户端根据所述FOTA服务器的响应下载升级包;

通过所述客户端向所述FOTA服务器上报升级结果。

8.根据权利要求6所述的基于FOTA升级的压力测试装置,其特征在于,所述统计模块用于:在所述压力测试模块测试过程中定时的统计测试结果。

9.根据权利要求6所述的基于FOTA升级的压力测试装置,其特征在于,所述统计模块用于:在所述压力测试模块测试完成后统计测试结果。

10.根据权利要求6-9任一项所述的基于FOTA升级的压力测试装置,其特征在于,所述测试结果包括测试时长、升级请求数量、升级请求成功数量和升级请求失败数量。

说明书 :

基于FOTA升级的压力测试方法和装置

技术领域

[0001] 本发明涉及通信技术领域,尤其是涉及一种基于FOTA升级的压力测试方法和装置。

背景技术

[0002] FOTA升级(Firmware Over-the-Air,固件空中升级)技术,主要是指一种通过空中接口远程管理、更新终端设备中固件的技术。通过FOTA升级操作,不仅仅可以下载升级应用软件,也可以更新设备的操作系统。这样,FOTA升级操作使设备制造商能够通过网络将升级包发送到用户的终端设备中,从而对固件、软件进行升级,不但方便了用户,也为设备制造商节约了成本。
[0003] 随着终端设备的发货量越来越多,对FOTA服务器的性能要求也越来越高。当面对大并发升级请求访问时,如果超过FOTA服务器的负荷,就可能导致FOTA服务器出现卡死甚至宕机等情况,从而影响用户的FOTA升级体验。
[0004] 为了提高FOTA服务器的性能,防止上述情况发生,需要对FOTA服务器进行压力测试,模拟多个客户端同时向FOTA服务器发起升级请求的场景,根据测试结果来改善FOTA服务器的性能。传统的压力测试方法只能测试单个交互流程,而基于FOTA升级的升级流程交互是一个完整的协议,只有全部完成这几个协议流程的交互才能完成整个压力测试。因此,现有技术无法实现FOTA升级全流程交互的压力测试,无法保证测试的完整性和准确性。

发明内容

[0005] 本发明的主要目的在于提供一种基于FOTA升级的压力测试方法和装置,旨在有效灵活的实现FOTA升级全流程交互的压力测试,保证测试的完整性和准确性。
[0006] 为达以上目的,本发明提出一种基于FOTA升级的压力测试方法,包括步骤:
[0007] 模拟服务器根据预先配置的配置文件中的终端设备参数模拟多个客户端,并通过所述配置文件创建多个对FOTA服务器并发的升级请求线程;
[0008] 所述模拟服务器通过模拟的多个客户端根据所述升级请求线程与所述FOTA服务器进行升级操作,以对所述FOTA服务器进行压力测试;
[0009] 所述模拟服务器统计测试结果。
[0010] 优选地,所述模拟服务器通过模拟的多个客户端根据所述升级请求线程与所述FOTA服务器进行升级操作包括:
[0011] 所述模拟服务器通过模拟的多个客户端根据所述升级请求线程向所述FOTA服务器发起升级、鉴权请求;
[0012] 鉴权成功后,所述模拟服务器通过所述客户端向所述FOTA服务器上报当前的软件版本;
[0013] 所述模拟服务器通过所述客户端根据所述FOTA服务器的响应下载升级包;
[0014] 所述模拟服务器通过所述客户端向所述FOTA服务器上报升级结果。
[0015] 优选地,所述模拟服务器统计测试结果包括:所述模拟服务器在测试过程中定时的统计测试结果。
[0016] 优选地,所述模拟服务器统计测试结果包括:所述模拟服务器在测试完成后统计测试结果。
[0017] 优选地,所述测试结果包括测试时长、升级请求数量、升级请求成功数量和升级请求失败数量。
[0018] 本发明同时提出一种基于FOTA升级的压力测试装置,包括依次连接的配置模块、模拟模块、压力测试模块和统计模块,其中:
[0019] 配置模块,用于配置配置文件;
[0020] 模拟模块,用于根据所述配置文件中的终端设备参数模拟多个客户端,并通过所述配置文件创建多个对FOTA服务器并发的升级请求线程;
[0021] 压力测试模块,用于通过模拟的多个客户端根据所述升级请求线程与所述FOTA服务器进行升级操作,以对所述FOTA服务器进行压力测试;
[0022] 统计模块,用于统计测试结果。
[0023] 优选地,所述压力测试模块用于:
[0024] 通过模拟的多个客户端根据所述升级请求线程向所述FOTA服务器发起升级、鉴权请求;
[0025] 鉴权成功后,通过所述客户端向所述FOTA服务器上报当前的软件版本;
[0026] 通过所述客户端根据所述FOTA服务器的响应下载升级包;
[0027] 通过所述客户端向所述FOTA服务器上报升级结果。
[0028] 优选地,所述统计模块用于:在所述压力测试模块测试过程中定时的统计测试结果。
[0029] 优选地,所述统计模块用于:在所述压力测试模块测试完成后统计测试结果。
[0030] 优选地,所述测试结果包括测试时长、升级请求数量、升级请求成功数量和升级请求失败数量。
[0031] 本发明所提供的一种基于FOTA升级的压力测试方法,利用配置文件中的终端设备参数模拟多个客户端,通过配置文件创建多个升级请求线程,最终通过多个模拟客户端根据多个升级请求线程模拟多个终端设备同时向FOTA服务器发起升级操作,与FOTA服务器完成整个升级交互流程,有效灵活的实现了FOTA升级全流程交互的压力测试,保证了测试的完整性和准确性。

附图说明

[0032] 图1是本发明基于FOTA升级的压力测试方法一实施例的流程图;
[0033] 图2是图1中步骤S13的具体流程图;
[0034] 图3是本发明实施例中测试结果输出示意图;
[0035] 图4是本发明基于FOTA升级的压力测试装置一实施例的模块示意图。
[0036] 本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

[0037] 应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0038] 参见图1,提出本发明基于FOTA升级的压力测试方法一实施例,所述方法包括以下步骤:
[0039] 步骤S11:模拟服务器根据预先配置的配置文件中的终端设备参数模拟多个客户端。
[0040] 模拟服务器中预先配置了配置文件,配置文件中包括终端设备参数,该终端设备参数包括终端设备的IMEI(International Mobile Equipment Identification Number,国际移动终端设备识别码)、终端设备厂商、终端设备型号、当前软件版本等设备信息,模拟服务器获取配置文件中的设备参数,并使用这些参数模拟多个客户端,后续将通过模拟服务器模拟的客户端(以下简称模拟客户端)与FOTA服务器进行模拟升级操作。
[0041] 举例而言,配置文件格式如下:
[0042] deviceid||mod||DMVersion||SWVersion||man||lang
[0043] IMEI:444440000000000||MX001||1.2||MX001_Z0_CN_000000||VX||EN
[0044] 其中,第一行用于说明每个用||隔开的内容指代哪个配置信息,其中deviceid指代设备的IMEI,mod指代设备型号,DMVersion DM指代协议版本,SWVersion指代软件版本,man指代制造产商,lang指代使用语言;第二行的内容分别对应前述配置信息的值。
[0045] 步骤S12:模拟服务器通过配置文件创建多个对FOTA服务器并发的升级请求线程。
[0046] 对FOTA服务器并发的升级请求线程有多个,并同时进行。每一模拟客户端对应一升级请求线程,以模拟终端设备与FOTA服务器进行升级交互的全流程,对FOTA服务器进行压力测试。举例而言,在启动模拟服务器时,会给模拟服务器传入启动参数,启动参数中会包含模拟服务器向FOTA服务器发出的请求数,例如:请求数为50,那么模拟服务器会向FOTA服务器并发提交50个请求线程。
[0047] 具体实现上,本实施例可以通过命令行方式启动压力测试进行升级操作的模拟。例如,命令行格式为:java-jar dm-client.jar test1 p 50,其中“java-jar dm-client.jar”为运行模拟客户端的jar包,后面三个参数“test1”、“p”和“50”为可配置参数,其中:
[0048] 参数“test1”,表示设备信息的配置文件名称,配置文件放置在config,可通过config/test1进行设备信息的修改,可以在配置文件中指定多个设备信息来模拟多个终端设备。
[0049] 参数“p”,表示循环次数,可配置的值有数字和字母p。配置为p代表死循环,即升级请求会不断续的发送;配置为数字代表循环相应次数的升级请求,如配置50则同一个终端设备升级完成后会继续升级,连续循环50次为止,通过这样不断循环的访问FOTA服务器升级来达到压力测试的目的。
[0050] 参数“50”,表示并发线程数,如50指的是同时并发50个线程请求,也就意味着有50个终端设备(模拟客户端)在同时向FOTA服务器请求升级。
[0051] 通过修改上述配置参数可以进行并发数和总请求数的配置修改,达到不间断的FOTA服务器压力测试目的。
[0052] 步骤S13:模拟服务器通过模拟的多个客户端根据升级请求线程与FOTA服务器进行升级操作,以对FOTA服务器进行压力测试。
[0053] 本步骤S13中,模拟服务器通过多个线程模拟多个终端设备和FOTA服务端进行升级交互的全流程。模拟服务器通过模拟客户端使用Http与FOTA服务器进行交互,按照OMA(Open Mobile Alliance,开放移动联盟)DM(Device Management,终端设备管理)协议发送协议格式数据给FOTA服务器,FOTA服务器接收请求后发送数据给模拟客户端,模拟客户端接收信息后,根据协议处理结果再将数据返回给FOTA服务器。
[0054] 模拟客户端与FOTA服务器进行升级操作的流程具体包括以下步骤:
[0055] 步骤S131:模拟客户端根据升级请求线程向FOTA服务器发起升级、鉴权请求。
[0056] 本步骤S131中,模拟服务器通过多个模拟客户端根据相应的升级请求线程同时向FOTA服务器发起升级、鉴权请求,并向FOTA服务器提供模拟客户端的设备信息。
[0057] 步骤S132:鉴权成功后,模拟客户端向FOTA服务器上报当前的软件版本。
[0058] FOTA服务器根据模拟客服端发起的升级操作请求,对模拟客户端进行管理操作,根据设备信息与模拟客户端进行鉴权操作。当鉴权成功后,模拟服务器则通过模拟客户端向FOTA服务器上报当前的软件版本。
[0059] 步骤S133:模拟客户端根据FOTA服务器的响应下载升级包。
[0060] 具体的,FOTA服务器接收到模拟客户端上报的软件版本后,下发进一步管理操作,替换PkgURL节点为下载DD文件的URL,模拟服务器则通过模拟客户端根据URL下载升级包。由于模拟客户端是在模拟协议交互流程,因此无需进行安装升级包。
[0061] 步骤S134:模拟客户端向FOTA服务器上报升级结果。
[0062] 当模拟客户端下载升级包完成后,模拟服务器则通过模拟客户端向FOTA服务器上报升级结果,完成整个升级操作流程。
[0063] 步骤S14:模拟服务器统计测试结果。
[0064] 所述测试结果包括测试时长、升级请求数量、升级请求成功数量和升级请求失败数量,还可以进一步包括单位时间内完成的升级请求数量等结果。
[0065] 本步骤中S14中,模拟服务器可以在测试完成后,即整个测试流程结束后,再对测试结果进行统计,并输出该测试结果。
[0066] 优选地,模拟服务器可以在测试过程中,定时的统计测试结果,并实时输出该测试结果或在测试完成后输出测试结果。例如,如图3所示,为压力测试的命令以及输出的测试结果,从图3中可以看出,模拟服务器每隔10S统计一次测试结果,测试结果包括测试时长(Time taken for tests)、升级请求成功数量(The count of successful)、升级请求失败数量(The count of fail)、每秒完成的升级请求数量(Request per second)、本期间的升级请求数量(Total Request of The Period)以及总的升级请求数量(Total Request),使得测试结果一目了然。
[0067] 本实施例基于FOTA升级的压力测试方法,利用配置文件中的终端设备参数模拟多个客户端,通过配置文件创建多个升级请求线程,最终通过多个模拟客户端根据多个升级请求线程模拟多个终端设备向FOTA服务器同时发起升级操作,与FOTA服务器完成整个升级交互流程,有效灵活的实现了FOTA升级全流程交互的压力测试,保证了测试的完整性和准确性。
[0068] 参见图4,提出本发明基于FOTA升级的压力测试装置一实施例,本实施例中基于FOTA升级的压力测试装置相当于前述方法实施例中的模拟服务器,该装置包括依次连接的配置模块、模拟模块、压力测试模块和统计模块,其中:
[0069] 配置模块:用于配置配置文件。
[0070] 模拟模块:用于根据配置文件中的终端设备参数模拟多个客户端,并通过配置文件创建多个对FOTA服务器并发的升级请求线程。
[0071] 配置文件中的终端设备参数包括终端设备的IMEI、终端设备厂商、终端设备型号、当前软件版本等设备信息,模拟模块获取配置文件中的设备参数,并使用这些参数模拟多个客户端,以使压力测试模块后续通过这些模拟客户端与FOTA服务器进行模拟升级操作。
[0072] 举例而言,配置文件格式如下:
[0073] deviceid||mod||DMVersion||SWVersion||man||lang
[0074] IMEI:444440000000000||MX001||1.2||MX001_Z0_CN_000000||VX||EN
[0075] 其中,第一行用于说明每个用||隔开的内容指代哪个配置信息,其中deviceid指代设备的IMEI,mod指代设备型号,DMVersion DM指代协议版本,SWVersion指代软件版本,man指代制造产商,lang指代使用语言;第二行的内容分别对应前述配置信息的值。
[0076] 对FOTA服务器并发的升级请求线程有多个,并同时进行。每一模拟客户端对应一升级请求线程,以模拟终端设备与FOTA服务器进行升级交互的全流程,对FOTA服务器进行压力测试。举例而言,在启动模拟服务器时,会给模拟服务器传入启动参数,启动参数中会包含模拟服务器向FOTA服务器发出的请求数,例如:请求数为50,那么模拟服务器会向FOTA服务器并发提交50个请求线程。
[0077] 具体实现上,本实施例中模拟模块可以通过命令行方式启动压力测试进行升级操作的模拟。例如,命令行格式为:java-jar dm-client.jar test1p 50,其中“java-jar dm-client.jar”为运行模拟客户端的jar包,后面三个参数“test1”、“p”和“50”为可配置参数,其中:
[0078] 参数“test1”,表示设备信息的配置文件名称,配置文件放置在config,可通过config/test1进行设备信息的修改,模拟模块可以在配置文件中指定多个设备信息来模拟多个终端设备。
[0079] 参数“p”,表示循环次数,可配置的值有数字和字母p。配置为p代表死循环,即升级请求会不断续的发送;配置为数字代表循环相应次数的升级请求,如配置50则同一个终端设备升级完成后会继续升级,连续循环50次为止,通过这样不断循环的访问FOTA服务器升级来达到压力测试的目的。
[0080] 参数“50”,表示并发线程数,如50指的是同时并发50个线程请求,也就意味着有50个终端设备(模拟客户端)在同时向FOTA服务器请求升级。
[0081] 通过修改上述配置参数可以进行并发数和总请求数的配置修改,达到不间断的FOTA服务器压力测试目的。
[0082] 压力测试模块:用于通过模拟模块模拟的多个客户端根据升级请求线程与FOTA服务器进行升级操作,以对FOTA服务器进行压力测试。
[0083] 本实施例中,模拟服务器通过多个线程模拟多个终端设备和FOTA服务端进行升级交互的全流程。具体的,压力测试模块通过模拟客户端使用Http与FOTA服务器进行交互,按照OMA DM协议发送协议格式数据给FOTA服务器,FOTA服务器接收请求后发送数据给模拟客户端,模拟客户端接收信息后,根据协议处理结果再将数据返回给FOTA服务器。
[0084] 模拟客户端与FOTA服务器进行升级操作的流程主要包括以下四个阶段:
[0085] 第一阶段,模拟客户端根据升级请求线程向FOTA服务器发起升级、鉴权请求。具体的,压力测试模块通过多个模拟客户端根据相应的升级请求线程同时向FOTA服务器发起升级、鉴权请求,并向FOTA服务器提供模拟客户端的设备信息。
[0086] 第二阶段,鉴权成功后,模拟客户端向FOTA服务器上报当前的软件版本。具体的,FOTA服务器根据模拟客服端发起的升级操作请求,对模拟客户端进行管理操作,根据设备信息与模拟客户端进行鉴权操作。当鉴权成功后,压力测试模块则通过模拟客户端向FOTA服务器上报当前的软件版本。
[0087] 第三阶段,模拟客户端根据FOTA服务器的响应下载升级包。具体的,FOTA服务器接收到模拟客户端上报的软件版本后,下发进一步管理操作,替换PkgURL节点为下载DD文件的URL,压力测试模块则通过模拟客户端根据URL下载升级包。由于模拟客户端是在模拟协议交互流程,因此无需进行安装升级包。
[0088] 第四阶段,模拟客户端向FOTA服务器上报升级结果。具体的,当模拟客户端下载升级包完成后,压力测试模块则通过模拟客户端向FOTA服务器上报升级结果,完成整个升级操作流程。
[0089] 统计模块:用于统计测试结果。
[0090] 所述测试结果包括测试时长、升级请求数量、升级请求成功数量和升级请求失败数量,还可以进一步包括单位时间内完成的升级请求数量等结果。
[0091] 统计模块可以在压力测试模块测试完成后,即整个测试流程结束后,再对测试结果进行统计,并输出该测试结果。
[0092] 优选地,统计模块可以在压力测试模块测试过程中,定时的统计测试结果,并实时输出该测试结果或在测试完成后输出测试结果。例如,如图3所示,为压力测试的命令以及输出的测试结果,从图3中可以看出,统计模块每隔10S统计一次测试结果,测试结果包括测试时长(Time taken for tests)、升级请求成功数量(The count of successful)、升级请求失败数量(The count of fail)、每秒完成的升级请求数量(Request per second)、本期间的升级请求数量(Total Request of The Period)以及总的升级请求数量(Total Request),使得测试结果一目了然。
[0093] 本实施例基于FOTA升级的压力测试装置,利用配置文件中的终端设备参数模拟多个客户端,通过配置文件创建多个升级请求线程,最终通过多个模拟客户端可以根据多个升级请求线程模拟多个终端设备同时向FOTA服务器发起升级操作,与FOTA服务器完成整个升级交互流程,有效灵活的实现了FOTA升级全流程交互的压力测试,保证了测试的完整性和准确性。
[0094] 需要说明的是:上述实施例提供的基于FOTA升级的压力测试装置在进行压力测试时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成。另外,上述实施例提供的基于FOTA升级的压力测试装置与基于FOTA升级的压力测试方法实施例属于同一构思,其具体实现过程详见方法实施例,且方法实施例中的技术特征在装置实施例中均对应适用。
[0095] 本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤可以通过程序来控制相关的硬件完成,所述的程序可以存储于一计算机可读取存储介质中,所述的存储介质可以是ROM/RAM、磁盘、光盘等。
[0096] 应当理解的是,以上仅为本发明的优选实施例,不能因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。