一种压测模型创建方法及电子设备与流程

文档序号:31471382发布日期:2022-09-09 23:19阅读:73来源:国知局
一种压测模型创建方法及电子设备与流程

1.本技术涉及计算机技术领域,尤其涉及一种压测模型创建方法及电子设备。


背景技术:

2.流量压力测试可以检测程序产品存在的性能问题。这样,在程序产品发布前,测试员可以通过流量压力测试,查找程序产品的缺陷,并及时修改,确保发布后的程序产品的运行稳定性。
3.相关技术中,在流量压力测试期间,需要利用压测模型,从访问接口维度,模拟面向程序产品的访问流量。显然,所模拟出的访问流量与实际面临的访问流量,即使数量相近,但对程序产品性能要求却不同,这就会导致流量压力测试的效果不佳等问题。


技术实现要素:

4.本技术实施例提供一种压测模型创建方法及电子设备,获得录制流量之后,通过统计不同应用场景下调用同一访问接口的访问请求数量,创建可从应用场景维度模拟流量数据的压测模型,从而,提升流量压力测试的准确性。
5.为达到上述目的,本技术采用如下技术方案:第一方面,本技术实施例提供的一种压测模型创建方法,应用于电子设备,所述方法包括:获取录制的第一流量数据,其中,第一流量数据包括多条第一访问请求,第一访问请求用于调用第一访问接口;第一访问请求包括第一参数,在第一访问请求是第一应用场景下发出的访问请求时,第一访问请求的第一参数为第一值,在第一访问请求是第二应用场景下发出的访问请求时,第一访问请求的第一参数为第二值;在第一访问请求中,确定多条第二访问请求和多条第三访问请求,第二访问请求中的第一参数取值为第一值,第三访问请求中的第一参数取值为第二值;依据每条第二访问请求对应的请求时间,确定第一访问接口在第一应用场景下的第一调用信息;其中,第一调用信息包括每秒最大调用量、每秒最小调用量、每秒平均调用量、第一持续时长,第一持续时长是第一访问接口在第一应用场景下最大调用量的持续时长;依据每条第三访问请求对应的请求时间,确定第一访问接口在第二应用场景下的第二调用信息;其中,第二调用信息包括每秒最大调用量、每秒最小调用量、每秒平均调用量、第二持续时长,第二持续时长是第一访问接口在第二应用场景下最大调用量的持续时长;根据第一调用信息和第二调用信息,创建针对第一访问接口的接口压测模型。
6.在上述实施例中,第一访问接口是待测程序产品的应用接口。针对第一访问接口,可按照调用该接口的应用场景不同,分类统计第一访问接口对应的调用信息,如,第一调用信息和第二调用信息。再根据第一调用信息和第二调用信息,创建针对第一访问接口的压测模型。该压测模型可以从应用场景维度,模拟针对第一访问接口的访问流量。该访问流量的请求数量不仅与该第一访问接口实际可能面临的流量相近,还能模拟多种应用场景下调用第一访问接口,给第一访问接口带来的压力。这样,可有效提高流量压测的准确性。
7.在一些可能的实施例中,第一流量数据还包括多条第四访问请求,第四访问请求用于调用第二访问接口,第四访问请求不含第一参数,方法还包括:依据每条第四访问请求对应的请求时间,确定第二访问接口的第三调用信息;其中,第三调用信息包括每秒最大调用量、每秒最小调用量、每秒平均调用量、第三持续时长,第三持续时长是第二访问接口的最大调用量的持续时长;根据第三调用信息,创建针对第二访问接口的接口压测模型。
8.在上述实施例中,如果调用第二访问接口的应用场景不能区分,那么直接统计针对第二访问接口的调用信息,从而,创建针对第二访问接口的接口压测模型。在此需要说明的是,针对第二访问接口的调用信息包括每秒最大调用量、每秒最小调用量、每秒平均调用量、第三持续时长,上述调用信息可以更真实的还原实际场景下,针对第二访问接口的流量变化。
9.在一些可能的实施例中,在第二访问接口是第一业务的唯一接口时,根据第三调用信息,确定针对第一业务的业务压测模型。
10.在一些可能的实施例中,在获取录制的第一流量数据之前,方法还包括:接收录制的原始流量数据;获取录制的第一流量数据,包括:在原始流量数据经过预处理之后,得到所述第一流量数据;所述预处理包括清洗无效的访问请求以及合并重复的访问请求。
11.在一些可能的实施例中,所述电子设备还包括第一列表,所述第一列表包括第一接口路径、第一接口方法,所述第一接口路径、第一接口方法对应指示所述第一访问接口,所述确定多条第二访问请求和多条第三访问请求,包括:解析所述第一流量数据中的每一条访问请求,确定每一条所述访问请求的接口路径参数和接口方法参数;在一条访问请求的接口路径参数为第一接口路径、接口方法参数为第一接口方法时,解析访问请求的信息体;在访问请求的信息体中第一参数取值为第一值时,确定访问请求为第二访问请求;在访问请求的信息体中第一参数取值为第二值时,确定访问请求为第三访问请求。
12.在一些可能的实施例中,在第一流量数据中,确定多条第四访问请求。
13.在一些可能的实施例中,电子设备还包括第一列表,第一列表包括指示第一访问接口的第一接口路径、第一接口方法,确定多条第四访问请求,包括:解析第一流量数据中的每一条访问请求,确定对应的接口路径参数和接口方法参数;在一条访问请求的接口路径参数不为第一接口路径,或者接口方法参数不为第一接口方法时,确定访问请求为第四访问请求。
14.第二方面,本技术实施例提供的一种电子设备,电子设备包括一个或多个处理器和存储器;存储器与处理器耦合,存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当一个或多个处理器执行计算机指令时,一个或多个处理器,用于:获取录制的第一流量数据,其中,所述第一流量数据包括多条第一访问请求,所述第一访问请求用于调用第一访问接口;所述第一访问请求包括第一参数,在所述第一访问请求是第一应用场景下发出的访问请求时,所述第一访问请求的所述第一参数为第一值,在所述第一访问请求是第二应用场景下发出的访问请求时,所述第一访问请求的所述第一参数为第二值;在所述第一访问请求中,确定多条第二访问请求和多条第三访问请求,所述第二访问请求中的第一参数取值为第一值,所述第三访问请求中的第一参数取值为第二值;依据每条所述第二访问请求对应的请求时间,确定所述第一访问接口在第一应用场景下的第一调用信息;其中,所述第一调用信息包括每秒最大调用量、每秒最小调用量、每秒平均调用量、第一持
续时长,所述第一持续时长是所述第一访问接口在第一应用场景下最大调用量的持续时长;依据每条所述第三访问请求对应的请求时间,确定所述第一访问接口在第二应用场景下的第二调用信息;其中,所述第二调用信息包括每秒最大调用量、每秒最小调用量、每秒平均调用量、第二持续时长,所述第二持续时长是所述第一访问接口在第二应用场景下最大调用量的持续时长;根据所述第一调用信息和第二调用信息,创建针对所述第一访问接口的接口压测模型。
15.在一些可能的实施例中,所述第一流量数据还包括多条第四访问请求,所述第四访问请求用于调用第二访问接口,所述第四访问请求不含第一参数,一个或多个处理器,用于:依据每条所述第四访问请求对应的请求时间,确定所述第二访问接口的第三调用信息;其中,所述第三调用信息包括每秒最大调用量、每秒最小调用量、每秒平均调用量、第三持续时长,所述第三持续时长是所述第二访问接口的最大调用量的持续时长;根据所述第三调用信息,创建针对第二访问接口的接口压测模型。
16.在一些可能的实施例中,一个或多个处理器,用于:在所述第二访问接口是第一业务的唯一接口时,根据所述第三调用信息,确定针对第一业务的业务压测模型。
17.在一些可能的实施例中,在获取录制的第一流量数据之前,一个或多个处理器,用于:接收录制的原始流量数据;在所述原始流量数据经过预处理之后,得到所述第一流量数据;所述预处理包括清洗无效的访问请求以及合并重复的访问请求。
18.在一些可能的实施例中,所述电子设备还包括第一列表,所述第一列表包括第一接口路径、第一接口方法,所述第一接口路径、第一接口方法对应指示所述第一访问接口,一个或多个处理器,用于:解析所述第一流量数据中的每一条访问请求,确定每一条所述访问请求的接口路径参数和接口方法参数;在一条所述访问请求的接口路径参数为第一接口路径、接口方法参数为第一接口方法时,解析所述访问请求的信息体;在所述访问请求的信息体中第一参数取值为第一值时,确定所述访问请求为所述第二访问请求;在所述访问请求的信息体中第一参数取值为第二值时,确定所述访问请求为所述第三访问请求。
19.在一些可能的实施例中,一个或多个处理器,用于:在所述第一流量数据中,确定多条所述第四访问请求。
20.在一些可能的实施例中,所述电子设备还包括第一列表,所述第一列表包括指示第一访问接口的第一接口路径、第一接口方法,一个或多个处理器,用于:解析所述第一流量数据中的每一条访问请求,确定对应的接口路径参数和接口方法参数;在一条所述访问请求的接口路径参数不为第一接口路径,或者接口方法参数不为第一接口方法时,确定所述访问请求为第四访问请求。
21.第三方面,本技术实施例提供的一种计算机存储介质,包括计算机指令,当所述计算机指令在电子设备上运行时,使得电子设备执行上述第一方面及其可能的实施例中所述的方法。
22.第四方面,本技术提供一种计算机程序产品,当计算机程序产品在上述电子设备上运行时,使得电子设备执行上述第一方面及其可能的实施例中所述的方法。
23.可以理解地,上述电子设备、计算机存储介质以及计算机程序产品均应用于上文所提供的对应方法,因此,其所能达到的有益效果可参考上文所提供的对应方法中的有益效果,此处不再赘述。
附图说明
24.图1为本技术实施例提供的系统的示意图;图2为本技术实施例提供的用户终端的硬件结构示意图;图3为本技术实施例提供的服务器的软件模块示意图;图4为本技术实施例提供的在提交订单的场景下,请求信息的传递示例图;图5为本技术实施例提供的一种压测模型创建方法的流程图之一;图6为本技术实施例提供的一种压测模型创建方法的流程图之二;图7为本技术实施例提供的一种压测模型创建方法的流程图之三;图8为本技术实施例提供的电子设备的软件模块示意图;图9为本技术实施例提供的一种压测模型创建方法的流程图之四;图10为本技术实施例提供的一种压测模型创建方法的流程图之五;图11为本技术实施例提供的一种芯片系统的组成示意图。
具体实施方式
25.以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
26.在程序产品面向用户发布之前,开发者需要对该程序产品进行性能测试。通过性能测试,开发者可以掌握程序产品存在的问题。这样,在程序产品发布前,还可以修改该程序产品,确保发布后的程序产品的运行稳定性。
27.其中,流量压力测试是一项重要的性能测试。所谓流量是针对程序产品的指访问量,可以由程序产品中各个接口所接收到的访问请求指示。另外,流量压力测试是指通过模拟真实场景中程序产品可能面临的访问量,测试程序产品在运行过程中,各类程序业务是否能够稳定运行。
28.然而,模拟出的访问量和真实场景中面临的访问量,即使数量相同,但是对程序产品的性能需求存在差异的。这就会导致,流量压力测试得到不到预期的测试效果,比如,性能问题不能提前暴露,那么程序产品发布后,会出现因性能不足致使部分程序业务不可用等问题。
29.为了改善上述问题,本技术实施例提供了一种压测模型创建方法。其中,上述压测模型包括接口压测模块。所谓接口是指程序产品部署于服务器之后,可以向用户终端提供的各类访问接口。这样,用户终端可以通过调用一个或多个访问接口,请求使用指定的程序业务。示例性地,调用访问接口的方式可以是向该访问接口发送对应的访问请求。
30.另外,该接口压测模型可用于查询各个访问接口对应的调用相关信息。该调用相关信息可以指示访问接口在时间区间1中的调用情况。这样,可以依据调用相关信息,模拟出针对程序产品的访问请求。
31.示例性地,上述调用相关信息可以包括对应的访问接口的调用次数占比。其中,上述调用次数占比可以是时间区间1中,该访问接口的调用次数与所有访问接口的调用次数之间的比例。上述调用次数占比还可以是该访问接口在不同应用场景下被调用的次数与该
访问接口对应的总调用次数之间的比例。
32.又示例性地,调用相关信息还可以包括:在时间区间1中,每秒调用(transaction per second,tps)最大次数、tps最小次数、tps平均次数、tps最大次数的持续时长等。
33.在一些实施例中,该方法包括:录制同类型的程序产品,在特定场景(访问量较大的场景)下,接收到的访问请求。其中,该特定场景的存续时间为时间区间1。例如,程序产品为购物应用,那么录制购物类程序产品在大型促销活动、商品首销等场景下,接收到的所有访问请求。另外,如果大型促销活动的存续时间是一天,那么对应的时间区间1为1天。如果商品首销的存续时间为早上10点至11点,那么对应的时间区间1为1小时。
34.然后,解析所录制的访问请求,确定每条访问请求指示调用的访问接口,如,确定出访问接口a对应的至少一条访问请求a和访问接口b对应的至少一条访问请求b。可以理解的,上述访问接口a和访问接口b为程序产品对应的访问接口的示例,并不限于仅有访问接口a和访问接口b。
35.在访问接口a对应的访问请求a不含关键参数时,统计访问接口a对应的访问请求a在时间轴上的分布,得到访问接口a的调用相关信息a。
36.在访问接口b对应的访问请求b中包括关键参数时,统计不同关键参数对应的访问请求b,在时间轴上的分布。这样,得到访问请求b对应的多个调用相关信息b。其中,上述关键参数可以指示发送该访问请求的方式,也即,发出该访问请求的不同应用场景。比如,支付接口对应的访问请求中,关键参数可以支付渠道参数(channel_code),该不同的channel_code值指示发出该访问请求的不同支付方式,不同支付方式对应不同的应用场景。
37.最后,根据各访问接口的调用相关信息(如,调用相关信息a、调用相关信息b等),得到压测模型。
38.在上述实施例中,用于创建压测模型的调用相关信息,能够更加精准地体现出特定场景中各访问接口的调用情况变化,如,不同访问接口被调用的次数变化,再如,同一访问接口在不同应用场景下被调用的次数变化。需要说明的是,同一访问接口在不同应用场景下被调用时所占用的性能资源是存在差异的。
39.这样,通过上述压测模型模拟出的访问请求,与真实场景中可能面临的访问请求更为接近。从而,确保程序产品存在的性能问题能够提前暴露出,保障发布后的程序产品的稳定性。
40.在一些实施例中,上述方法可以应用于图1所示的系统。该系统中电子设备的使用者可以称为测试员,用户终端的使用者可以称为用户。上述电子设备、用户终端均可以与服务器之间通信连接。
41.示例性的,用户终端可以是台式电脑、平板电脑、移动智能终端(手机)、桌面型、膝上型、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,umpc)、上网本,以及个人数字助理(personal digital assistant,pda)、增强现实(augmented reality,ar)\虚拟现实(virtual reality,vr)设备等,本技术实施例对该用户终端的具体形态不作特殊限制。
42.请参考图2,为本技术实施例提供的一种用户终端200的结构示意图。如图1所示,用户终端200可以包括:处理器210,外部存储器接口220,内部存储器221,通用串行总线
organic light emitting diode,amoled),柔性发光二极管(flex light-emitting diode,fled),miniled,microled,micro-oled,量子点发光二极管(quantum dot light emitting diodes,qled)等。
52.用户终端200可以通过isp,摄像头293,视频编解码器,gpu,显示屏294以及应用处理器等实现拍摄功能。
53.isp 用于处理摄像头293反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给isp处理,转化为肉眼可见的图像。isp还可以对图像的噪点,亮度,肤色进行算法优化。isp还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,isp可以设置在摄像头293中。
54.摄像头293用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,ccd)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,cmos)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给isp转换成数字图像信号。isp将数字图像信号输出到dsp加工处理。dsp将数字图像信号转换成标准的rgb,yuv等格式的图像信号。在一些实施例中,用户终端200可以包括n个摄像头293,n为大于1的正整数。
55.数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当用户终端200在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
56.视频编解码器用于对数字视频压缩或解压缩。用户终端200可以支持一种或多种视频编解码器。这样,用户终端200可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,mpeg)1,mpeg2,mpeg3,mpeg4等。
57.npu为神经网络(neural-network,nn)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过npu可以实现用户终端200的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
58.可以理解的是,本技术实施例示意的结构并不构成对用户终端的具体限定。在本技术另一些实施例中,用户终端可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
59.示例性的,上述电子设备可以是台式电脑、平板电脑、桌面型、膝上型、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,umpc),以及个人数字助理(personal digital assistant,pda)等,本技术实施例对该电子设备的具体形态不作特殊限制。
60.在一些实施例中,上述服务器中可以部署有至少一种程序产品,上述程序产品可以采用服务的形式运行于服务器中。于用户而言,可以通过用户终端,向服务器请求任意程序产品提供的应用服务。于测试员而言,可以通过电子设备,从服务器查询任意程序产品对应的流量数据。
61.为了下述各实施例的描述清楚简洁,结合附图对本技术实施例的实现细节进行介绍:
首先,在创建压测模型之前,获取同类程序产品所对应的流量数据。其中,上述流量数据可以是同类程序产品接收到的访问请求。
62.以需对购物应用a进行流量压力测试为例。电子设备需要获取购物应用b在特定场景(如,商品首销活动期间)下接收到的访问请求。其中,购物应用a与购物应用b可以是同类型的程序产品,也即,都为购物类的程序产品。当然,购物应用a和购物应用b可以是同一个程序产品的不同版本,也即,购物应用b为已发布版本,购物应用a为未发布版本。
63.在一些实施例中,如图3所示,服务器中包括至少一个应用服务及网关。其中,上述至少一个应用服务中包括应用服务1。可以理解地,购物应用b的程序文件包括前端程序文件和后端程序文件。后端程序文件部署于服务器,上述应用服务1是购物应用b的后端程序文件在服务器中的运行形态。另外,购物应用b的前端程序文件可以安装于用户终端,安装上述前端程序文件又可称为安装有购物应用b。另外,安装有购物应用b的用户终端可以响应于用户对购物应用b的操作,与上述服务器建立通信连接。这样,用户终端可以通过应用服务1对应的网关,与应用服务1进行数据交互。
64.例如,图4所示,用户终端响应于用户指示提交购物订单的操作,向网关发送请求信息a,该请求信息a用于指示应用服务1执行订单提交业务。上述请求信息a可以包括针对多个访问接口的多条访问请求,上述多个访问接口是应用服务1提供的应用程序接口。在网关接收到请求信息a之后,可以将请求信息a,转发给应用服务1。这样,请求信息a对应的访问请求可以分别调用对应的访问接口。另外,应用服务1处理请求信息a之后得到的响应结果可存储于服务器的生产数据库中。
65.另外,如图3所示,服务器中还包括流量录制引擎,上述网关中包括与应用服务1对应的端口镜像,如称为第一端口镜像。上述流量录制引擎可以通过第一端口镜像录制应用服务1对应的所有访问请求。示例性地,在流量录制引擎确定录制购物应用b的访问请求之后,如图4所示,网关接收到指向应用服务1的请求信息a,网关在向应用服务1转发请求信息a的同时,也通过第一端口镜像将请求信息a发送给流量录制引擎,从而实现流量数据的录制。
66.另一些实施例中,流量录制引擎也可以分别录制不同程序产品对应的流量数据,并存储。这样,电子设备可以通过流量录制引擎,查询到不同程序产品对应的流量数据。
67.示例性地,录制访问请求的方式可以是记录各条访问请求的各项参数信息。例如,记录每条访问请求的接口路径(path)、接口方法(method)及携带的所有参数。另外,网关接收到访问请求之后,还可以给每个访问请求标记一个时间戳(又称为请求时间点),这样,在录制流量数据时,还可以对应存储各访问请求对应的请求时间点。
68.在一些实施例中,如图3所示,电子设备与服务器之间也通信连接。电子设备可以指示流量录制引擎,录制购物应用b对应的访问请求。与之对应地,流量录制引擎也可以将录制到的流量数据传递给电子设备。这样,电子设备可以获取到流量录制引擎录制的流量数据。
69.在一些示例中,电子设备可以指示流量录制引擎,录制购物应用b所有的访问请求,也就是,流量录制引擎在接收到电子设备的指示之后,录制指向服务应用1的所有访问请求。另一些示例性,电子设备可以指示流量录制引擎,在指定的录制时间内(如,特定场景的存续期间),录制购物应用b对应的访问请求,也就是,流量录制引擎在接收到电子设备的
指示之后,录制请求时间点属于录制时间、指向应用服务1的访问请求。
70.在电子设备获取到流量数据之后,电子设备可以利用获得的流量数据创建压测模型。
71.在一些实施例中,如图5所示,上述压测模型创建方法可以包括以下步骤:s101,电子设备预处理获得的流量数据,得到流量数据1。
72.在一些实施例中,电子设备预处理流量数据的方式包括:流量清洗和流量聚合等之一或之间的组合。
73.其中,流量清洗是指筛除部分访问请求的过程。
74.示例性地,上述流量清洗可以包括筛除无效访问请求。上述无效访问请求可以包括不符合网关协议要求的访问请求,也可以包括应用服务1不识别的访问请求,还可以包括被应用服务1屏蔽的访问请求又示例性地,上述流量清洗还可以包括过滤预设类型的访问请求。在一些实施例中,测试员可以自主配置需被过滤的访问请求类型。在另一些实施例中,测试员指示创建压测模型之前,可以配置压测模型对应的测试需求。不同测试需求,需过滤的访问请求的类型不同。如,测试需求是测试业务压力时,指示登录认证、鉴权的访问请求,属于需过滤的访问请求类型。再如,测试需求可以是测试登录压力时,用于切换应用界面的访问请求,属于需过滤的访问请求类型。
75.另外,上述流量聚合是指将重复的访问请求合并的过程。其中,重复的访问请求可以是同一用户终端,在同一请求时间点向同一访问接口发送的访问请求,且对应的内容也相同。
76.例如,图6所示,获得的流量数据包括访问请求1(用于请求鉴权)、访问请求2(用于请求提交订单,标记为无效)、访问请求3(用于请求支付)、访问请求4a(用于请求提交订单)和访问请求4b(用于请求提交订单)。其中,访问请求4a和访问请求4b对应的接口路径(path)、接口方法(method)及携带参数相同,且访问请求4a和访问请求4b由同一用户终端在同一请求时间点发出。这样,电子设备预处理上述流量数据的过程如下:s101-1,电子设备结合预设的访问请求类型,进行流量清洗,得到流量数据2。其中,该流量数据2中包括访问请求3(用于请求支付)、访问请求4a(用于请求提交订单)和访问请求4b(用于请求提交订单)。
77.s101-2,电子设备针对流量数据2进行聚合。也即,将重复的访问请求4a和访问请求4b,合并为访问请求4。该访问请求4对应的接口path、接口method和参数均与访问请求4a、访问请求4b相同。
78.经过上述s101(也即,上述s101-1和s101-2),可以得到流量数据1,又可称为第一流量数据。另外,预处理之前的流量数据可称为原始流量数据。该流量数据1包括访问请求3(用于请求支付)、访问请求4(用于请求提交订单)。
79.s102,电子设备解析流量数据1中的每一条访问请求,并进行统计,得到各访问接口对应的调用相关信息1。
80.在一些实施例中,电子设备可以解析每一条访问请求的信息体,判断该访问请求调用的访问接口是否是指定访问接口。在该访问请求调用了指定访问接口的情况下,获取访问请求中关键参数的取值。
81.在一些示例中,测试员可以预先配置指定访问接口的类型,以及配置与各类指定访问接口对应的关键参数。当然,能够调用指定访问接口的访问请求,均携带有该访问接口对应的关键参数。示例性地,测试员通过操作电子设备配置接口关键参数表,又称为第一列表,该接口关键参数表中每一个列表项对应一个指定访问接口。列表项中包括接口path、接口method。可理解地,该接口path、接口method可以唯一指示一个访问接口,这样,每一个列表项可以对应一个访问接口。另外,列表项中还包括对应的关键参数的名称,每个指定访问接口可以包括一个关键参数,也可以包括多个关键参数,对此不作限定。例如,上述接口关键参数表可以如表1所示:表1其中,第一条列表项对应的指定访问接口的接口path为“/cashier/web/pc_pay.htm”、接口method为“post”,对应的关键参数1为channel_code,无关键参数2。第二条列表项对应的指定访问接口的接口path为“/cashier/m/mhindexloadandroid.htm”、接口method为“post”,对应的关键参数1为channel_code,也无关键参数2。
82.作为一种实现方式,电子设备可以先解析出访问请求中携带的接口path和接口method,然后,将解析出的接口path和接口method与接口关键参数表进行比对。
83.如果存在一个列表项的接口path、接口method与解析出的接口path和接口method相同,那么确定被解析的访问请求指示调用指定访问接口,可将该访问请求称为第一类访问请求。例如,第一流量数据中的第一访问请求属于第一类访问请求,该第一访问请求用于调用第一访问接口,第一访问接口对应的关键参数又称为第一参数。在第一列表中,第一访问接口对应的接口path为第一接口路径,接口method为第一接口方法。
84.例如,解析访问请求3,确定访问请求3对应的接口path为/cashier/web/pc_pay.htm,对应的接口method为post,通过查询表1,确定表1中第一条列表项的接口path、接口method与访问请求3的接口path、接口method相同,那么可以确定访问请求3调用指定访问接口。另外,依据表1,确定访问请求3对应有关键参数channel_code。这样,电子设备也可以通过解析访问请求3的信息体,得到关键参数channel_code的取值。
85.如果解析出的接口path和接口method与接口关键参数表中的列表项均不同,那么不再继续解析。该访问请求称为第二类访问请求。
86.在一些实施例中,对于第一类访问请求,电子设备可以将针对同一访问接口的所有访问请求,按照请求时间点和对应的关键参数的取值,进行统计。也即,统计每一个请求时间点上,调用同一访问接口且具有相同关键参数的访问请求的数量。
87.例如,结合表1,可以先从流量数据1中获取携带“/cashier/web/pc_pay.htm”和“post”的访问请求,如称为访问请求c。然后,统计在不同请求时间点上,携带不同关键参数的访问请求c的数量,得到接口流量表a,如下表2所示:表2
其中,请求时间点中“00时00分00秒”对应有时间区间1的起始时间点。另外,除了请求时间点“00时00分00秒”和“00时00分01秒”之外,表2中还可以包括其他请求时间点上,不同关键参数对应的访问请求c数量,该访问请求c所调用的访问接口可称为访问接口c。另外,表2对应的时间区间1为1小时。各请求时间点对应的访问请求数量,也即,该访问接口在该请求时间点上的调用次数。
88.然后,依据调用同一访问接口且具有相同关键参数的访问请求的数量(如表2),统计该访问接口对应的调用相关信息1。如下表3所示:表3其中,不同关键参数指示用户终端在不同应用场景下调用访问接口c。比如,channel_code的取值为alipay时,指示用户终端通过第一种支付渠道(又称为第一种应用场景)调用访问接口(接口path“/cashier/web/pc_pay.htm”和接口method“post”)。channel_code的取值为wxpay时,指示用户终端通过第二种支付渠道(又称为第二种应用场景)调用访问接口(接口path“/cashier/web/pc_pay.htm”和接口method“post”)。channel_code的取值为unionpay时,指示用户终端通过第三种支付渠道(又称为第三种应用场景)调用访问接口(接口path“/cashier/web/pc_pay.htm”和接口method“post”)。
89.例如,第一访问请求中的第一参数为第一值,指示该第一访问请求是在第一应用场景下发出的访问请求,该第一访问请求又可称为第二访问请求。第一访问请求中的第一参数为第二值,指示该第一访问请求是在第二应用场景下发出的访问请求,该第一访问请求又可称为第三访问请求。另外,依据第二访问请求统计出的tps最大次数(每秒最大调用
量)、tps最小次数(每秒最小调用量)、tps平均次数(每秒平均调用量)、tps最大次数的持续时长(第一持续时长)、调用次数占比等统计数据又可称为第一调用信息。依据第三访问请求统计出的tps最大次数、tps最小次数、tps平均次数、tps最大次数的持续时长(第二持续时长)、调用次数占比等统计数据又可称为第二调用信息。
90.如表3所示,该访问接口在5秒内,每秒被第一种应用场景调用1624次,该1624次是该访问接口每秒被第一种应用场景调用的最大次数。该访问接口在10秒内,每秒均被第二种应用场景调用2014次,该2014次是该访问接口每秒被第二种应用场景调用的最大次数。该访问接口在3秒内,每秒均被第三种应用场景调用1145次,该1145次是该访问接口每秒被第三种应用场景调用的最大次数。
91.如表3所示,关键参数为alipay时,对应的调用次数占比(第一种应用场景对应的调用次数与该访问接口的总调用次数之间的占比)为35%。关键参数为wxpay时,对应的调用次数占比(第二种应用场景对应的调用次数与该访问接口的总调用次数之间的占比)为45%。关键参数为unionpay时,对应的调用次数占比(第三种应用场景对应的调用次数与该访问接口的总调用次数之间的占比)为20%。
92.另外,除了表3所展示的调用相关信息1之后,访问接口对应的调用相关信息1还可以包括单个时间点采用单种应用场景调用访问接口c的调用次数。
93.在一些实施例中,对于第二类访问请求,如,第一流量数据中的第四访问请求,该第四访问请求用于调用第二访问接口。电子设备可以将针对同一访问接口的所有访问请求,按照请求时间点,进行统计。也即,统计每一个请求时间点上,调用同一访问接口的访问请求的数量,得到接口流量表b,如下表4所示:表4然后,依据调用同一访问接口的访问请求的数量(如表4),统计该访问接口对应的调用相关信息1,依据第四访问请求统计出的调用相关信息1又可称为第三调用信息,第三调用信息包括tps最大次数(每秒最大调用量)、tps最小次数(每秒最小调用量)、tps平均次
数(每秒平均调用量)、tps最大次数的持续时长(第三持续时长)。如下表5所示:表5如表5所示,上述接口path为“/cashier/map/pay.htm”、接口method为“post”的访问接口对应的调用次数占比(该访问接口的调用次数与所有访问接口的总调用次数之间的占比)为35%。上述接口path为“/cashier/web/pay.htm”、接口method为“post”的访问接口对应的调用次数占比(该访问接口的调用次数与所有访问接口的总调用次数之间的占比)为55%。上述接口path为“/cashier/mhindexloadandroid.htm”、接口method为“post”的访问接口对应的调用次数占比(该访问接口的调用次数与所有访问接口的总调用次数之间的占比)为10%。
94.在一些可能的实施例中,对于第一类访问请求,也可以先按照统计第二类访问请求的方式,得到访问接口维度的调用相关信息1(类似于表5),然后,再按照关键参数的不同,进一步细分该访问接口对应的调用相关信息1(类似于表3)。
95.s103,电子设备依据上述调用相关信息1、测试员配置的预测增幅比例值及冗余参数,创建压测模型。
96.在一些实施例中,上述预测增幅比例参数和冗余参数均可以由测试员进行配置,可以为经验值。上述预测增幅比例参数可用于对各个访问接口的调用相关信息1进行调整,得到各个访问接口对应的调用相关信息2。例如,预测增幅比例参数为10%,那么在调用相关信息1指示的调整次数(tps最大次数、tps最小次数、tps平均次数)基础上,增加10%的值。上述冗余参数也可用于对各访问接口的调用相关信息1进行调整。在表5所示的调用相关信息1的基础上,调整后得到的调用相关信息2如表6所示:表6
再例如,在调用相关信息1指示的调整次数(tps最大次数、tps最小次数、tps平均次数)基础上,增加冗余参数。
97.在各访问接口对应的调用相关信息1经过预设增幅比例值和冗余参数的处理后,电子设备可以创建对应的接口压测模型,也即,上述压测模型。该接口压测模型可以是具有查询功能的集合。该集合中包括各个访问接口对应的调用相关信息2。
98.在另一些实施例中,电子设备还可以利用预测增幅比例参数和冗余参数,处理单个时间点上各访问接口对应的调用次数,得到对应的调用次数2。这样,创建接口压测模型时,还可以将调用列表整合到上述集合中。其中,上述调用列表可以指示各个访问接口在请求时间点上与调用次数2之间的对应关系。
99.这样,电子设备可以依据接口压测模型,模拟针对各个访问接口的访问请求,所模拟的访问请求数量、变化情况均符合接口压测模型中可查询到的调用相关信息。示例性地,针对第一类访问接口,电子设备利用接口压测模型,可以模拟不同应用场景下,向每个第一类访问接口发送的访问请求。又示例性地,针对第二类访问接口,电子设备利用接口压测模型,可以模拟针对不同的第二类访问接口的访问请求。
100.当然,在一些实施例中,除了接口压测模型之后,压测模型还可以包括业务压测模型。该业务压测模型可以从业务维度,模拟针对程序产品的流量。
101.作为一种实现方式,如图7所示,上述方法还包括:s201,电子设备获取业务匹配表,该业务匹配表包括不同业务类型与访问接口之间的对应关系。
102.其中,上述业务类型是指程序产品(如,购物应用b)可提供的业务类型,如,可以是提交订单、取消订单、请求支付、浏览商品等业务。每一个业务类型可以对应有至少一个访问接口。可以理解地,用户终端向服务器请求应用服务1提供的任意业务时,均需要调用该应用服务1的至少一个访问接口。另外,上述至少一个访问接口中包括至少一个与该业务类型唯一对应的访问接口(又称为唯一接口)。其中,唯一对应的访问接口被调用时,指示用户终端请求的业务必然属于该业务类型。同时,不同业务类型对应的访问接口(或者说覆盖的访问请求)中可以存在相同的访问接口。
103.示例性地,上述业务匹配表可以由测试员进行配置,例如,下表7所示:表7其中,interface1用于指代一个访问接口,interface2、 interface3 、interface4、interface5指代与interface1不同的访问接口。用户终端请求实现“提交订单”这项业务时,需要调用interface1、interface2、 interface3 、interface4等访问接口。其中,interface3是与“提交订单”的唯一接口,在业务匹配表(如,表6)中,interface3
对应有指示与“提交订单”唯一对应的标识。用户终端请求实现“请求支付”这项业务时,需要调用interface2、 interface5、interface4等访问接口。其中,interface5是
ꢀ“
请求支付”的唯一接口。interface5对应有指示与“请求支付”唯一对应的标识。
104.s202,电子设备根据业务匹配表和接口压测模型,建立业务压测模型。
105.在一些实施例中,电子设备通过业务匹配表确定各业务类型对应的唯一接口,然后,通过接口压测模型查询唯一接口对应的调用相关信息2,以及唯一接口在各个请求时间点上的调用次数2。最后,根据查询到的数据(调用相关信息2和调用次数2)创建业务压测模型。给业务压测模型也是一个具有查询功能的集合。该集合中包括各业务类型对应的业务并发信息。该业务并发信息包括每秒最大业务量、每秒最小业务量、每秒平均业务量、每秒最大业务持续时间、并发数量峰值、业务占比等。
106.例如,“提交订单”业务的唯一接口(也即,interface3)对应的接口path是/cashier/map/pay.htm,对应的接口method是post,那么结合表6,可以得到“提交订单”对应的业务并发信息,如表8所示:表8可以理解的,表8中,在时间区间1内,
ꢀ“
提交订单”的业务数量与唯一接口的调用总数量相同。因此,“提交订单”的业务并发信息与唯一接口的调用相关信息2是多在对应关系的。例如,“提交订单”的每秒最大业务量与调用相关信息2中的tps最大次数的值相同,“提交订单”的每秒最小业务量与调用相关信息2中的tps最小次数的值相同等。
107.另外,确定各个业务类型对应的业务数量之后,电子设备可以所有业务类型的总业务数量。电子设备根据“提交订单”的业务数量和所有业务类型对应的总业务数量,可以得到“提交订单”对应的业务占比。
108.再如,“请求支付”业务的唯一接口(也即,interface5)对应的接口path是“/cashier/web/pc_pay.htm”,对应的接口method是post,对应的关键参数为channel_code,那么电子设备根据interface5对应的调用相关信息2,可以获取采用不同支付渠道(也即,调用interface5时访问请求中携带不同channel_code值)所对应的业务并发信息。如,采用第一种支付方式,对应的每秒最大业务量、每秒最小业务量、每秒平均业务量、每秒最大业务持续时间、并发数量峰值及业务占比等。再如,采用第二种支付方式,对应的每秒最大业务量、每秒最小业务量、每秒平均业务量、每秒最大业务持续时间、并发数量峰值及业务占比等。再如,采用第三种支付方式,对应的每秒最大业务量、每秒最小业务量、每秒平均业务量、每秒最大业务持续时间、并发数量峰值及业务占比等。
109.再例如,第二访问接口是第一业务的唯一接口时,根据第三调用信息,可以确定针对第一业务的业务压测模型。
110.在一些实施例中,上述方法可以由电子设备中的软件模块执行。示例性地,图8是
电子设备的软件结构示意图。如图8所示,电子设备包括应用层、业务层以及流量采集层。
111.其中,应用层用于与测试员进行人机交互。上述应用层用包括压测管理模块、业务预测数据管理模块、冗余系数管理模块及采集管理模块。
112.示例性地,上述压测管理模块,用于响应测试员的操作,触发压测模型的创建。上述压测管理模块,还用于响应测试员的操作,查找已创建的压测模型。另外,同一程序产品可以对应有多个压测模型,不同压测模型可用于模拟不同特定场景下针对压测模型的访问请求。
113.又示例性地,上述业务预测数据管理模块,用于配置预测增幅比例值,该预测增幅比例值可用于创建测压模型的过程中,具体在后续实施例中描述,在此暂不赘述。上述冗余系数管理模块,用于配置冗余参数,该冗余参数也可用于创建测压模型的过程中,具体在后续实施例中描述,在此暂不赘述。
114.再示例性地,上述采集管理模块,用于接收测试员指示录制流量的操作,并响应于该操作,通过流量采集层,指示服务器中的流量录制引擎启动流量录制。
115.上述流量采集层包括:流量预处理模块以及流量采集模块。
116.其中,上述流量采集模块,用于接收来自采集管理模块的采集指令。可以理解地,上述采集指令可以是采集管理模块响应于测试员指示录制流量的操作而生成的指令。示例性地,在测试员指示录制购物应用b在商品首销期间的流量时,采集管理模块向流量采集模块发送采集指令1,该采集指令1中包括购物应用b的标识和指定的录制时间。上述指定的录制时间可以是商品首销的起止时间,另外,商品首销的起止时间可以预先配置。也就是,在确定需要录制商品首销期间的流量的情况,可以直接查询到对应的录制时间。
117.在一些实施例中,流量采集模块,还用于依据采集指令1,指示流量录制引擎录制购物应用b在录制时间中接收到的访问请求,并反馈。在另一些实施例中,流量采集模块,还用于依据采集指令1,通过流量录制引擎查询购物应用b在录制时间中接收到的访问请求。
118.这样,电子设备的流量采集模块可以获取到录制的流量数据。
119.上述流量预处理模块,用于预处理电子设备获取到的流量,也即,流量录制引擎发送给流量采集模块的录制流量。示例性地,处理录制流量的方式可以包括流量清洗和流量聚合。
120.在一些实施例中,经过预处理的流量可以传递给电子设备中的业务层。该业务层包括:接口分析模块、业务分析模块等。其中,上述接口分析模块,用于统计分析预处理后的流量数据,并根据统计分析结果(也即,上述调用相关信息1),创建接口压测模块。接口分析模块统计分析流量数据的过程,可参考前述s102,在此不再赘述。上述业务分析模块,用于依据接口分析模块输出的统计分析结果,创建业务压测模型。可理解地,上述业务压测模型也属于压测模型。与接口压测模型不同的是,该业务压测模型可以从业务维度对程序产品进行压力测试。同样,创建业务压测模型的过程如上述s201和s202所示,在此不再赘述。
121.总之,电子设备在获取到流量数据后,可以通过多个软件层之间的配合,实现压测模型的创建。
122.作为一种实现方式,如图9所示,流量采集模块获取录制的流量数据。流量采集模块将获得的流量数据发送给流量预处理模块。该流量预处理模块预处理流量数据。在流量数据经过预处理之后,接口分析模块解析流量数据中的访问请求。每解析一条访问请求,接
口分析模块判断所解析的访问请求是否与接口关键参数表匹配。示例性地,访问请求中的接口path、接口method与接口关键参数表中任意一个列表项的接口path、接口method相同时,确定该访问请求与接口关键参数表匹配。反之,则不匹配。
123.在确定访问请求与接口关键参数表匹配时,接口分析模块继续解析访问请求的信息体,获取该访问请求中关键参数的取值。接口分析模块依据访问请求的关键参数、接口path、接口method和请求时间点,更新接口流量表a(如表2)。示例性地,如果接口分析模块确定该访问请求与接口流量表a中任意表项匹配,那么将该表项对应的数量加1。其中,匹配的表项中接口path、接口method、关键参数的取值、请求时间点与该访问请求中携带的相同。当然,如果接口分析模块确定该访问请求与接口流量表a中任意表项均不匹配,那么新建与该访问请求匹配的表项,并将该表项对应的数量置为1。接口分析模块根据接口流量表a,得到调用相关信息1,具体实现过程可参考上述s102,在此不再赘述。
124.在确定访问请求与接口关键参数表不匹配时,接口分析模块依据访问请求的接口path、接口method、请求时间点更新接口流量表b(如表4)。示例性地,如果接口分析模块确定该访问请求与接口流量表b中任意表项匹配,那么将该表项对应的数量加一。其中,匹配的表项中接口path、接口method、请求时间点与该访问请求中携带的相同。当然,如果接口分析模块确定该访问请求与接口流量表a中任意表项均不匹配,那么新建与该访问请求匹配的表项,并将该表项对应的数量置为1。接口分析模块根据接口流量表b,也可得到调用相关信息1,具体实现过程可参考上述s102,在此不再赘述。
125.最后,在流量数据均解析完毕之后,接口分析模块可以根据调用相关信息1,创建接口压测模型。
126.另外,如图10所示,在得到接口流量表a和接口流量表b之后,业务分析模块根据各业务对应的唯一接口,进行业务聚合,得到各业务对应的业务并发信息。最后,业务分析模块根据得到的业务并发信息,创建业务压测模型。
127.本技术实施例还提供一种电子设备,该电子设备可以包括:存储器和一个或多个处理器。该存储器和处理器耦合。该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令。当处理器执行计算机指令时,可使得电子设备执行上述实施例中手机执行的各个步骤。当然,该电子设备包括但不限于上述存储器和一个或多个处理器。
128.本技术实施例还提供一种芯片系统,该芯片系统可以应用于前述实施例中的终端设备。如图11所示,该芯片系统包括至少一个处理器2201和至少一个接口电路2202。该处理器2201可以是上述电子设备中的处理器。处理器2201和接口电路2202可通过线路互联。该处理器2201可以通过接口电路2202从上述电子设备的存储器接收并执行计算机指令。当计算机指令被处理器2201执行时,可使得电子设备执行上述实施例中手机执行的各个步骤。当然,该芯片系统还可以包含其他分立器件,本技术实施例对此不作具体限定。
129.在一些实施例中,通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
130.在本技术实施例各个实施例中的各功能单元可以集成在一个处理单元中,也可以
是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
131.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
132.以上所述,仅为本技术实施例的具体实施方式,但本技术实施例的保护范围并不局限于此,任何在本技术实施例揭露的技术范围内的变化或替换,都应涵盖在本技术实施例的保护范围之内。因此,本技术实施例的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1