一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

性能测试方法、装置、电子设备及可读存储介质与流程

2023-02-04 15:30:56 来源:中国专利 TAG:


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.通过预设请求构造工具基于每条日志文件对应的关键信息生成文件传输curl命令;
26.基于所述curl命令向所述负载均衡设备发送测试请求。
27.结合第一方面,在第一方面的第六种实施方式中,所述基于所述负载均衡设备在处理所述测试请求时的运行状态,确定所述负载均衡设备的性能,包括:
28.在所述负载均衡设备处理各日志文件分别对应的测试请求后,获取所述负载均衡设备的运行状态信息;
29.基于所述运行状态信息确定所述负载均衡设备在处理所述测试请求时的运行状态;
30.若所述负载均衡设备运行状态为异常,则确定性能未达标;
31.若所述负载均衡设备运行状态为正常,则确定性能达标。
32.结合第一方面的第六种实施方式,在第一方面的第七种实施方式中,所述运行状态信息包括状态文件和内核转储文件中的至少一种;所述状态文件用于记录所述负载均衡设备运行状态为正常时的信息;所述内核转储文件用于记录所述负载均衡设备运行状态为异常时的信息;
33.所述基于所述运行状态信息确定所述负载均衡设备在处理所述测试请求时的运行状态,包括:
34.基于所述运行状态信息是否包括内核转储文件确定所述负载均衡设备在处理所述测试请求时的运行状态;若所述运行状态信息未包括内核转储文件,确定所述负载均衡设备运行状态为正常;若所述运行状态信息包括内核转储文件,确定所述负载均衡设备运行状态为异常;
35.和/或,基于所述状态文件的文件数量与所述测试请求的请求数量的比值,确定所述负载均衡设备在处理所述测试请求时的运行状态;若所述比值大于或等于预设比值,确定所述负载均衡设备运行状态为正常;若所述比值小于预设比值,确定所述负载均衡设备运行状态为异常;
36.和/或,基于所述状态文件和内核转储文件分别对应的权重系数及在所述运行状态信息中的文件数量占比,确定所述负载均衡设备在处理所述测试请求时对应的达标值;若所述达标值小于预设达标阈值,确定所述负载均衡设备运行状态为异常;若所述达标值大于或等于预设达标阈值,确定所述负载均衡设备运行状态为正常。
37.第二方面,提供了一种性能测试装置,包括:
38.日志获取模块,用于获取日志文件;所述日志文件包括负载均衡设备运行时的日
志数据;
39.日志解析模块,用于解析所述日志文件,得到与用户请求相关的关键信息;
40.请求发送模块,用于基于所述关键信息向所述负载均衡设备发送测试请求;
41.性能确定模块,用于基于所述负载均衡设备在处理所述测试请求时的运行状态,确定所述负载均衡设备的性能。
42.第三方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现本技术第一方面所示的性能测试方法。
43.第四方面,提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现本技术第一方面所示的性能测试方法。
44.本技术提供的技术方案带来的有益效果是:
45.本技术在获取日志文件后,解析该日志文件进而在获得与用户请求相关的关键信息后,基于关键信息向负载均衡设备发送测试请求,进而基于负载均衡设备处理测试请求时的运行状态,确定该负载均衡设备的性能;其中,日志文件包括负载均衡设备运行时的日志数据,也即本技术可以通过解析负载均衡设备的日志文件来模拟线上流量完成对负载均衡设备的线下性能测试,可以有效降低线下的测试环境与负载均衡设备实际应用所处线上的运行环境所存在的差异,提高线下测试所得结果的准确度,降低测试成本并提高测试效率。
46.本技术附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本技术的实践了解到。
附图说明
47.本技术上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
48.图1为相关技术中采用交换机端口镜像流量的方案示意图;
49.图2为本技术实施例提供的一种性能测试方法的流程示意图;
50.图3为本技术实施例提供的一种性能测试方案的示意图;
51.图4为本技术实施例提供的一种性能测试方案的示意图;
52.图5为本技术实施例提供的一种性能测试装置的结构示意图;
53.图6为本技术实施例提供的一种性能测试的电子设备的结构示意图。
具体实施方式
54.下面详细描述本技术的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本技术,而不能解释为对本技术的限制。
55.本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本技术的说明书中使用的措辞“包括”是指存在特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间
元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
56.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
57.下面对本技术涉及到的技术、名词等进行说明。
58.负载均衡设备:是对多台后端服务器进行流量分发的网络服务设备。在基于服务器集群实现的应用系统中,可以通过流量分发,快速提高应用系统对外服务的能力。另,负载均衡设备也被称为“四到七层交换机”,其中,四层负载均衡主要通过报文中的目标地址和端口,结合负载均衡设备的服务器选择方式,决定最终选择的内部服务器;七层负载均衡主要通过报文中应用层内容,结合负载均衡设备设置的服务器的选择方式,决定最终选择的内部服务器。也即,七层负载均衡工作在osi模型(open system interconnection reference model,开放式系统互联通信参考模型)的应用层,是基于虚拟的url(uniform resource locator,统一资源定位符)或主机ip(internet protocol,网际互联协议)的负载均衡。
59.线上流量:即真实流量。由于预发布环境需要真实流量做功能的回归与验证,对于一些可用性和业务容错性要求较高的应用,可以采用真实流量进行测试。
60.https(hyper text transfer protocol over securesocket layer),是以安全为目标的http通道,在http的基础上通过传输加密和身份认证保证传输过程的安全性。
61.在负载均衡设备的性能测试中,由于线上用户访问行为较为复杂,线下模拟很难保持与用户行为一致,导致线下模拟不够真实,且线下模拟场景有限,可能会出现业务覆盖不全的情况,因此线上流量对负载均衡设备应用程序测试是一项重要的内容,但是线下的测试环境很难完全模拟线上的运行环境。在相关技术中,为了能够真实地进行测试,提供了一种采用交换机端口镜像流量的方案,其通过在镜像交换机上设置流量控制策略,将线上网关的流量拷贝到测试网关节点上,以实现四层线上流量复制。
62.然而,如图1所示,如果同样采用交换机端口镜像流量的方案,对七层负载均衡进行线上流量复制,由于大部分流量都使用了https协议,而https协议需要服务器和客户端个产生一个随机数(密钥),这就会出现测试环境与线上环境的服务器密钥不一致的情况,因此https流量实际无法与测试环境的负载均衡设备建联,导致该方案无法适用于七层负载均衡的线上流量复制。
63.针对现有技术中所存在的上述至少一个技术问题或者需要改善的地方,本技术提出一种性能测试方法,该方法通过自动解析负载均衡设备的线上日志来模拟线上流量完成对负载均衡设备的性能测试。本技术提供的方案可以理解为是对交换机端口镜像方法无法实现https流量建联的补充。本技术技术方案的实施只需要提供负载均衡设备的线上日志,即可实现批量流量复制,在遍历负载均衡设备的日志文件后(如在测试环境中跑线上运行时的日志数据所记录的行为数据),通过检查负载均衡设备是否出现异常来确定性能测试的结果,该技术方案有利于降低测试成本,提高测试效率,节约测试时间。
64.本技术实施例提供的方案涉及设备性能测试技术,具体通过如下实施例进行说明。
65.下面以具体地实施例对本技术的技术方案以及本技术的技术方案如何解决上述
技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本技术的实施例进行描述。
66.本技术领域技术人员可以理解,这里所使用的“终端”可以是手机、平板电脑、pda(personal digital assistant,个人数字助理)、mid(mobile internet device,移动互联网设备)等;“服务器”可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
67.本技术实施例中提供了一种可能的实现方式,如图2所示,提供了一种性能测试方法,可以包括以下步骤s101-s104:
68.步骤s101:获取日志文件;日志文件包括负载均衡设备运行时的日志数据。
69.具体地,可以从处于线上的运行环境的负载设备中获取日志文件(log文件),也可以从用于存储负载均衡设备的日志服务器log sever中获取;其中,线上的运行环境可以是负载均衡设备在应用系统实际应用时所处的环境。而本技术实施例可以执行应用于线下的测试环境,也即对负载均衡设备进行性能测试时所处的环境。
70.其中,步骤s101所获取的日志文件包括多条,每一日志文件包括负载均衡设备在线上环境中处理某一请求时对应的日志数据。其中,log sever可以支持跟踪日志、分页查看、下载文件等功能,因此,本技术实施例可以通过log sever获取负载均衡设备的日志文件。其中,如图4所示,log sever可以构成日志系统的一部分。
71.在本技术实施例中,执行的主程序在日志系统中获取case运行时相关的log文件,log文件也即日志文件,其记录了提供服务的系统与用户之间交互的信息。日志文件可以包括操作对象的某些操作和其操作结果按时间排序的集合数据;如,针对网络搜索而言,日志文件可以记录是利用网络搜索引擎搜索信息的用户在搜索信息期间与该网络搜索引擎发生互动的过程(记录的内容可以包括但不限于用户信息、提供服务的时间、服务出错的信息)。
72.步骤s102:解析日志文件,得到与用户请求相关的关键信息。
73.具体地,解析日志文件可以是指针对步骤s101中获取到的日志文件进行解析处理,如采用正则的方式,解析原始日志格式,使日志数据结构化。如在解析的过程中,可以根据ip字段解析出对应的地址位置、经纬度等信息;在本技术中,可以通过解析日志文件获取到与用户请求相关的关键信息。
74.步骤s103:基于关键信息向负载均衡设备发送测试请求。
75.具体地,基于关键信息向负载均衡设备发送测试请求时,可以是基于关键信息通过请求工具构造http/https请求,并将构造所得的请求视为测试用的请求,向测试环境中的负载均衡设备发送。可以理解的是,该过程在模拟日志文件中记录的与线上用户访问行为相关的请求,并将模拟所得的测试请求向测试环境中的负载均衡设备发送,以查看处于测试环境中的负载均衡设备处理该测试请求时应用程序的运行情况。
76.步骤s104:基于负载均衡设备在处理测试请求时的运行状态,确定负载均衡设备的性能。
77.具体地,本技术实施例可以通过负载均衡设备处理测试请求后,检查负载均衡设备,如果检查发现负载均衡设备在处理测试请求时发生了崩溃、卡顿等问题运行状态为异常的问题时,可以确定负载均衡设备未通过当前的性能测试,也即负载均衡设备的性能不达标;如果检查发现负载均衡设备在处理测试请求时运行状态为正常,则可以确定负载均
衡设备通过当前的性能测试,也即负载均衡设备的性能达标。
78.本技术实施例提供的性能测试方法可以应用于线下的测试环境中,通过自动解析负载均衡设备的日志文件(运行时的日志数据)来模拟线上流量完成对负载均衡设备的性能测试,该方法的实施降低了线下的测试环境与线上的运行环境之间的差异,有利于提高测试的准确度,降低测试成本,提高测试效率。
79.下面针对本技术中遍历所有日志文件的具体处理过程进行说明。
80.在一实施例中,如图3所示,步骤s102至步骤s103所执行的内容为遍历日志文件;具体地,步骤s102中解析日志文件,得到与用户请求相关的关键信息,包括以下步骤a1-a2:
81.步骤a1:针对每一日志文件,获取与预设日志模板中日志属性对应的日志信息。
82.具体地,可以理解的是,获取回来的日志文件可以以非结构化的数据格式存在,本技术可以通过预设日志模板对日志文件进行格式化处理,也即将非结构化的日志数据转换为结构化的日志数据。其中,预设日志模板可以是针对应用需求自定义设置的,在本技术实施例中,考虑到需要模拟线上的用户请求构造测试请求,因此,可以根据构造测试请求所需的信息对应的日志属性预先设置所采用的日志模板。其中,日志属性可以包括ip地址、时间、用户名、域名、请求协议、用户代理等信息。
83.可选地,预设日志模板中还可以包括自定义设置的日志格式(如各类日志分析工具所采用的格式)、在屏幕上显示的格式(如以表格、或罗列的形式在屏幕上显示日志信息)、日志等级(如致命错误fatal、一般错误error、警告warn、一般信息info、调试信息debug等几个等级)等信息。下面结合表1针对所获取的与预设日志模板中日志属性对应的日志信息进行举例说明:
84.假设当前获取的某一条日志文件a(对应表1中序号为1的日志信息)为:jan 1812:09:07shgh01-cp-netproxy124102.shgh01.ksyun.com tengine:2021-01-18t12:09:07 08:00218.28.204.55:48108120.92.172.246:443172.18.1.11:91000.0490.049200200321156"posthttps://ipay.cloudwalk.cn/restaurant/api/order/initialorder http/1.1""-""okhttp/3.10.0"。
85.表1
86.87.具体地,表1中首行的项目对应为预设日志模板中的各项日志属性;其中,首行最后一列中“......”表示在同一预设日志模板中还可以针对需求设置其他的日志属性。其中,序号为1所在行对应的日志信息为从上述日志文件a中获取的日志信息。其中,序号为n可以表示当前获取的日志文件共有n条,所在行“xxx”表示在对应日志文件n中获取的日志信息。
88.步骤a2:对每一日志信息进行筛选,得到与用户请求相关的关键信息。
89.具体地,与用户请求相关的关键信息可以基于构造测试请求所需的参数设定。其中,关键信息可以包括以下至少一项:请求长度、http请求方法、请求协议(如http/https)、请求头host字段、统一资源标识符(uniform resource identifier,uri)、用户代理信息(user_agent信息)。
90.假设构造测试请求时使用到日志属性中请求长度、http请求方法、协议、请求的url、host和uri以及用户代理信息时,直接在每一日志信息中获取对应的信息。结合上述表1所示的例子,针对序号1对应的日志信息,执行步骤a2可以得到如下关键信息:
91.请求长度:321;
92.http请求方法:post;
93.协议:https:
94.请求的url、host和uri:
95.ipay.cloudwalk.cn/restaurant/api/order/initialorder;
96.用户代理信息:okhttp/3.10.0。
97.在一实施例中,在解析日志文件后,可以获得各日志文件对应的配置文件(上述实施例中所述的日志信息、关键信息等可以存储在配置文件中);可选地,如图4所示,本技术实施例中,可以是在获取到线上log文件后,以每一行log作为一条日志文件,并针对该条日志文件进行解析。
98.在一实施例中,如图4所示,为进一步提高测试的效率,同时避免因为日志文件中的日志信息所记录信息出错导致性能测试结果出现偏差,在步骤a2对每一日志信息进行筛选,得到与用户请求相关的关键信息之前,还针对每一日志文件中的日志信息进行合法性检查,具体地还包括步骤a3-a4:
99.步骤a3:对日志文件中的日志信息进行合法性检查。
100.步骤a4:删除未通过合法性检查的日志文件。
101.具体地,在获取到每一条日志文件对应的日志信息后,对该条日志文件中的日志信息进行合法性检查,且仅在该条日志文件通过合法性检查时,执行后续的步骤;否则删除该条日志文件,并对下一条日志文件中的日志信息进行合法性检查。
102.在一可行的实施例中,步骤a3中对日志文件中的日志信息进行合法性检查,包括以下步骤a31-a33:
103.步骤a31:基于预设的异常标签对日志文件中的日志信息进行合法性检查;
104.步骤a32:若确定日志文件中的日志信息携带有与预设的异常标签相应的信息,则确定该日志文件未通过合法性检查;
105.步骤a33:若确定日志文件中的日志信息未携带与预设的异常标签相应的信息,则确定该日志文件通过合法性检查。
106.具体地,可以设定多个异常标签,进而基于异常标签对日志信息进行检查(如可以通过监督学习的算法模型实现)。其中,异常标签可以针对日志属性或预设日志模板中包括的信息设定,举例说明:由于不同的日志文件可能对应于不同的日志等级,适应本技术实施例可以设定仅采用日志等级为一般信息info所对应的日志文件进行线上流量的模拟,因此可以针对日志等级设定异常标签,如设定异常标签1对应于致命错误fatal的日志等级、异常标签2对应于一般错误error的日志等级、异常标签3对应于警告warn的日志等级、异常标签4对应于调试信息debug的日志等级;在进行合法性检查时,将日志文件中日志属性为日志等级的日志信息与设定的各异常标签进行比对,若该日志信息与任一异常标签相应,则确定该日志文件未通过合法性检查;若该日志信息与任何异常标签都不相应,则确定该日志文件通过合法性检查。
107.可选地,本技术实施例基于步骤a31进行合法性检查时还可以输出检查结果,如在确定日志文件中的日志信息携带有与预设的异常标签相应的信息时,输出与至少一个异常标签相应的日志信息;如在确定日志文件中的日志信息未携带与预设的异常标签相应的信息时,输出为空null的检查结果。在此基础上,进行是否通过合法性检查的判断时,还可以基于检查结果是否为空null进行;如检查结果为空null,则确定相应的日志文件通过合法性检查;如检查结果不为空null,则确定相应的日志文件未通过合法性检查。
108.在一可行的实施例中,步骤a3中对日志文件中的日志信息进行合法性检查,包括以下步骤a34-a36:
109.步骤a34:预估日志文件中的日志信息包括异常信息的异常概率;
110.步骤a35:若所述异常概率大于预设概率,确定该日志文件未通过合法性检查;
111.步骤a36:若所述异常概率小于或等于预设概率,确定该日志文件通过合法性检查。
112.具体地,异常信息可以包括预设的关键词、变量异常信息、分布异常信息中的至少一种。其中,预设的关键词可以表征需求中希望排除的日志文件,如希望排除状态码为202所对应的日志文件时,可以设定关键词为202。其中,日志信息是日志文件中的变量,因此,变量异常信息可以是指所表征信息出现异常的日志信息;如针对日志属性“协议”而言,某一日志文件中协议所对应的日志信息为空null时,则可以确定该日志信息为变量异常信息。其中,分布异常信息可以是指与日志属性不匹配的日志信息;如日志属性为“http请求方法”时,某一日志文件中的日志信息为“https”,则可以确定该日志信息为分布异常信息。
113.可选地,可以通过机器学习算法对日志文件中的日志信息包括异常信息的异常概率进行预估,如可以通过聚类、pca(principal component analysis,主成分分析)等的算法模型实现,输出每条日志文件对应的异常概率,并在异常概率大于预设概率的情况下,确定对应的日志文件未通过合法性检查;在异常概率小于或等于预设概率的情况下,确定对应的日志文件通过合法性检查。
114.可选地,还可以针对各项异常信息设置权重系数,基于日志文件的日志信息中包括异常信息的维度和各项异常信息分别对应的权重系数计算异常概率。举例说明:假设预设概率为0.3且设定预设的关键词对应的权重系数为0.5,变量异常信息对应的权重系数为0.3,分布异常信息对应的权重系数为0.2;其中某一条日志文件的日志信息中,包括3个预设关键词、一条变量异常信息、无分布异常信息时,其对应的异常概率为:0.45(0.5*3 0.3*
1 0.2*0);则可以确定异常概率大于预设概率,该条日志文件未通过合法性检查。
115.可选地,合法性检查还可以通过过滤器filter实现,在进行关键信息的筛选之前,通过过滤器滤掉与需求不相关的日志信息,以进一步提高性能测试的效率。如可以是等级过滤器(也成级别过滤器),对符合过滤等级的日志文件进行删除,对不符合过滤等级的日志文件进行保留。
116.下面针对基于关键信息向负载均衡设备发送测试请求的具体过程进行说明。
117.在一实施例中,步骤s103中基于关键信息向负载均衡设备发送测试请求,包括步骤b1-b2:
118.步骤b1:通过预设请求构造工具基于每条日志文件对应的关键信息生成文件传输curl命令。
119.步骤b2:基于curl命令向负载均衡设备发送测试请求。
120.具体地,预设请求构造工具可以是curl等工具,通过该工具基于关键信息生成curl命令和请求(如构造的报文);如图4所示,可以基于筛选得到的关键信息,生成curl(全称commandline url或commandline uniform resource locator)命令;其中,curl命令是在命令行方式下工作,利用url的语法进行数据的传输或者文件的传输。可选地,在构建测试请求时,还可以结合负载均衡设备监听的服务端口号port、虚拟ip地址(virtual_ip,vip)等进行。
121.举例说明:基于上述日志文件a对应的关键信息,可以使用curl工具,结合负载均衡设备监听的ip地址(如10.111.76.129)和端口(如8080)构造报文:
122.curl-x post
‑‑
url"https://10.111.76.129:8080/ipay.cloudwalk.cn/restaurant/api/order/initialorder"
‑‑
user-agent"okhttp/3.10.0"
‑‑
data

*******.....******

*
123.其中,报文长度为321,报文长度携带的数据用“*”代替,也即进行了脱敏处理。
124.可选地,使用curl命令发送测试请求可以是http的post请求(用于提交数据)。
125.下面对本技术中基于负载均衡设备在处理测试请求时的运行状态确定负载均衡设备的性能的具体处理过程进行说明。
126.在一实施例中,如图3所示,步骤s104所执行的内容为检查设备;具体地,步骤s104中基于负载均衡设备在处理测试请求时的运行状态,确定负载均衡设备的性能,包括以下步骤c1-c4:
127.步骤c1:在负载均衡设备处理各日志文件分别对应的测试请求后,获取负载均衡设备的运行状态信息。
128.其中,运行状态信息包括状态文件和内核转储文件中的至少一种。状态文件用于记录负载均衡设备运行状态为正常时的信息;内核转储文件用于记录负载均衡设备运行状态为异常时的信息。
129.具体地,在本技术实施例中,当负载均衡设备出现卡死等运行状态为异常的问题时,可以主动丢弃运行状态为异常的线程,并生成内核转储coredump文件;如果在获取负载均衡设备的运行状态信息时,发现了相应的coredump文件,可以通过分析该coredump文件,查看负载均衡设备出现异常的情况。可选地,在coredump文件中,记录有线程的运行状态,可以是通过设定标签对不同的运行状态进行标识。若在coredump文件中查询到设定对应于
运行状态为异常的标签时,也即运行状态信息表征负载均衡设备运行状态为异常;若在coredump文件中未发现对应于运行状态为异常状态的标签时,也即运行状态表征负载均衡设备运行状态为正常。
130.具体地,状态文件可以为预设数值大小的文件,如为0k的文件,该状态文件的生成表征负载均衡设备在处理某一测试请求时的运行状态为正常。
131.步骤c2:基于运行状态信息确定负载均衡设备在处理测试请求时的运行状态。
132.步骤c3:若负载均衡设备运行状态为异常,则确定性能未达标(未通过测试)。
133.步骤c4:若负载均衡设备运行状态为正常,则确定性能达标(通过测试)。
134.具体地,本技术实施例可以在负载均衡设备处理完所有测试请求后,最终确定负载均衡设备的性能测试结果;也即在遍历所有日志文件结束后,确定负载均衡设备的性能测试结果。也可以在负载均衡设备每处理完一个或设定数值的多个测试请求后,同步获取运行状态信息,并确定负载均衡设备的性能测试结果,并在确定负载均衡设备未通过性能测试的同时停止遍历后续的日志文件,以提高性能测试的效率,降低性能测试的成本。
135.可选地,在步骤c2中基于运行状态信息确定负载均衡设备在处理测试请求时的运行状态,包括以下步骤c21-c23中的至少一项:
136.步骤c21:基于运行状态信息是否包括内核转储文件确定负载均衡设备在处理测试请求时的运行状态;若运行状态信息未包括内核转储文件,确定负载均衡设备运行状态为正常;若运行状态信息包括内核转储文件,确定负载均衡设备运行状态为异常。
137.具体地,在本技术实施例中,内核转储文件仅在负载均衡设备运行状态为异常时生成,当运行状态信息仅包括coredump文件时,也即当获取的运行状态信息为空null时,表征为负载均衡设备运行状态为正常,可以直接确定负载均衡设备的性能达标;当所获取的运行状态信息中包括coredump文件时,表征负载均衡设备运行状态为异常,可以直接确定负载均衡设备的性能未达标。
138.步骤c22:基于状态文件的文件数量与测试请求的请求数量的比值,确定负载均衡设备在处理测试请求时的运行状态;若比值大于或等于预设比值,确定负载均衡设备运行状态为正常;若比值小于预设比值,确定负载均衡设备运行状态为异常。
139.具体地,状态文件的生成可以表征负载均衡设备在处理对应测试请求时运行状态为正常。基于此,在负载均衡设备处理完所有日志文件对应的测试请求后,可以基于状态文件的文件数量与测试请求的请求数量的比值确定负载均衡设备在处理测试请求时最终体现的运行状态。
140.举例说明:假设预设比值为0.76,测试请求的请求数量为10000,状态文件的文件数量为8000时,状态文件的文件数量与测试请求的请求数量比值为0.8(8000/10000),则两者的比值大于预设比值,可以确定负载均衡设备运行正常。
141.步骤c23:基于状态文件和内核转储文件分别对应的权重系数及在运行状态信息中的文件数量占比,确定负载均衡设备在处理测试请求时对应的达标值;若达标值小于预设达标阈值,确定负载均衡设备运行状态为异常;若达标值大于或等于预设达标阈值,确定负载均衡设备运行状态为正常。
142.具体地,文件大小为预设数值的状态文件可以是文件大小为0k的状态文件。可以针对状态文件与coredump文件分别设定相应的权重系数,如状态文件对应的权重系数为
0.3,coredump文件对应的权重系数为0.7;则可以通过状态文件与coredump文件在运行状态信息中的数量占比进行加权和计算,确定出运行状态信息对应的达标值。假设状态文件包括30,coredump文件包括10,则状态文件的数量占比为0.75,coredump文件的数量占比为0.25;此时可计算出运行状态信息所表征负载均衡设备的达标值=0.3*0.75 0.7*0.25=0.4。此时,可以将达标值与预设达标阈值进行比较,若小于预设达标阈值,则运行状态信息表征负载均衡设备运行状态为异常;若大于或等于预设达标阈值,则运行状态表征负载均衡设备运行状态为正常。
143.可选地,还可以直接输出计算所得的达标值,以反馈负载均衡设备当前的性能状态。
144.本技术实施例中提供了一种可能的实现方式,如图5所示,提供了一种性能测试装置500,该性能测试装置500可以包括:日志获取模块501、日志解析模块502、请求发送模块503、性能确定模块504。
145.其中,日志获取模块501,用于获取日志文件;日志文件包括负载均衡设备运行时的日志数据;日志解析模块502,用于解析日志文件,得到与用户请求相关的关键信息;请求发送模块503用于基于关键信息向负载均衡设备发送测试请求;性能确定模块504,用于基于负载均衡设备在处理测试请求时的运行状态,确定负载均衡设备的性能。
146.可选地,日志解析模块502用于执行解析日志文件,得到与用户请求相关的关键信息时,具体用于:
147.针对每一日志文件,获取与预设日志模板中日志属性对应的日志信息;
148.对每一日志信息进行筛选,得到与用户请求相关的关键信息。
149.可选地,日志解析模块502用于执行对每一日志信息进行筛选,得到与用户请求相关的关键信息之前,还用于:
150.对日志文件中的日志信息进行合法性检查;
151.删除未通过合法性检查的日志文件。
152.可选地,日志解析模块502用于执行对日志文件中的日志信息进行合法性检查时,具体用于:
153.基于预设的异常标签对日志文件中的日志信息进行合法性检查;
154.若确定日志文件中的日志信息携带有与预设的异常标签相应的信息,则确定该日志文件未通过合法性检查;
155.若确定日志文件中的日志信息未携带与预设的异常标签相应的信息,则确定该日志文件通过合法性检查。
156.可选地,日志解析模块502用于执行对日志文件中的日志信息进行合法性检查时,具体用于:
157.预估日志文件中的日志信息包括异常信息的异常概率;异常信息包括:预设的关键词、变量异常信息、分布异常信息中的至少一种;
158.若异常概率大于预设概率,确定该日志文件未通过合法性检查;
159.若异常概率小于或等于预设概率,确定该日志文件通过合法性检查。
160.可选地,请求发送模块503用于执行基于关键信息向负载均衡设备发送测试请求时,具体用于:
161.通过预设请求构造工具基于每条日志文件对应的关键信息生成文件传输curl命令;
162.基于curl命令向负载均衡设备发送测试请求。
163.可选地,性能确定模块504用于执行基于负载均衡设备在处理测试请求时的运行状态,确定负载均衡设备的性能时,具体用于:
164.在负载均衡设备处理各日志文件分别对应的测试请求后,获取负载均衡设备的运行状态信息;
165.基于运行状态信息确定负载均衡设备在处理测试请求时的运行状态;
166.若负载均衡设备运行状态为异常,则确定性能未达标;
167.若负载均衡设备运行状态为正常,则确定性能达标。
168.可选地,运行状态信息包括状态文件和内核转储文件中的至少一种;状态文件用于记录负载均衡设备运行状态为正常时的信息;内核转储文件用于记录负载均衡设备运行状态为异常时的信息;其中,性能确定模块用于执行基于运行状态信息确定负载均衡设备在处理测试请求时的运行状态时,具体用于:
169.基于运行状态信息是否包括内核转储文件确定负载均衡设备在处理测试请求时的运行状态;若运行状态信息未包括内核转储文件,确定负载均衡设备运行状态为正常;若运行状态信息包括内核转储文件,确定负载均衡设备运行状态为异常;
170.和/或,基于状态文件的文件数量与测试请求的请求数量的比值,确定负载均衡设备在处理测试请求时的运行状态;若比值大于或等于预设比值,确定负载均衡设备运行状态为正常;若比值小于预设比值,确定负载均衡设备运行状态为异常;
171.和/或,基于状态文件和内核转储文件分别对应的权重系数及在运行状态信息中的文件数量占比,确定负载均衡设备在处理测试请求时对应的达标值;若达标值小于预设达标阈值,确定负载均衡设备运行状态为异常;若达标值大于或等于预设达标阈值,确定负载均衡设备运行状态为正常。
172.本公开实施例的性能测试装置可执行本公开的实施例所提供的一种性能测试方法,其实现原理相类似,本公开各实施例中的性能测试装置中的各模块所执行的动作是与本公开各实施例中的性能测试方法中的步骤相对应的,对于性能测试装置的各模块的详细功能描述具体可以参见前文中所示的对应的性能测试方法中的描述,此处不再赘述。
173.基于与本公开的实施例中所示的方法相同的原理,本公开的实施例中还提供了一种电子设备,该电子设备可以包括但不限于:处理器和存储器;存储器,用于存储计算机操作指令;处理器,用于通过调用计算机操作指令执行实施例所示的性能测试方法。与现有技术相比,本技术中的性能测试方法可以通过解析负载均衡设备的线上日志来模拟线上流量完成对负载均衡设备的性能测试,有利于提高测试的准确度,降低测试成本,提高测试效率。
174.在一个可选实施例中提供了一种电子设备,如图6所示,图6所示的电子设备600包括:处理器601和存储器603。其中,处理器601和存储器603相连,如通过总线602相连。可选地,电子设备600还可以包括收发器604。需要说明的是,实际应用中收发器604不限于一个,该电子设备600的结构并不构成对本技术实施例的限定。
175.处理器601可以是cpu(central processing unit,中央处理器),通用处理器,dsp
(digital signal processor,数据信号处理器),asic(application specific integrated circuit,专用集成电路),fpga(field programmable gate array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本技术公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器601也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等。
176.总线602可包括一通路,在上述组件之间传送信息。总线602可以是pci(peripheral component interconnect,外设部件互连标准)总线或eisa(extended industry standard architecture,扩展工业标准结构)总线等。总线602可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
177.存储器603可以是rom(read only memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,ram(random access memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是eeprom(electrically erasable programmable read only memory,电可擦可编程只读存储器)、cd-rom(compact disc read only memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
178.存储器603用于存储执行本技术方案的应用程序代码,并由处理器601来控制执行。处理器601用于执行存储器603中存储的应用程序代码,以实现前述方法实施例所示的内容。
179.其中,电子设备包括但不限于:移动电话、笔记本电脑、数字广播接收器、pda(个人数字助理)、pad(平板电脑)等等的移动终端以及诸如数字tv、台式计算机等等的固定终端。另,电子设备还可以是服务器,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn(content delivery network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器,但本技术并不局限于此。图6示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
180.本技术实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当其在计算机上运行时,使得计算机可以执行前述方法实施例中相应内容。与现有技术相比,本技术中的性能测试方法可以通过解析负载均衡设备运行时的日志数据来模拟线上流量完成对负载均衡设备的性能测试,有利于提高测试的准确度,降低测试成本,提高测试效率。
181.应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻
执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
182.需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等等,或者上述的任意合适的组合。
183.上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
184.上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备执行上述实施例所示的方法。
185.本技术实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例提供的方法步骤。
186.可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c ,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
187.附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注
意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
188.描述于本公开实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块的名称在某种情况下并不构成对该模块本身的限定,例如,日志获取模块还可以被描述为“用于获取日志文件的模块”。
189.以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献